Use a closure with a private variable for $.cache's requests.
This commit is contained in:
parent
606875c292
commit
9f3b9a2127
@ -369,37 +369,40 @@
|
||||
r.send(form);
|
||||
return r;
|
||||
},
|
||||
cache: function(url, cb) {
|
||||
var req, reqs, _base;
|
||||
reqs = (_base = $.cache).requests || (_base.requests = {});
|
||||
if (req = reqs[url]) {
|
||||
if (req.readyState === 4) {
|
||||
cb.call(req);
|
||||
} else {
|
||||
req.callbacks.push(cb);
|
||||
}
|
||||
return;
|
||||
}
|
||||
req = $.ajax(url, {
|
||||
onload: function() {
|
||||
var _i, _len, _ref;
|
||||
_ref = this.callbacks;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
cb = _ref[_i];
|
||||
cb.call(this);
|
||||
cache: (function() {
|
||||
var reqs;
|
||||
reqs = {};
|
||||
return function(url, cb) {
|
||||
var req;
|
||||
if (req = reqs[url]) {
|
||||
if (req.readyState === 4) {
|
||||
cb.call(req);
|
||||
} else {
|
||||
req.callbacks.push(cb);
|
||||
}
|
||||
return delete this.callbacks;
|
||||
},
|
||||
onabort: function() {
|
||||
return delete reqs[url];
|
||||
},
|
||||
onerror: function() {
|
||||
return delete reqs[url];
|
||||
return;
|
||||
}
|
||||
});
|
||||
req.callbacks = [cb];
|
||||
return reqs[url] = req;
|
||||
},
|
||||
req = $.ajax(url, {
|
||||
onload: function() {
|
||||
var _i, _len, _ref;
|
||||
_ref = this.callbacks;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
cb = _ref[_i];
|
||||
cb.call(this);
|
||||
}
|
||||
return delete this.callbacks;
|
||||
},
|
||||
onabort: function() {
|
||||
return delete reqs[url];
|
||||
},
|
||||
onerror: function() {
|
||||
return delete reqs[url];
|
||||
}
|
||||
});
|
||||
req.callbacks = [cb];
|
||||
return reqs[url] = req;
|
||||
};
|
||||
})(),
|
||||
cb: {
|
||||
checked: function() {
|
||||
$.set(this.name, this.checked);
|
||||
|
||||
@ -295,22 +295,24 @@ $.extend $,
|
||||
$.extend r.upload, upCallbacks
|
||||
r.send form
|
||||
r
|
||||
cache: (url, cb) ->
|
||||
reqs = $.cache.requests or= {}
|
||||
if req = reqs[url]
|
||||
if req.readyState is 4
|
||||
cb.call req
|
||||
else
|
||||
req.callbacks.push cb
|
||||
return
|
||||
req = $.ajax url,
|
||||
onload: ->
|
||||
cb.call @ for cb in @callbacks
|
||||
delete @callbacks
|
||||
onabort: -> delete reqs[url]
|
||||
onerror: -> delete reqs[url]
|
||||
req.callbacks = [cb]
|
||||
reqs[url] = req
|
||||
cache: (->
|
||||
reqs = {}
|
||||
(url, cb) ->
|
||||
if req = reqs[url]
|
||||
if req.readyState is 4
|
||||
cb.call req
|
||||
else
|
||||
req.callbacks.push cb
|
||||
return
|
||||
req = $.ajax url,
|
||||
onload: ->
|
||||
cb.call @ for cb in @callbacks
|
||||
delete @callbacks
|
||||
onabort: -> delete reqs[url]
|
||||
onerror: -> delete reqs[url]
|
||||
req.callbacks = [cb]
|
||||
reqs[url] = req
|
||||
)()
|
||||
cb:
|
||||
checked: ->
|
||||
$.set @name, @checked
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user