Wymuś ponowne załadowanie strony w Chrome za pomocą Javascript [bez pamięci podręcznej]

Muszę przeładować stronę za pomocą JavaScript i upewnić się, że nie pobiera z pamięci podręcznej przeglądarki, ale zamiast tego ładuje stronę z serwera. [Ponieważ elementy strony zmieniły się w międzyczasie]

Na IE i FF odkryłem, że poniższy kod działa poprawnie;

window.location.reload(true);

Jednak nie działa w Chrome ani Safari.

Próbowałem następujących rzeczy, ale także bezskutecznie;

window.location.replace(location.href);
document.location.reload(true);
document.location.replace(location.href);

Czy istnieje rozwiązanie tego problemu?

Wyniki

Po zapoznaniu się z tym stwierdziłem, że ten problem to obsługa protokołu HTTP;

Chrome wysyła żądanie za pomocąPragma: no-cache Pole HTTPSerwer odpowiada za pomocąLast-Modified: DATE1 poleJS używalocation.reload(true) wymusić przeładowanie z serwera, a nie z pamięci podręcznejChrome wysyła żądanie za pomocąIf-Modified-Since: DATE1 poleSerwer odpowiada za pomocąHTTP Status 304 Not Modified

Aplikacja serwera jest winna za to, że nie zauważa zmiany stanu w dynamicznej zawartości strony, a tym samym nie zwraca a200. Jednak Chrome / WebKit to jedyna przeglądarka, która wysyła wiadomośćIf-Modified-Since pole, gdy JSlocation.reload(true) jest nazywany.

Pomyślałem, że przedstawię tutaj moje odkrycia, gdy ktoś inny natknie się na ten sam problem.

questionAnswers(5)

yourAnswerToTheQuestion