我正在使用此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中的Networking选项对它进行了交叉检查。 304
类型的结果即将到来,这意味着数据已缓存但仍然需要时间来自动完成将这些原始数据{id,value pair}转换为HTML List作为建议菜单。而且它真的需要很长时间。
有什么方法可以缓解这个问题?我的意思是减少自动完成的人口时间,将原始数据转换为Suggestion菜单。
修改:
我在3种自动填充方法search
,response
和open
附加了断点。第二次,当数据被缓存时,几乎没有时间从response
方法获得search
方法。但是在那之后它就会停滞不前,经过很长时间的停顿后会转到open
方法。