Force Hard Reload - PullRequest
       13

Force Hard Reload

0 голосов
/ 14 ноября 2018

В настоящее время я пытаюсь создать простой тест для проверки скорости работы ПК клиента путем рендеринга изображения.Проблема заключается в том, что браузеры, такие как изображения 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);

Как предлагается здесь , но это некажется, не сработает.

Можно ли принудительно перезагрузить компьютер без согласия или выбора клиента?Или это какое-то нарушение безопасности?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Установка метатегов и перезагрузка HTML-страницы не влияет на кэширование изображения.Если вы хотите избежать кэширования изображения, попробуйте, например, каждый раз добавлять случайный параметр запроса.

img.src = "testImage.jpg?q=" + Math.random().toString(16).slice(2);
0 голосов
/ 14 ноября 2018

Вы можете добавить безвредный параметр запроса в конец URL, чтобы нарушить кеширование браузера:

img.src="testImage.jpg?noop=<incrementing_number_here>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...