Dont let deadlinks get stuck if problems loading

This commit is contained in:
Jordan Bates 2013-05-20 16:28:02 -07:00
parent 4e973cf9c8
commit 902c08f807
4 changed files with 70 additions and 52 deletions

View File

@ -471,7 +471,7 @@
reqs = {};
return function(url, cb) {
var req, rm;
var err, req, rm;
if (req = reqs[url]) {
if (req.readyState === 4) {
@ -484,21 +484,26 @@
rm = function() {
return delete reqs[url];
};
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
try {
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
} catch (_error) {
err = _error;
return;
}
req.callbacks = [cb];
return reqs[url] = req;
};

View File

@ -468,7 +468,7 @@
reqs = {};
return function(url, cb) {
var req, rm;
var err, req, rm;
if (req = reqs[url]) {
if (req.readyState === 4) {
@ -481,21 +481,26 @@
rm = function() {
return delete reqs[url];
};
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
try {
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
} catch (_error) {
err = _error;
return;
}
req.callbacks = [cb];
return reqs[url] = req;
};

View File

@ -449,7 +449,7 @@
reqs = {};
return function(url, cb) {
var req, rm;
var err, req, rm;
if (req = reqs[url]) {
if (req.readyState === 4) {
@ -462,21 +462,26 @@
rm = function() {
return delete reqs[url];
};
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
try {
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
cb.call(this, e);
}
this.evt = e;
return delete this.callbacks;
},
onabort: rm,
onerror: rm
});
} catch (_error) {
err = _error;
return;
}
req.callbacks = [cb];
return reqs[url] = req;
};

View File

@ -102,13 +102,16 @@ $.cache = do ->
req.callbacks.push cb
return
rm = -> delete reqs[url]
req = $.ajax url,
onload: (e) ->
cb.call @, e for cb in @callbacks
@evt = e
delete @callbacks
onabort: rm
onerror: rm
try
req = $.ajax url,
onload: (e) ->
cb.call @, e for cb in @callbacks
@evt = e
delete @callbacks
onabort: rm
onerror: rm
catch err
return
req.callbacks = [cb]
reqs[url] = req