强制硬重装

时间:2018-11-14 00:58:18

标签: javascript html reload

我目前正在尝试创建一个简单的测试,以通过渲染图像来测试客户端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所示,但似乎并没有解决问题。

是否可以在未经客户同意或选择的情况下强行进行重装?还是某种形式的安全侵权?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

您可以在网址末尾添加一个无害的查询参数,以中断浏览器的缓存:

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