Limit $.cache to subset of XMLHttpRequest API.
This commit is contained in:
parent
4c329af6e0
commit
a7af355820
@ -84,23 +84,21 @@ $.ajax = do ->
|
|||||||
|
|
||||||
do ->
|
do ->
|
||||||
reqs = {}
|
reqs = {}
|
||||||
$.cache = (url, cb, options) ->
|
$.cache = (url, cb, options={}) ->
|
||||||
if req = reqs[url]
|
if (req = reqs[url])
|
||||||
if req.readyState is 4
|
if req.callbacks
|
||||||
$.queueTask -> cb.call req, {isCached: true}
|
|
||||||
else
|
|
||||||
req.callbacks.push cb
|
req.callbacks.push cb
|
||||||
|
else
|
||||||
|
$.queueTask -> cb.call req, {isCached: true}
|
||||||
return req
|
return req
|
||||||
rm = -> delete reqs[url]
|
options.onloadend = ->
|
||||||
try
|
if @status
|
||||||
return if not (req = $.ajax url, options)
|
for cb in @callbacks
|
||||||
catch err
|
do (cb) => $.queueTask => cb.call @, {isCached: false}
|
||||||
return
|
delete @callbacks
|
||||||
$.on req, 'load', ->
|
else
|
||||||
for cb in @callbacks
|
delete reqs[url]
|
||||||
do (cb) => $.queueTask => cb.call @, {isCached: false}
|
req = $.ajax url, options
|
||||||
delete @callbacks
|
|
||||||
$.on req, 'abort error', rm
|
|
||||||
req.callbacks = [cb]
|
req.callbacks = [cb]
|
||||||
reqs[url] = req
|
reqs[url] = req
|
||||||
$.cleanCache = (testf) ->
|
$.cleanCache = (testf) ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user