我只是尝试使用XHR来预先缓存一些资源,但缓存的行为并不像预期的那样。
以下是问题的界限:
我一直认为XHR使用浏览器缓存或多或少像其他资源一样,但从未严格测试过。这就是我正在做的事情:
Cache-Control: max-age=3600
(由于某种原因,Chrome正在设置max-age=0
。在服务器上设置以下响应标头:
Cache-control: public; max-age=3600
Date: now
Expires: now + 1 hour
[Content-Type, Content-Length]
这就是我所看到的:
我以各种方式嘲笑它,但这种行为似乎永远不会改变。
答案 0 :(得分:0)
经过多次哀嚎和咬牙切齿之后,我相信我已经证明这种方法不会在所有浏览器上都能使用。这是我迄今为止的经历:
最后,我不得不转而采用更为谨慎但又可靠的方法来创建隐藏的iframe,将script / img元素注入其中,然后等待iframe窗口的onload事件。这是有效的,但是没有提供关于加载哪些元素的细粒度反馈(从单个元素获得可靠的onload事件更多"跨浏览器棘手"而不是仅仅等待整个框架。
我希望更准确地了解Chrome / Safari中发生的事情,但遗憾的是没有时间深入挖掘。