2014-11-08 14 views
15

Jak zmusić przeglądarkę, aby zawsze ładowała najnowszą wersję index.htm podczas ładowania strony, wprowadzając adres URL www.mydomain.com/index.htm lub po prostu www.mydomain. com w polu adresu przeglądarki i naciśnij enter.Wymuszenie przeładowania przeglądarki index.htm

Próbuję tego w Chrome, a najnowsza wersja index.htm jest widocznie tylko załadowana, kiedy odświeżam ręcznie (F5) lub gdy adres URL jest już w polu adresu przeglądarki i wciskam enter.

Podejrzewam, że robię coś bardzo głupiego, ponieważ gdy szukałem problemu, wszystko, co mogłem znaleźć, to rozwiązania, jak zmusić przeglądarkę do przeładowania plików .js i .css przez dołączenie? V = xxxx do pliku nazwy. Ale jak to działa, czy nawet najnowsza wersja strony index.htm, w której robię te modyfikacje, jest załadowana?

Próbowałem też wprowadzenie

<meta http-equiv="cache-control" content="no-cache"> 

w <head> z index.htm. Ale wydaje się, że nie ma to żadnego wpływu.

Każda pomoc będzie bardzo ceniona!

Dzięki Linus

Odpowiedz

29

OK, najwyraźniej no-cache nie wystarczyło. Oto, co należy zrobić:

<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" /> 
    <meta http-equiv="cache-control" content="max-age=0" /> 
    <meta http-equiv="expires" content="0" /> 
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
    <meta http-equiv="pragma" content="no-cache" /> 
+0

Powinieneś to zaakceptować, jeśli rozwiąże problem, aby osoby szukające mogły powiedzieć to pytanie, otrzymały rozwiązanie. – BSMP

+0

Robi lewy NIE (przynajmniej Chrome 58) – kosemuckel

+0

@kosemuckel: Właśnie zaktualizowałem kod. czy to działa? – Linus

0

Googled i wyszedł na tej stronie. maby to pomaga: http://code.tutsplus.com/tutorials/4-ways-to-auto-refresh-your-browser-when-designing-new-sites--net-13299 nadzieję, że pomoże, 807

+0

Dzięki, ale to nie jest to, czego potrzebuję. Nie chcę, aby strona była ponownie ładowana w określonym przedziale czasu (co byłoby bardzo denerwujące dla użytkownika). Chcę tylko, żeby wyświetlany index.htm był tym, który jest aktualnie na serwerze, gdy użytkownik wprowadzi adres w swojej przeglądarce ... – Linus

+0

Hmmm rozumiem. Wszystko, co mogę zrobić, to google, nie jestem w ogóle ekspertem. ktoś els musi ci w tym pomóc :(znalazłem inny temat maby jest tam rozwiązanie http://stackoverflow.com/questions/1922910/force-browser-to-clear-cache (maby post z "rsp "może ci pomóc, ponieważ w kodzie znajduje się window.location.reload(); maby, która przeładowuje się, jeśli pamięć podręczna jest pełna) zawsze używaj Shift f5 do odświeżania stron w mojej przeglądarce, powodzenia !, 807 – 807

+0

Używam numeru wersji dołącza do moich plików css Na przykład: homeTablesCss_1_0_1.css Proces budowania zmienia tę wspólną stronę zawierającą, co zapewnia odzwierciedlenie mojego css podczas pierwszego dostępu po wydaniu. – Allzhere

2

Można użyć kodu poniżej, aby odświeżyć lub przeładować stronę indeksu aktualnie załadowany z adresu URL wpisany bezpośrednio w pasku adresu przeglądarki, po określonej liczbie sekund, a tym samym zmuszając przeglądarkę do ponownego załadowania aktualnego dokumentu. W tym przypadku liczba sekund został ustawiony na 5:

<meta http-equiv="refresh" content="5" /> 

Należy pamiętać, że ustawienie liczby sekund na 0 spowoduje, że strona się automatycznie przeładowana natychmiast, za każdym razem jest on został pobrany.

1

Aby to zrobić, po drodze należy wykonać kodowanie po stronie serwera. Możesz użyć do tego technologii takich jak PHP lub ASP.NET. Wolę kodowanie z PHP, więc tutaj jest przykład oparty na PHP. Przede wszystkim upewnij się, że twój INDEX nazywa się "index.php", a nie "index.html" lub "index.htm". Teraz weź pod uwagę następujące kody i zrobić zintegrować to do pliku index.php, podczas wstawiania własnych zawartości strony, a także:

<html> 

    <?php 
     header("Content-Type: text/event-stream"); 
     header("Cache-Control: no-cache"); 
    ?> 

    <head> 
     <script> 
      var sse = new EventSource("index.php"); 
      sse.onmessage = function(event) { 
       document.write(event.data); 
      } 
     </script> 
    </head> 

    <body> 

     <!-- Insert HTML Codes --> 

     <?php 
      flush(); 
     ?> 

    </body> 

</html> 
Powiązane problemy