Wie aktualisiere ich eine Seite mit JavaScript?
Wie aktualisiere ich eine Seite mit JavaScript?
Lukas
Ionica Bizau
Es gibt mehrere unbegrenzte Möglichkeiten, eine Seite mit JavaScript zu aktualisieren:
location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
-
location.reload(false)
Wenn wir das Dokument erneut vom Webserver abrufen müssten (z. B. wenn sich der Dokumentinhalt dynamisch ändert), würden wir das Argument als übergeben
true
.
Sie können die Liste kreativ fortsetzen:
window.location = window.location
window.self.window.self.window.window.location = window.location
- …und weitere 534 Möglichkeiten
var methods = [
"location.reload()",
"history.go(0)",
"location.href = location.href",
"location.href = location.pathname",
"location.replace(location.pathname)",
"location.reload(false)"
];
var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
(function(cMethod) {
$body.append($("<button>", {
text: cMethod
}).on("click", function() {
eval(cMethod); // don't blame me for using eval
}));
})(methods[i]);
}
button {
background: #2ecc71;
border: 0;
color: white;
font-weight: bold;
font-family: "Monaco", monospace;
padding: 10px;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.5s ease;
margin: 2px;
}
button:hover {
background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
-
+1 für die Liste und jsfiddle. Ich habe eine Frage, in jsfiddle 1 und 6 verschwinden die generierte Seite für einen Moment, während sie neu geladen wird, und 2-5 machen das Neuladen der Seite “unbemerkbar”. Im Entwicklungstool in Chrome kann ich sehen, dass die Seite neu generiert wird, aber könnten Sie erklären, dass der Neuzeichnungsprozess unterschiedlich ist? bitte. Danke im Voraus.
– C
25. Juni 2013 um 7:21 Uhr
-
@C! Ich sehe keinen Unterschied … Vielleicht ist der Cache das Problem? Werde ich mir demnächst anschauen.
– Ionică Bizău
9. Juli 2013 um 15:22 Uhr
-
1 und 6
(reload()/(false))
sind langsamer. Hmmm. interessant. 🙂 und 1 und 6 sind die gleichen wiereload()
Der Standardparameter von istfalse
.– C
19. Juli 2013 um 0:32 Uhr
-
location.href = location.href
ist das, was ich normalerweise benutze, aber danke für die anderen. Sehr hilfreich! +1– Amal Murali
25. Dezember 2013 um 16:10 Uhr
-
@C교 Endlich kann ich reproduzieren, was Sie sehen, und ich habe hier gefragt.
– Ionică Bizău
31. Dezember 2013 um 13:49 Uhr
-
Wenn Sie sich fragen, wie gut dies genau unterstützt wird, finden Sie hier die Kann ich benutzen?
– Ein Freund
1. Oktober 2020 um 16:53 Uhr
David
Viele Möglichkeiten werden funktionieren, nehme ich an:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
-
Dies
window.location.href=window.location.href;
Wird besorgt nichts wenn Ihre URL ein #/hashbang am Ende hatexample.com/something#blah
:– AaronLS
12. Juni 2013 um 16:01 Uhr
-
Falls sich jemand fragt, was der Unterschied zwischen ist
location.reload()
undhistory.go(0)
ist: es gibt keine. Der relevante Abschnitt der HTML 5-Spezifikation unter w3.org/TR/html5/browsers.html#dom-history-go schreibt ausdrücklich vor, dass sie gleichwertig sind: “Wenn dergo(delta)
Methode aufgerufen wird, wenn das Argument der Methode weggelassen wurde oder den Wert Null hat, muss der Benutzeragent so tun, als ob dielocation.reload()
Methode wurde stattdessen aufgerufen.”– Mark Amery
19. Oktober 2015 um 20:49 Uhr
-
Das einzige, das für mich funktioniert hat, war dieses: window.location.href=window.location.href;
– Yster
8. Dezember 2015 um 9:10 Uhr
-
window.location.href=window.location.href hat bei mir funktioniert
– Rohit Singh
1. April 2021 um 8:10 Uhr
Um eine Seite mit jQuery neu zu laden, tun Sie Folgendes:
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
Der Ansatz, den ich hier verwendet habe, war Ajax jQuery. Ich habe es an getestet Chrom 13. Dann füge ich den Code in den Handler ein, der das Neuladen auslöst. Das URL ist ""
was bedeutet diese Seite.
-
Dies
window.location.href=window.location.href;
Wird besorgt nichts wenn Ihre URL ein #/hashbang am Ende hatexample.com/something#blah
:– AaronLS
12. Juni 2013 um 16:01 Uhr
-
Falls sich jemand fragt, was der Unterschied zwischen ist
location.reload()
undhistory.go(0)
ist: es gibt keine. Der relevante Abschnitt der HTML 5-Spezifikation unter w3.org/TR/html5/browsers.html#dom-history-go schreibt ausdrücklich vor, dass sie gleichwertig sind: “Wenn dergo(delta)
Methode aufgerufen wird, wenn das Argument der Methode weggelassen wurde oder den Wert Null hat, muss der Benutzeragent so tun, als ob dielocation.reload()
Methode wurde stattdessen aufgerufen.”– Mark Amery
19. Oktober 2015 um 20:49 Uhr
-
Das einzige, das für mich funktioniert hat, war dieses: window.location.href=window.location.href;
– Yster
8. Dezember 2015 um 9:10 Uhr
-
window.location.href=window.location.href hat bei mir funktioniert
– Rohit Singh
1. April 2021 um 8:10 Uhr
Markus Amery
Wenn die aktuelle Seite durch eine POST-Anforderung geladen wurde, möchten Sie möglicherweise verwenden
window.location = window.location.pathname;
Anstatt von
window.location.reload();
Weil window.location.reload()
fordert zur Bestätigung auf, wenn es auf einer Seite aufgerufen wird, die durch eine POST-Anforderung geladen wurde.
-
Dadurch geht jedoch der Abfragestring verloren, während window.location = window.location dies nicht tut
– Mrmillsy
15. November 2013 um 15:08 Uhr
-
@mrmillsy
window.location = window.location
ist aber auch unvollkommen; Es tut nichts, wenn die aktuelle URL einen Fragid (Hashbang) enthält.– Mark Amery
19. Oktober 2015 um 21:30 Uhr
Da jQuery ein Javascript-Framework für einfache DOM-Manipulation und Ereignisbindung ist, würde ich Ihnen empfehlen, statt jQuery nach Javascript zu fragen.
– ˈvɔlə
4. August 2014 um 13:56 Uhr
Sie brauchen dafür kein jQuery.
– Sternenstaub
1. Januar 2016 um 17:59 Uhr
Aktueller denn je: brauchtmorejquery.com
– Kartik Chugh
11. August 2017 um 3:55 Uhr
@Stardust Sie brauchen jQuery nicht für alles, was Sie mit jQuery tun, da mit JavaScript alles möglich ist, wenn Sie es mit jQuery tun können.
– Ich bin die dümmste Person
19. Juli 2019 um 4:42 Uhr