Turns out this was an artefact of a Firebug bug. The Ajax request was cancelled, but Firebug continued reporting it as active. Details here.
I have long running XMLHttpRequests and I need to be able to abort them under certain circumstances.
I set up the request in a normal way:
ajax = $.getJSON(url + "?updates", function(data) { ...; });
Later on I want to abort this request, seems straightforward:
ajax.abort();
When I look in Firebug however, I see it is still running...
I console.log out the value of ajax just before I try and abort it, it confirms that its value is and XMLHttpRequest (with a readyState of 0).
Are there restrictions on how and when abort() fires on an XMLHttpRequest?