Bevorzugte Methode zum Neuladen einer Seite mit JavaScript? [geschlossen]


103

Welchen Weg zum erneuten Laden einer aktuellen Seite (über eine Schaltfläche) würden Sie bevorzugen?

1 <input type="button" value="Reload" onClick="history.go(0)">
2 <input type="button" value="Reload" onClick="location.reload(true)">
3 <input type="button" value="Reload" onClick="window.location.reload(true)">
4 <input type="button" value="Reload" onClick="window.location.href=window.location.href">
5 <input type="button" value="Reload" onClick="document.location.reload(true)">
6 <input type="button" value="Reload" onClick="document.location.href=document.location.href">

Da sich die URL der Seite häufig ändert, ähnelt AFAIK einer 'Fallback-Funktion'

<a href="urlOfCurrentPage.html" onclick="window.location.reload(true);return false;">Reload</a>

wird bei mir nicht funktionieren, oder?


Beachten Sie, dass die Nummern 2 und 3 dasselbe sind
Matti Virkkunen

3
Nummer 4 und 6 werden nichts neu laden, wenn ein # in der URL vorhanden ist
jontro

2
Nummer 2, 3 und 5 werden nicht von allen Browsern implementiert. *.location.reload()Das Argument wird nur verwendet, um anzugeben, ob der Cache ignoriert werden soll. stackoverflow.com/questions/10876244/…
Dead.Rabit

OP hat die am meisten bevorzugte Methode von allen verpasst: location.reload ();
Doug S

Antworten:


57

Kommt darauf an, was du machen willst. Bei der vierten und sechsten Methode werden dort keine Formulardaten neu geladen, sondern die Seite wird im Wesentlichen separat besucht. Einige Versionen von Firefox haben auch Probleme mit der dritten Methode. Davon abgesehen würde ich den fünften als persönliche Präferenz wählen. Es scheint am klarsten.


Die zweite Methode (.reload) funktioniert in einigen Fällen nicht.
Aristos

"document.location.reload (true)" ist also browserübergreifend sicher und die robusteste?
Mel

@ Mel, ich glaube schon. Wirklich, Fenster und Dokument sollten beide funktionieren.
Tloflin

10
Beachten Sie, dass Sie beim Verwenden von document.location.reload () in einem POST vom Browser gefragt werden, ob Sie die Daten erneut senden möchten, um die Seite neu zu laden.
wimh

Wimmel, ja, um das zu beheben, verwenden Sie das PRG-Muster: en.wikipedia.org/wiki/Post/Redirect/Get
Sarel Botha

30

Sie können auch tun:

wdrepräsentiert Fenster ||Dokument :

  • wd.location.assign (wd.location.href) : Gehen Sie zur URL
  • wd.location.replace (wd.location.href) : Gehen Sie zur URL und ersetzen Sie die vorherige Seite im Verlauf
  • wd.location.reload (<true / false / blank>) : Seite von Server / Cache / Cache neu laden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.