创建所有请求的数组队列。然后,如果找到需要中止所有现有请求的位置,则可以遍历数组并在所有未决请求上调用中止。应该很简单。
尽管另一种方法是只保留一个内部标志,该标志指示当前是否正在处理一个请求,如果有请求,则跳过该请求。或者处理您认为合适的方式。
编辑2:所以我可以做的是有一个数组,您将所有ajax调用附加到该数组。从本质上讲,这只是发出一个XmlHttpRequest,这就是ajax调用返回的结果。所以
requests.push( $.ajax({ type: 'post', url: '/test.php', data: search_data, success: function(data) { $('#catalog').html(data); } }));
这会将所有请求添加到一个可以在某处定义的请求数组中。然后,当您想杀死所有挂起的请求时,可以遍历数组并调用abort,这将杀死该请求。
for(var i = 0; i < requests.length; i++) requests[i].abort();
或者只是在函数外部定义一个变量,该变量是指示是否正在发出请求的标志。您甚至可以使其更加具体并存储搜索数据,并且仅跳过对相同数据有待处理请求的请求,并允许其他针对不同数据的请求。
希望这足以让您入门。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)