I do lots of $.ajax calls, and I handle errors from them in a way that throws up a message. I find that if an ajax call is in progress while the page gets reloaded, e.g. click
var unloading = false;
$.ajax(...) ...
.error(function(jqXHR) {
if (unloading) return; // Ignore errors caused by navigating away
// Now, check for real errors ..
});
$(window).unload(function() {unloading = true;});
The above technique does not work for a periodically refreshing page (for example every half seconds). I have figured out that the error caused by refreshing the page can be avoided using delaying the error handling process by a small amount of time.
Example:
$.ajax(...)
.success(...)
.error(function(jqXHR) {
setTimeout(function() {
// error showing process
}, 1000);
});
In addition to that
window.onbeforeunload = function() {//stop ajax calls}
event can be used for less frequently refreshing ajax calls.