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);
|
r.send(form);
|
||||||
return r;
|
return r;
|
||||||
},
|
},
|
||||||
cache: function(url, cb) {
|
cache: (function() {
|
||||||
var req, reqs, _base;
|
var reqs;
|
||||||
reqs = (_base = $.cache).requests || (_base.requests = {});
|
reqs = {};
|
||||||
if (req = reqs[url]) {
|
return function(url, cb) {
|
||||||
if (req.readyState === 4) {
|
var req;
|
||||||
cb.call(req);
|
if (req = reqs[url]) {
|
||||||
} else {
|
if (req.readyState === 4) {
|
||||||
req.callbacks.push(cb);
|
cb.call(req);
|
||||||
}
|
} else {
|
||||||
return;
|
req.callbacks.push(cb);
|
||||||
}
|
|
||||||
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;
|
return;
|
||||||
},
|
|
||||||
onabort: function() {
|
|
||||||
return delete reqs[url];
|
|
||||||
},
|
|
||||||
onerror: function() {
|
|
||||||
return delete reqs[url];
|
|
||||||
}
|
}
|
||||||
});
|
req = $.ajax(url, {
|
||||||
req.callbacks = [cb];
|
onload: function() {
|
||||||
return reqs[url] = req;
|
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: {
|
cb: {
|
||||||
checked: function() {
|
checked: function() {
|
||||||
$.set(this.name, this.checked);
|
$.set(this.name, this.checked);
|
||||||
|
|||||||
@ -295,22 +295,24 @@ $.extend $,
|
|||||||
$.extend r.upload, upCallbacks
|
$.extend r.upload, upCallbacks
|
||||||
r.send form
|
r.send form
|
||||||
r
|
r
|
||||||
cache: (url, cb) ->
|
cache: (->
|
||||||
reqs = $.cache.requests or= {}
|
reqs = {}
|
||||||
if req = reqs[url]
|
(url, cb) ->
|
||||||
if req.readyState is 4
|
if req = reqs[url]
|
||||||
cb.call req
|
if req.readyState is 4
|
||||||
else
|
cb.call req
|
||||||
req.callbacks.push cb
|
else
|
||||||
return
|
req.callbacks.push cb
|
||||||
req = $.ajax url,
|
return
|
||||||
onload: ->
|
req = $.ajax url,
|
||||||
cb.call @ for cb in @callbacks
|
onload: ->
|
||||||
delete @callbacks
|
cb.call @ for cb in @callbacks
|
||||||
onabort: -> delete reqs[url]
|
delete @callbacks
|
||||||
onerror: -> delete reqs[url]
|
onabort: -> delete reqs[url]
|
||||||
req.callbacks = [cb]
|
onerror: -> delete reqs[url]
|
||||||
reqs[url] = req
|
req.callbacks = [cb]
|
||||||
|
reqs[url] = req
|
||||||
|
)()
|
||||||
cb:
|
cb:
|
||||||
checked: ->
|
checked: ->
|
||||||
$.set @name, @checked
|
$.set @name, @checked
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user