【问题标题】:Force Hard Reload强制硬重新加载
【发布时间】:2019-04-16 21:59:00
【问题描述】:

我目前正在尝试创建一个简单的测试,通过渲染图像来测试客户端 PC 的速度。问题在于以某种方式保存的 Safari 和 Chrome 图像等浏览器上,以加快重新加载速度。例如当使用下面的代码时

var speed = document.getElementById('speed');
var startTime = new Date().getTime();
var img = new Image();
img.onload = function() {
    var stopTime = new Date().getTime();
    var loadtime = Math.round((stopTime - startTime) / 100);
}
img.src = "testImage.jpg";

变量loadtime最初是8,刷新后是0。我的猜测是 Safari 会保存图像以立即加载它。在 Chrome 上这是同样的问题,除非我重新加载。我试过放置这些meta 标签,但没有成功。

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />

我也试过

location.reload(true);

正如here 建议的那样,但它似乎没有奏效。

是否可以在未经客户同意或选择的情况下强制重新加载?还是某种安全侵权?

【问题讨论】:

    标签: javascript html reload


    【解决方案1】:

    设置元标记和重新加载 HTML 页面不会影响图像的缓存。例如,如果您想避免缓存图像,请尝试每次都附加一个随机查询参数。

    img.src = "testImage.jpg?q=" + Math.random().toString(16).slice(2);
    

    【讨论】:

      【解决方案2】:

      您可以在 url 的末尾添加一个无害的查询参数来破坏浏览器的缓存:

      img.src="testImage.jpg?noop=<incrementing_number_here>"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-03
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        相关资源
        最近更新 更多