So, I had a problem where ajax call was started, but user changed the page, and after ajax call was finished some js script will be executed and inf bubble will be shown to the user, in a place where it shouldn't be.

To check if page has changed you can use hash of a page:

$(window).hashchange(function () {

Test self.xhr.abort() is actually aborting ajax call...