【发布时间】:2015-06-12 14:25:09
【问题描述】:
我知道上面可以通过在 AJAX 调用中使用 quietMillis 来实现,但是我使用查询来缓存数据。正是在这里,我无法延迟 AJAX 调用。下面是代码
$('#AssetType').select2({
cacheDataSource: [],
placeholder: ' ',
quietMillis: 3000,
query: function q(query) {
self = this;
var key = query.term;
var cacheData = self.cacheDataSource[key];
if (cacheData) {
query.callback({
results: $.map(cacheData, function (item) {
return {
text: item.LongDescription,
id: item.AssetTypeID
}
})
});
return;
}
else {
$.ajax({
url: 'http://localhost:52377/api/reference/asset/types/' + key,
dataType: 'json',
type: 'GET',
quietMillis: 3000,
//data: function (query) {
// return { assetType: query.term, };
//},
success: function (data) {
self.cacheDataSource[key] = data;
query.callback({
results: $.map(data, function (item) {
return {
text: item.LongDescription,
id: item.AssetTypeID
}
})
});
},
cache: true
})
}
}
});
是否有任何解决方法来延迟 AJAX 调用,以便每次击键都不会触发 AJAX 调用?使用“查询”的原因是为了缓存,这不是通过在AJAX调用中将缓存设置为true来实现的。
【问题讨论】:
标签: javascript jquery jquery-select2