Перезагрузить с сервера все файлы - PullRequest
0 голосов
/ 27 апреля 2019

Я знаю, что можно принудительно перезагрузить сервер, используя location.reload(true).Однако, допустим, я использовал это для обновления index.html.Если index.html загружает несколько файлов javascript, они все еще поступают из кеша для меня.Есть ли способ игнорировать кэш на время запроса?

Мой пример использования: я провожу тестирование AB в своем приложении и хочу, чтобы пользователи могли вернуться к старомуверсия, если что-то не работает.Но некоторые URL-адреса одинаковы, хотя файлы между версиями разные.Было бы неплохо иметь возможность обрабатывать это в JS, а не менять каждый URL в новой версии.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Если вы хотите обойти браузер, извлекающий js-файлы из кэша, вам нужно получать с сервера не только файлы, такие как script.js, но и script.12345.js. Когда вы обновляете свой файл на сервере, вы меняете хеш-номер файла на скажем script.54321.js И браузер понимает, что файл отличается, он должен загрузить его снова. Вы можете использовать Webpack для этой цели, чтобы автоматизировать вещи. В выводе вместо {filename: bundle.js} вы пишете {filename: bundle. [Hash] .js}

0 голосов
/ 27 апреля 2019

На самом деле существует не менее 535 различных способов перезагрузить страницу с помощью JavaScript, к вашему сведению;).

Вы пытались поместить документ на передний план? document.location.reload(true);

Попробуйте также этот другой вариант:

window.location.href = window.location.href;

или

history.go(0);

Конечно, оба варианта soft reload, но, похоже, работают в определенной ситуации.

Если ничего не работает, вы должны добавить случайные данные в URL (например, метку времени), чтобы принудительно загрузить их с сервера, минуя кеш.

...