我正在使用带有远程 php 数据库请求和零时间延迟的 Yahoo Autocomplete。问题是有时旧查询的结果会在最近的查询之后返回。
到目前为止,如果我正在搜索初学者,有时如果该查询从服务器返回的时间最长,则“beg”的结果将覆盖自动完成下拉列表中的最新结果。
我尝试中止旧查询,但这会减慢用户体验,因为他们直到最后一次击键才收到服务器请求。
我想知道是否有办法订购返回的查询?确保显示来自最近查询的服务器响应
提前感谢大卫
对测序有帮助吗?我的雅虎自动完成代码目前如下,我想避免执行取消陈旧请求。
<script type="text/javascript">
YAHOO.example.autocomplete = function() {
// instantiate remote data source
var oDS = new YAHOO.util.XHRDataSource("../employer/post-job/get_towns.php");
oDS.responseType = YAHOO.util.XHRDataSource.TYPE_XML;
oDS.responseSchema = {
resultNode: 't',
fields: ['n']
};
oDS.maxCacheEntries = 100;
// oDS.queryMatchSubset = true;
// oDS.connXhrMode = "cancelStaleRequests";
// instantiate YUI autocomplete widgets
var oAC0 = new YAHOO.widget.AutoComplete("input1", "inputcontainer", oDS);
oAC0.minQueryLength = 3;
oAC0.queryDelay = 0.05;
oAC0.maxResultsDisplayed = 10;
return {
oDS: oDS,
oAC0: oAC0
};
}();
</script>