我在JQGrid中使用JQuery Autocomplete(不是JQuery-UI的一部分)输入的遗留项目包含以下代码:
{name : 'city',index : 'city',width : 300, editable: true,
editoptions: {
dataInit : function (elem){
$(elem).autocomplete('json/get_cities', {mustMatch: true, matchContains: true, minChars: 2, max:10});
}
}
},
当我开始在第二个字母上键入ajax调用触发器时,但只有一次。没有连续拨打第3,第4等字母。此外,当我开始删除符号时,如果输入中只剩下一个字符,则会触发另一个ajax调用。
任何想法如何解决这个问题?
答案 0 :(得分:1)
这个问题在我看来与jqGrid无关。然而问题很明显。对网址json/get_cities
的第一个请求将被缓存,并且也将用于下一次调用。
对URL json/get_cities
的请求是HTTP GET请求。因此,您可以通过设置HTTP标头
Cache-Control: private, max-age=0
在json/get_cities
的回复中。有关详细信息,请参阅the tutorial或有关备用缓存标题的讨论here。
我不是PHP开发人员,但似乎你可以使用像
这样的东西<?php
header("Cache-Control: private, max-age=0");
?>