我正在使用此 ajax 请求调用自动完成功能:
source: function (request, response) {
jQuery.ajax({
url: handlerUrl,
dataType: "json",
data: requestString + "=" + request.term,
success: function (data) {
if (data.length == 0) {
data.push({
id: noResults,
label: noResults
});
}
response(data);
}
});
}
自动完成是在从服务器请求后缓存数据。数据被缓存,但是当它创建建议菜单时,它会花费大量时间。假设我有 4000 条数据,所有这些都缓存在浏览器中。我通过 IE 中的网络选项对其进行了交叉检查。304
结果类型即将到来,这意味着数据已被缓存,但自动完成将这些原始数据{id,值对}转换为 HTML 列表作为建议菜单仍然需要时间。这确实需要大量时间。
有什么办法可以缓解这个问题?我的意思是减少自动完成的填充时间以将原始数据转换为建议菜单。
编辑:
我在 3 种自动完成方法search
、response
和open
. 第二次,当数据被缓存时,response
从search
方法到方法几乎没有时间。open
但在那之后它就卡住了,在很长一段时间的停顿后才进入方法。