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)
catch err
return
$.on req, 'load', ->
for cb in @callbacks for cb in @callbacks
do (cb) => $.queueTask => cb.call @, {isCached: false} do (cb) => $.queueTask => cb.call @, {isCached: false}
delete @callbacks delete @callbacks
$.on req, 'abort error', rm else
delete reqs[url]
req = $.ajax url, options
req.callbacks = [cb] req.callbacks = [cb]
reqs[url] = req reqs[url] = req
$.cleanCache = (testf) -> $.cleanCache = (testf) ->