JQuery发送请求,我看到响应(通过Firebug)没有错误。但对于一个或两个字符,结果不会显示在下拉列表中。通常在键入的第二个字符上开始显示结果(我输入的速度很慢,每秒1个字符左右,只是为了测试它是否是某种速度问题)。
以下是来自firebug的req / resp的示例,此时项目未显示在页面上:
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"fl":"title,count",
"sort":"count desc",
"indent":"on",
"start":"0",
"q":"\"b\" AND count:[3 TO *]",
"wt":"json",
"rows":"5",
"version":"2.2"}},
"response":{"numFound":6536,"start":0,"docs":[
{
"title":"blood",
"count":19890},
{
"title":"biochemistry",
"count":14480},
{
"title":"biochemical and biophysical research communications",
"count":6976},
{
"title":"businessweek",
"count":6498},
{
"title":"biochimica et biophysica acta",
"count":6226}]
}}
同样,正如我所说,控制台在页面上没有显示错误。
有关我应该如何处理这个问题的任何想法?
Javascript代码是:
function autosuggest(term, wid)
{
var query = "q=" + escape(term);
var url = "/autosuggest.do?" + query;
$.getJSON(url, function(terms)
{
// iterate over terms
var list = new Array();
if (terms.response != null && terms.response.docs != null) {
for(var i=0; i < terms.response.docs.length; i++)
{
var trm = terms.response.docs[i];
list[i] = trm.title;
}
$( '#' + wid ).autocomplete({source: list, select: function(event, ui) {
doSuggestedSearch(ui.item.value);
}});
}
});
}
任何想法都会受到赞赏。
答案 0 :(得分:1)
autosuggest有一个延迟选项,默认为300毫秒,您可以覆盖:
$( ".selector" ).autocomplete({ delay: 0 });
答案 1 :(得分:0)
嗯,在这个例子中似乎工作得很好:http://jsfiddle.net/william/Z7bcQ/
是否有任何并发请求或繁重处理?我建议你以某种方式描述你的页面并找到瓶颈。 Firebug在控制台选项卡中有profiler。 Safari还在其Web Inspector中附带了一个很好的分析器。