перейдите к новому URL-адресу в javascript, но принудительно перезагрузите?

#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. Спасибо, красиво и просто. На самом деле я уже использую эту технику в другом месте, поэтому мне стыдно, что я не подумал об этом 🙂 Я пытался справиться с этим через заголовки кэша веб-сервера, но это было не идеально