Jak przeładowywać stronę co 5 sekund?

183

Konwertuję jeden układ na HTML; kiedy wprowadzę zmiany w kodzie / html / css, za każdym razem, gdy muszę nacisnąć F5. Czy jest na to jakieś proste rozwiązanie javascript / jQuery? To znaczy po dodaniu skryptu, przeładuj całą stronę co 5 sekund (lub w innym określonym czasie).

Wasim Shaikh
źródło

Odpowiedzi:

382
 <meta http-equiv="refresh" content="5; URL=http://www.yourdomain.com/yoursite.html">

Jeśli musi być w skrypcie, użyj setTimeout jak:

setTimeout(function(){
   window.location.reload(1);
}, 5000);
jAndy
źródło
4
Myślę, że jest to prawdopodobnie lepszy sposób na zrobienie tego niż w javascript.
Bogaty
1
Jeśli przypadek użycia był taki, że strona musiała się odświeżyć dla odwiedzających, to mogę się zgodzić, ale dla celów programistycznych zaletą jest blok kodu, który można upuścić na stronę bez konieczności aktualizacji URI za każdym razem. W zależności od JS nie ma problemu, gdy programista jest całą grupą docelową.
Quentin,
4
location.reload (1) powtórzy test POST, jeśli bieżąca strona jest wynikiem testu POST. Może to nie być pożądane, jeśli chcesz replikować odświeżanie meta w Javascript.
Reuben,
2
Ponowne załadowanie bieżącej strony nie wymaga podania strony, po prostu:<meta http-equiv="refresh" content="5">
ashleedawg
146

Aby przeładować tę samą stronę, nie potrzebujesz drugiego argumentu. Możesz po prostu użyć:

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

Powoduje to przeładowanie co 30 sekund.

Śmieszny
źródło
3
Jest zniechęcony, gdy używany do przekierowania . To nie jest przestarzałe. (I przydaje się, gdy chcesz odświeżyć stronę i jesteś zbyt leniwy, aby nauczyć się ajax :)
DinoCoderSaurus
To nie działa dla mnie. Próbowałem dodać tę linię do tego codepen bezskutecznie. codepen.io/css-support/pen/bspdK
lolololol ol
1
@ lololololol Musisz dodać go w ustawieniu „Rzeczy dla <head>” w obszarze HTML Ustawienia pióra. Nie działa, jeśli umieścisz go w rzeczywistym skrypcie.
Bret,
23

Aby automatycznie ponownie załadować i wyczyścić pamięć podręczną po 3 sekundach, możesz to zrobić z łatwością za pomocą funkcji setInterval javascript. Oto prosty kod

$(document).ready(function() {
  setInterval(function() {
    cache_clear()
  }, 3000);
});

function cache_clear() {
  window.location.reload(true);
  // window.location.reload(); use this if you do not remove cache
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<p>Auto reload page and clear cache</p>

i możesz również użyć do tego meta

<meta http-equiv="Refresh" content="5">
Shafiqul Islam
źródło
Odświeżanie strony <skrypt> działa, ale czy możesz wyjaśnić, w jaki sposób czyści pamięć podręczną? lub jest to po prostu odświeżanie pamięci podręcznej .. proszę wyjaśnić.
Srebrny
stackoverflow.com/questions/5721704/... , jeśli chcesz się bardziej pochylić, to proszę google go
Shafiqul Islam
10

Istnieje automatyczne narzędzie odświeżania przy zmianie dla IE. Nazywa się ReloadIt i jest dostępny na stronie http://reloadit.codeplex.com . Wolny.

Wybierz adres URL, który chcesz automatycznie ponownie załadować, i określ jedną lub więcej ścieżek do katalogu w celu monitorowania zmian. Naciśnij F12, aby rozpocząć monitorowanie.

wprowadź opis zdjęcia tutaj

Po ustawieniu, zminimalizuj. Następnie edytuj swoje pliki zawartości. Gdy zapiszesz jakąkolwiek zmianę, strona zostanie ponownie załadowana. lubię to:

wprowadź opis zdjęcia tutaj

Prosty. łatwo.

Cheeso
źródło
2
Ładne narzędzie dla IE i dzięki za animację. Jak mogę to zrobić?
Wasim Shaikh,
@WasimShaikh - Nagraj ekran do animowanego pliku GIF za pomocą ScreenToGIF .
ashleedawg
5

Odpowiedź udzielona przez @jAndy powinna działać, ale w Firefoksie możesz napotkać problem, window.location.reload (1) ; może nie działać, to moje osobiste doświadczenie.

Chciałbym więc zasugerować:

setTimeout(function() { window.location=window.location;},5000);

Jest to testowane i działa dobrze.

NarendraSoni
źródło
3

Przyzwoitą alternatywą, jeśli używasz Firefox, jest wtyczka XRefresh . Przeładuje stronę za każdym razem, gdy wykryje modyfikację pliku. Zamiast odświeżać co 5 sekund, odświeżanie nastąpi po naciśnięciu przycisku Zapisz w edytorze HTML.

Dal Hundal
źródło
3

Alternatywnie jest aplikacja o nazwie LiveReload ...

veksen
źródło
2

Jeśli tworzysz i testujesz w przeglądarce Firefox, dostępna jest wtyczka „ ReloadEvery ”, która umożliwia przeładowanie strony w określonych odstępach czasu.

Veera
źródło
1

Będzie to działać przez 5 sekund.

5000 milisekund = 5 sekund

Używaj tego z celem _selflub czymkolwiek chcesz i jakąkolwiek stroną, w tym sobą:

<script type="text/javascript">
function load()
{
setTimeout("window.open('http://YourPage.com', '_self');", 5000);
}
</script>
<body onload="load()"> 

Lub to z automatycznym self i bez kodu docelowego z dowolną stroną, w tym samą:

<script type="text/javascript">
function load()
{
setTimeout("location.href = 'http://YourPage.com';", 5000);
}
</script>
<body onload="load()"> 

Lub to, jeśli jest to ta sama strona, aby przeładować tylko i ukierunkowany holownik, kiedy tylko chcesz:

<script type="text/javascript">
function load()
{
setTimeout("window.open(self.location, '_self');", 5000);
}
</script>
<body onload="load()">

Wszystkie 3 robią podobne rzeczy, tylko na różne sposoby.

SeekLoad
źródło
1

function reload() {
  document.location.reload();
}

setTimeout(reload, 5000);

obiekt-obiekt
źródło