Wie aktualisiere ich eine Seite mit JavaScript?

Lesezeit: 5 Minuten

Benutzer-Avatar
Lukas

Wie aktualisiere ich eine Seite mit JavaScript?

  • 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

Benutzer-Avatar
Ionica Bizau

Es gibt mehrere unbegrenzte Möglichkeiten, eine Seite mit JavaScript zu aktualisieren:

  1. location.reload()
  2. history.go(0)
  3. location.href = location.href
  4. location.href = location.pathname
  5. location.replace(location.pathname)
  6. 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:

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 wie reload()Der Standardparameter von ist false.

    – 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

Benutzer-Avatar
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 hat example.com/something#blah:

    – AaronLS

    12. Juni 2013 um 16:01 Uhr

  • Falls sich jemand fragt, was der Unterschied zwischen ist location.reload() und history.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 der go(delta) Methode aufgerufen wird, wenn das Argument der Methode weggelassen wurde oder den Wert Null hat, muss der Benutzeragent so tun, als ob die location.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 hat example.com/something#blah:

    – AaronLS

    12. Juni 2013 um 16:01 Uhr

  • Falls sich jemand fragt, was der Unterschied zwischen ist location.reload() und history.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 der go(delta) Methode aufgerufen wird, wenn das Argument der Methode weggelassen wurde oder den Wert Null hat, muss der Benutzeragent so tun, als ob die location.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

Benutzer-Avatar
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


1316130cookie-checkWie aktualisiere ich eine Seite mit JavaScript?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy