Limit $.cache to subset of XMLHttpRequest API.

This commit is contained in:
ccd0 2019-03-09 00:47:16 -08:00
parent 4c329af6e0
commit a7af355820

View File

@ -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) ->