#javascript
#javascript
Вопрос:
Javascript предоставляет location.reload(nocache)
API.
Когда параметр ‘nocache’ имеет значение true, он принудительно перезагрузит текущий URL-адрес с сервера в обход кэша браузера.
Есть ли эквивалентный способ сделать это при переходе к новому URL-адресу через window.location.href = url;
?
У меня есть приложение для чата, которое определяет версию, запущенную клиентом, по сравнению с тем, что ожидает сервер, и, если они отличаются, оно предлагает клиенту перейти к URL-адресу последней версии.
Но я обнаружил, что когда я это делаю, многие клиенты все еще используют кэшированные скрипты.
Ответ №1:
Готового решения нет. Самый простой способ — добавить к URL-адресу другой параметр, который нарушит работу кэша. Например
window.location = "/server/url?timestamp=" (new Date()).getTime()
Каждый раз, когда вы его запускаете, временная метка будет меняться, и браузер не будет иметь эту страницу в кэше.
Комментарии:
1. не уверен, соответствует ли это полному URL-адресу или URL-адресу файла js / css, возможно, op хочет отключить кэш для файлов js / css
2. Спасибо, красиво и просто. На самом деле я уже использую эту технику в другом месте, поэтому мне стыдно, что я не подумал об этом 🙂 Я пытался справиться с этим через заголовки кэша веб-сервера, но это было не идеально