I just wanted to ask. I have text input to allow users to type their city.
jQuery has a keyup
event linked to this input and sent an AJAX call after each character change.
I find however many unrequired AJAX calls are sent as the person is typing and depending on the number of results this can slow down performance here.
Is there a way to cancel AJAX calls if a new call is made? Is there a better way to do this?
An example can be seen here: www.datingjapan.co
You can use the abort
method of the jqXHR
object returned by the ajax
method (other AJAX methods like get
and post
return a jqXHR
instance too):
var xhr = $.ajax(opts);
xhr.abort();
Note that the jqXHR
object is effectively just an extension of XMLHttpRequest
, and XMLHttpRequest
itself also has an abort
method.
abort
is sent from the client to the server. Each jqXHR
object represents one single request. If you call the abort
method of a single instance of jqXHR
, that single request is cancelled - James Allardice 2012-04-04 21:39