Php jQuery AJAX调用-是否可以取消不需要的调用?
我只是想问问。我有文本输入,允许用户键入他们的城市 jQuery有一个链接到此输入的Php jQuery AJAX调用-是否可以取消不需要的调用?,php,jquery,Php,Jquery,我只是想问问。我有文本输入,允许用户键入他们的城市 jQuery有一个链接到此输入的keyup事件,并在每次字符更改后发送一个AJAX调用 但是,我发现在用户键入时会发送许多不需要的AJAX调用,这可能会降低性能,具体取决于结果的数量 如果进行了新的调用,是否有方法取消AJAX调用?有更好的方法吗 这里可以看到一个示例:您可以使用该方法返回的对象的abort方法(其他AJAX方法,如get和post也返回jqXHR实例): 请注意,jqXHR对象实际上只是XMLHttpRequest的扩展,而X
keyup
事件,并在每次字符更改后发送一个AJAX调用
但是,我发现在用户键入时会发送许多不需要的AJAX调用,这可能会降低性能,具体取决于结果的数量
如果进行了新的调用,是否有方法取消AJAX调用?有更好的方法吗
这里可以看到一个示例:您可以使用该方法返回的对象的
abort
方法(其他AJAX方法,如get
和post
也返回jqXHR
实例):
请注意,
jqXHR
对象实际上只是XMLHttpRequest
的扩展,而XMLHttpRequest
本身也有一个方法。Adam,在调用函数之前,您是否施加了最小字符限制?我认为最好的做法是在你想打电话之前不要打电话,而不是打50次电话,然后剔除你不想要的40次。或者对您的返回数据施加响应限制?通常您有两个控件。输入这么多字符后才开始使用ajax(3-4)。另一种方法是,如果在半秒钟左右没有输入任何内容,则发送到ajax。否则,它会对数据库造成太多的影响,并可能减慢用户交互OK,因此使用jquery我可以中止以前的调用。这是否意味着从发送到服务器的中止操作被取消?如果我发送了多个相同的post请求,它们是否都会被取消,或者是否有办法确定要取消的一个?@Adam-将中止
从客户端发送到服务器。每个jqXHR
对象表示一个请求。如果调用jqXHR
的单个实例的abort
方法,则该单个请求将被取消。
var xhr = $.ajax(opts);
xhr.abort();