Gaë*_*aël 5 javascript time caching image loading
我正在使用一个JavaScript脚本,告诉我是否在用户的浏览器缓存中缓存了特定的图像URL.我正在使用它,因为我构建了一系列非缓存图像,这些图像将在完成更重要的过程后单独加载.此脚本专为Google Chrome编写,因此我不需要跨浏览器解决方案.
我当前的函数检查加载图像所花费的时间,如果它小于几毫秒(目前为25毫秒),我认为它是从缓存中提取的.
通过查看Chrome开发人员工具中的资源面板,可以轻松手动查看缓存图像和非缓存图像之间的区别.当悬停加载时间时,Chrome会通过打印如下所示的工具提示来判断文件是否已从缓存中拉出:xx ms Latency, xx ms Download (from cache).
我注意到在某些情况下,延迟时间很长(例如64ms,下载时间仅为2ms)并且使得我的检测功能无用,因为总加载时间超过了我的阈值.不可能增加阈值,因为小的且未缓存的图像也可以在相同的时间内加载.
既然你遇到了我的问题,这就是我的问题:
- 是否有可能以100%准确的方式检查(例如chrome的资源面板)该文件来自缓存?(我想如果该小组这样做,必须有一种方法,但我无法在互联网上找到它)
要么
- 有没有办法将两个延迟(即延迟与下载)分开才能检查真正的下载时间?计算开始加载图像和onload事件之间所花费的时间将返回总时间.
感谢您阅读我的问题,即使您没有精确的解决方案,也欢迎提出想法和想法!
(PS:我不是母语为英语的人,所以请不要因为犯错而责怪我!)
盖尔
很抱歉错误地回答了您。
我做了一些测试并发现了以下结果:304 not modified仅当资源过时并由服务器通过If-None-Match/进行验证时才会出现标头If-Modified-Since。当资源仍然新鲜且不需要验证时,返回的状态码为200 Ok。
然而,似乎有一个 Age 标头表明资源正在被缓存。所以我想我可以切换到 PHP 并做类似的事情if status code is 304 or Age header exists then resource is cached。但是如果没有Cache-Control: max-age=xx标题怎么办?一旦资源被缓存并且是新鲜的,是否就会有一个 Age 标头?
周一将进一步调查并在此处更新。
| 归档时间: |
|
| 查看次数: |
6881 次 |
| 最近记录: |