Жесткое обновление JavaScript текущей страницы

Как заставить веб-браузер выполнить жесткое обновление страницы с помощью JavaScript?
Жесткое обновление означает получение новой копии страницы И обновление всех внешних ресурсов (изображений, JavaScript, CSS и т. Д.).


person leepowers    schedule 20.01.2010    source источник


Ответы (4)


Попробуй использовать:

location.reload(true);

Когда этот метод получает значение true в качестве аргумента, он всегда будет перезагружать страницу с сервера. Если он неверен или не указан, браузер может перезагрузить страницу из своего кеша.

Больше информации:

person Christian C. Salvadó    schedule 20.01.2010
comment
Я почти уверен, что это не перезагрузит все внешние ресурсы. Вам нужно будет прочитать все элементы a, link, script и img и добавить случайную строку запроса в конец каждой внешней ссылки после жесткой перезагрузки. Или сделайте это на сервере. - person Doug Neiner; 20.01.2010
comment
@CMS Это полностью кроссбраузерно совместимо? - person Marco Prins; 30.07.2014
comment
Сработало ли в 2010 году? Это точно не работает в 2018 году (в Chrome). Chrome загружает все (кроме / Home / Index) из кеша. Похоже, что в firefox WTH работает? - person Maciej Szpakowski; 23.02.2018
comment
@MaciejSzpakowski Использование Cache.keys () и Cache.delete () работал у меня. Пример: jsfiddle. - person r.delic; 17.03.2018
comment
да, это правильно, location.reload (true); будет работать со всеми современными браузерами - person Aleksandr Golovatyi; 15.05.2018
comment
Но всякий раз, когда мы выполняем принудительную перезагрузку, появляется предупреждение, спрашивающее, действительно ли вы хотите перезагрузить? Есть ли способ отменить это предупреждение и перезагрузить страницу? - person Gina Gina; 24.07.2018
comment
похоже, это не работает с Chrome, но это window.location.href=window.location.href сработало для меня - person Gsp Ivan; 16.07.2019
comment
У меня это не работает. Это не очищает данные, которые я очищаю с помощью ctrl F5 - person ozimax06; 08.10.2019
comment
Я думаю, что в HTML5 эта функция удалена. - person Mygod; 03.04.2020
comment
Как и 16-12-20, этот код не запускается. Попробуйте в React = ›16.8 - person Hardik Desai; 16.12.2020
comment
Не думаю, что это работает должным образом. В данной документации даже не указан параметр этой функции. - person Nico Haase; 20.01.2021
comment
в настоящее время он устарел и игнорируется браузерами. - person Kurkov Igor; 17.02.2021
comment
Для таких из вас, как я, в будущем. Это работает в некоторых браузерах, но не работает в других. Я смотрю на тебя хром ›:( - person Samuel Thompson; 13.05.2021

Я работал над django, но ничего не работало, поэтому этот обход сработал для меня, он перенаправляет на следующий, поэтому всякий раз, когда вы просто хотите вернуться, сложно обновить страницу! Возможно, это неправильный способ, но он может решить проблему, попробуйте и дайте мне знать!

window.history.forward(1);
person Saikat Mukherjee    schedule 08.05.2021
comment
Этот код не перезагружает / не обновляет текущую страницу. Он просто пересылает его в следующее место в истории, которое может присутствовать, а может и не присутствовать. Более того, OP указал жесткое обновление, что означает, что страница должна быть снова извлечена с сервера, то есть в обход кеша. - person brc-dd; 08.05.2021
comment
Хорошо, спасибо за то, что сообщили мне, ни одно из вышеперечисленных решений не помогло мне, но это сработало, поэтому я подумал, что это может помочь ... Я прошу вас удалить отрицательные голоса, сэр! - person Saikat Mukherjee; 08.05.2021

Для пользователей angular и, как показано здесь, вы можете сделать следующее:

<form [action]="myAppURL" method="POST" #refreshForm></form>
import { Component, OnInit, ViewChild } from '@angular/core';

@Component({
  // ...
})
export class FooComponent {
  @ViewChild('refreshForm', { static: false }) refreshForm;

  forceReload() {
    this.refreshForm.nativeElement.submit();
  }
}

Причина, по которой это сработало, была объяснена на этом веб-сайте: https://www.xspdf.com/resolution/52192666.html

В этой статье вы также узнаете, как жесткая перезагрузка работает для каждого фреймворка и т. д.

объяснение: угловой

Location: reload (), метод Location.reload () перезагружает текущий URL, как кнопка «Обновить». Использование только location.reload (); не является решением, если вы хотите выполнить принудительную перезагрузку (как это делается, например, с помощью Ctrl + F5), чтобы перезагрузить все ресурсы с сервера, а не из кеша браузера. Решение этой проблемы состоит в том, чтобы выполнить запрос POST в текущее местоположение, поскольку это всегда заставляет браузер перезагружать все.

person Raphaël Balet    schedule 27.06.2021

person    schedule
comment
Это не приведет к извлечению страницы с сервера, если браузер кэшировал ее. - person LukeP; 07.04.2020
comment
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки. - person Nico Haase; 20.01.2021
comment
Работает в моем случае! Я думаю, что он очистил данные POST в плагине WordPress, над которым я работаю. - person Marina Dunst; 09.07.2021