Ela*_*ine 8 ajax jquery jquery-ui-autocomplete
我正在使用jQuery autocomplete,但发现了一个与性能相关的问题 - 如果我输入'abc',它将通过'a','ab'和'abc'扫描,一次,我该如何停止当ajax调用正在通过'abc'进行搜索时,前一个'a','ab'?
类似的情况是:我使用jQuery DataTables,并希望进行一些搜索,例如,我输入要搜索的内容(调用搜索网络方法),然后单击按钮 - 一次"搜索"3次,或者更改搜索文本点击"搜索",然后提出新的搜索,我怎样才能停止以前无用的ajax调用?
Bru*_*nge 18
JQuery $.ajax返回一个xmlHttpRequest对象,可以通过其本机方法取消该对象.abort()
$("#search").autocomplete({
minLength: 3,
delay: 300, // this is in milliseconds
json: true,
source: function(request, response){
// New request 300ms after key stroke
var $this = $(this);
var $element = $(this.element);
var previous_request = $element.data( "jqXHR" );
if( previous_request ) {
// a previous request has been made.
// though we don't know if it's concluded
// we can try and kill it in case it hasn't
previous_request.abort();
}
// Store new AJAX request
$element.data( "jqXHR", $.ajax( {
type: "POST",
url: "foo.php",
dataType: "json",
success: function( data ){
response( data );
}
}));
}
});
Run Code Online (Sandbox Code Playgroud)
假设您正在使用jQuery UI自动完成:
| 归档时间: |
|
| 查看次数: |
7929 次 |
| 最近记录: |