har*_*rpo 6 javascript browser-cache
我已经放弃了这一点,但我想我会因为好奇而在这里发帖.
我称之为"硬刷新"的是您在开发过程中所做的Ctrl+R或Shift+F5看到您的更改.
这会导致浏览器向Cache-Control: max-age=0请求添加标头以及图像和脚本等"子"请求.
如果你正在做你的工作,304除了改变的资源外,你将得到一切.(好的,请参阅注释.这是假设其他验证器基于浏览器缓存发送.)
到现在为止还挺好.
问题是我不是直接从页面加载脚本,而是通过a加载load.js,并且浏览器Cache-Control在这些请求中是否包含该标头时不一致.Chrome根本不会这样做,Firefox似乎停在了系列的中间.
由于我无法访问当前请求的标头,因此无法知道是否应包含该标头.
结果是,当我更改脚本(除了load.js)之外,硬刷新不能可靠地工作,并且我必须例如清除浏览器缓存(这有点笨拙).
有什么想法吗?
不幸的是,您无法从 JavaScript 检测到硬刷新(无法访问当前加载页面的标题)。
但是,服务器可以从请求标头判断这是否是硬刷新,因此可以选择合作。例如,服务器可以<meta>在响应中包含自定义标签或添加特殊类<body>,然后您的脚本将可以访问此信息。
一旦load.js检测到硬刷新,它就可以通过将 URL 参数附加到请求(想想"?t=" + timestamp)来将其传播到依赖脚本。
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |