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).

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);

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.


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">

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.


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.


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.



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.


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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.