jquery.couch.js: db.changes().stop() should abort XMLHTTPRequest
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/9eb26297 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/9eb26297 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/9eb26297 Branch: refs/heads/1744-single-config-file Commit: 9eb262979aa053f7d4b40bc39365a022ee0a52b6 Parents: 6c71f2c Author: Fedor Indutny <[email protected]> Authored: Tue Dec 10 17:29:16 2013 +0400 Committer: Alexander Shorin <[email protected]> Committed: Tue Dec 10 17:29:16 2013 +0400 ---------------------------------------------------------------------- share/www/script/jquery.couch.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/9eb26297/share/www/script/jquery.couch.js ---------------------------------------------------------------------- diff --git a/share/www/script/jquery.couch.js b/share/www/script/jquery.couch.js index db4e8ef..1a4c3b7 100644 --- a/share/www/script/jquery.couch.js +++ b/share/www/script/jquery.couch.js @@ -412,6 +412,7 @@ // set up the promise object within a closure for this handler var timeout = 100, db = this, active = true, listeners = [], + xhr = null, promise = /** @lends $.couch.db.changes */ { /** * Add a listener callback @@ -428,6 +429,9 @@ */ stop : function() { active = false; + if (xhr){ + xhr.abort(); + } } }; // call each listener when there is a change @@ -458,7 +462,7 @@ feed : "longpoll", since : since }); - ajax( + xhr = ajax( {url: db.uri + "_changes"+encodeOptions(opts)}, options, "Error connecting to "+db.uri+"/_changes." @@ -976,7 +980,7 @@ ajaxOptions = $.extend(defaultAjaxOpts, ajaxOptions); errorMessage = errorMessage || "Unknown error"; timeStart = (new Date()).getTime(); - $.ajax($.extend($.extend({ + return $.ajax($.extend($.extend({ type: "GET", dataType: "json", cache : maybeUseCache(), beforeSend: function(xhr){ if(ajaxOptions && ajaxOptions.headers){
