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?

Mel
quelle
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.

tloflin
quelle
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
vol7ron
quelle