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