Wie kann ich eine Seite mit jQuery aktualisieren?
javascript
jquery
refresh
reload
luca
quelle
quelle
Antworten:
Verwendung
location.reload()
:Die
reload()
Funktion verwendet einen optionalen Parameter, der so eingestellt werden kann, dasstrue
ein erneutes Laden vom Server anstelle des Caches erzwungen wird. Der Parameter ist standardmäßig so eingestelltfalse
, dass die Seite standardmäßig aus dem Cache des Browsers neu geladen werden kann.quelle
window.location.href=window.location.href;
undlocation.href=location.href;
arbeitete.window.location.reload(true);
wird schwer zu aktualisieren, sonst ist es standardmäßig falschlocation.reload();
ist Standard-Javascript. Sie brauchen dafür kein jQuery.Dies sollte in allen Browsern auch ohne jQuery funktionieren:
quelle
Es gibt
mehrereunbegrenzte 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)
Sie können die Liste weiterhin kreativ gestalten:
window.location = window.location
window.self.window.self.window.window.location = window.location
quelle
(reload()/(false))
sind langsamer. Hmmm. interessant. :) und 1 und 6 sind die gleichen wiereload()
der Standardparameterfalse
.location.href = location.href
ist das, was ich normalerweise benutze, aber danke für die anderen. Sehr hilfreich! +1Ich nehme an, es werden viele Möglichkeiten funktionieren:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
quelle
window.location.href=window.location.href;
wird nichts tun , wenn Ihre URL am Ende ein # / hashbang hatexample.com/something#blah
:location.reload()
undhistory.go(0)
ist: Es gibt keinen. 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 diego(delta)
Methode aufgerufen wird, wenn das Argument für die Methode weggelassen wurde oder hat Bei dem Wert Null muss der Benutzeragent so tun, als oblocation.reload()
stattdessen die Methode aufgerufen wurde. "Gehen Sie folgendermaßen vor, um eine Seite mit jQuery neu zu laden:
Der hier verwendete Ansatz war Ajax jQuery. Ich habe es auf Chrome 13 getestet . Dann habe ich den Code in den Handler eingegeben, der das Neuladen auslöst. Die URL ist
""
, was diese Seite bedeutet .quelle
context
Parameter von falsch$.ajax
und erwarten, dass er irgendwie eine Art Magie ausführt. Es wird lediglich derthis
Wert der Rückruffunktionen festgelegt . Ajax zu einer URL von""
wird die URL treffen, auf der Sie sich gerade befinden, wodurch normalerweise der gesamte HTML-Code (einschließlich<html>
und<head>
und<body>
) geladen wird, und nichts in dieser Antwort filtert das heraus, was Sie nicht wollen.Wenn die aktuelle Seite durch eine POST-Anforderung geladen wurde, möchten Sie möglicherweise verwenden
anstatt
da
window.location.reload()
wird zur Bestätigung aufgefordert, wenn es auf einer Seite aufgerufen wird, die von einer POST-Anforderung geladen wurde.quelle
window.location = window.location
ist jedoch auch unvollkommen; Es macht nichts, wenn die aktuelle URL einen Fragid (Hashbang) enthält.Die Frage sollte sein:
So aktualisieren Sie eine Seite mit JavaScript
Sie haben die Qual der Wahl.
quelle
Möglicherweise möchten Sie verwenden
forceGet
ist boolesch und optional.Der Standardwert ist false, wodurch die Seite aus dem Cache neu geladen wird.
Setzen Sie diesen Parameter auf true, wenn Sie den Browser zwingen möchten, die Seite vom Server abzurufen, um auch den Cache zu entfernen.
Oder nur
wenn Sie schnell und einfach mit Caching wollen.
quelle
Drei Ansätze mit unterschiedlichen Verhaltensweisen im Zusammenhang mit dem Cache:
location.reload(true)
In Browsern, die den
forcedReload
Parameter von implementierenlocation.reload()
, wird neu geladen, indem eine neue Kopie der Seite und aller ihrer Ressourcen (Skripte, Stylesheets, Bilder usw.) abgerufen wird. Es werden keine Ressourcen aus dem Cache bereitgestellt. Es werden neue Kopien vom Server abgerufen, ohne dass in der Anforderung Headerif-modified-since
oderif-none-match
Header gesendet werden .Entspricht dem Benutzer, der in Browsern, in denen dies möglich ist, ein "Hard Reload" durchführt.
Beachten Sie, dass die Übergabe
true
anlocation.reload()
in Firefox (siehe MDN ) und Internet Explorer (siehe MSDN ) unterstützt wird, jedoch nicht universell unterstützt wird und weder Teil der W3 HTML 5-Spezifikation noch der W3-HTML 5.1-Entwurfsspezifikation oder des WHATWG HTML Living Standard ist .In nicht unterstützten Browsern wie Google Chrome
location.reload(true)
verhält es sich genauso wielocation.reload()
.location.reload()
oderlocation.reload(false)
Lädt die Seite neu, ruft eine neue, nicht zwischengespeicherte Kopie des Seiten-HTML selbst ab und führt RFC 7234- Revalidierungsanforderungen für alle Ressourcen (wie Skripte) durch, die der Browser zwischengespeichert hat, auch wenn sie frisch sind. RFC 7234 ermöglicht dem Browser die Bereitstellung sie ohne Verlängerung.
Wie genau der Browser seinen Cache beim Ausführen eines
location.reload()
Anrufs verwenden soll, ist nicht angegeben oder dokumentiert, soweit ich das beurteilen kann. Ich habe das obige Verhalten durch Experimente bestimmt.Dies entspricht dem einfachen Drücken der Schaltfläche "Aktualisieren" in seinem Browser.
location = location
(oder unendlich viele andere mögliche Techniken, die das Zuweisen zulocation
oder zu seinen Eigenschaften beinhalten)Funktioniert nur, wenn die URL der Seite keinen Fragid / Hashbang enthält!
Lädt die Seite ohne Erneutes Abrufen oder Revalidierung keine frischen Mittel aus dem Cache. Wenn der HTML-Code der Seite selbst aktuell ist, wird die Seite neu geladen, ohne dass HTTP-Anforderungen ausgeführt werden.
Dies entspricht (aus Caching-Sicht) dem Benutzer, der die Seite in einer neuen Registerkarte öffnet.
Wenn die URL der Seite jedoch einen Hash enthält, hat dies keine Auswirkungen.
Auch hier ist das Caching-Verhalten meines Wissens nicht spezifiziert. Ich habe es durch Testen festgestellt.
Zusammenfassend möchten Sie also Folgendes verwenden:
location = location
für maximale Nutzung des Caches, solange die URL der Seite keinen Hash enthält. In diesem Fall funktioniert dies nichtlocation.reload(true)
um neue Kopien aller Ressourcen abzurufen, ohne sie erneut zu validieren (obwohl dies nicht allgemein unterstützt wird und sichlocation.reload()
in einigen Browsern wie Chrome nicht anders verhält )location.reload()
um den Effekt des Benutzers originalgetreu wiederzugeben, klicken Sie auf die Schaltfläche "Aktualisieren".quelle
location = location
funktioniert nicht, wenn die URL einen Hash enthält. Für jede Site, die Fragids verwendet - oder sogar für jede Site, auf der jemand, der auf eine Seite verlinkt, möglicherweise ein Fragid zur URL hinzufügt -, ist diese fehlerhaft.window.location.reload()
wird vom Server neu geladen und alle Ihre Daten, Skripte, Bilder usw. erneut geladen.Wenn Sie also nur den HTML-Code aktualisieren möchten, wird der HTML-
window.location = document.URL
Code viel schneller und mit weniger Datenverkehr zurückgegeben. Die Seite wird jedoch nicht neu geladen, wenn die URL einen Hash (#) enthält.quelle
location.reload()
erzwingt eine erneute Validierung zwischengespeicherter Ressourcen, auch ohne Argumente, währendwindow.location = document.URL
zwischengespeicherte Ressourcen gerne bereitgestellt werden, ohne den Server zu erreichen, solange sie aktuell sind.Die jQuery-
Load
Funktion kann auch eine Seitenaktualisierung durchführen:quelle
Da die Frage allgemein gehalten ist, versuchen wir, mögliche Lösungen für die Antwort zusammenzufassen:
Einfache einfache JavaScript-Lösung :
Der einfachste Weg ist eine einzeilige Lösung, die auf geeignete Weise platziert wird:
Was viele Leute hier vermissen, weil sie hoffen, einige "Punkte" zu bekommen, ist, dass die reload () - Funktion selbst einen Booleschen Wert als Parameter bietet (Details: https://developer.mozilla.org/en-US/docs/Web / API / Location / reload ).
Dies bedeutet, dass es zwei Möglichkeiten gibt:
Lösung 1: Erzwingen Sie das Neuladen der aktuellen Seite vom Server
Lösung 2: Neuladen aus dem Cache oder Server (basierend auf dem Browser und Ihrer Konfiguration)
Und wenn Sie es mit jQuery kombinieren möchten, um ein Ereignis abzuhören, würde ich empfehlen, die Methode ".on ()" anstelle von ".click" oder anderen Ereignis-Wrappern zu verwenden. Eine geeignetere Lösung wäre beispielsweise:
quelle
Hier ist eine Lösung, die eine Seite mit jQuery asynchron neu lädt. Es vermeidet das durch verursachte Flimmern
window.location = window.location
. Dieses Beispiel zeigt eine Seite, die wie in einem Dashboard kontinuierlich neu geladen wird. Es ist kampferprobt und läuft auf einem Informationsfernseher am Times Square.Anmerkungen:
$.ajax
direkte Verwendung von " like" führt dazu,$.get('',function(data){$(document.body).html(data)})
dass CSS / JS-Dateien im Cache kaputt gehen , selbst wenn Sie sie verwendencache: true
. Deshalb verwenden wir sieparseHTML
parseHTML
findet KEINbody
Tag so Ihren ganzen Körper braucht in einem extra div zu gehen, ich hoffe das Nugget Wissen Sie eines Tages hilft, können Sie sich vorstellen , wie wir die ID für das gewähltdiv
http-equiv="refresh"
nur für den Fall, dass beim Javascript / Server-Schluckauf etwas schief geht. Die Seite wird NOCH neu geladen, ohne dass Sie einen Anruf erhaltenhttp-equiv
Aktualisierung behebt dasquelle
ich fand
oder
macht auch eine Seitenaktualisierung.
Dies macht es sehr viel einfacher, die Seite neu zu laden und Hash zu entfernen. Dies ist sehr schön, wenn ich AngularJS im iOS-Simulator verwende, damit ich die App nicht erneut ausführen muss.
quelle
Sie können die JavaScript-
location.reload()
Methode verwenden. Diese Methode akzeptiert einen booleschen Parameter.true
oderfalse
. Wenn der Parameter isttrue
; Die Seite wurde immer vom Server neu geladen. Wenn es so istfalse
; Dies ist die Standardeinstellung oder lädt die Seite mit einem leeren Parameter-Browser aus dem Cache neu.Mit
true
ParameterMit
default
/false
ParameterVerwenden von jquery
quelle
Sie benötigen nichts von jQuery, um eine Seite mit reinem JavaScript neu zu laden. Verwenden Sie einfach die Reload-Funktion für die Positionseigenschaft wie folgt:
Standardmäßig wird die Seite über den Browser-Cache neu geladen (falls vorhanden) ...
Wenn Sie das Neuladen der Seite erzwingen möchten, übergeben Sie einfach einen wahren Wert, um die Methode wie unten neu zu laden ...
Auch wenn Sie sich bereits im Fensterbereich befinden , können Sie das Fenster entfernen und Folgendes tun:
quelle
verwenden
oder
quelle
Verwenden Sie
onclick="return location.reload();"
innerhalb des Button-Tags.quelle
Wenn Sie jQuery verwenden und aktualisieren möchten, fügen Sie Ihre jQuery in einer Javascript-Funktion hinzu:
Ich wollte einen Iframe von einer Seite ausblenden, wenn
h3
ich auf oh an klickte. Für mich hat es funktioniert, aber ich konnte nicht auf das Element klicken, mit dem ich das anzeigen konnteiframe
, es sei denn, ich habe den Browser manuell aktualisiert ... nicht ideal.Ich habe folgendes versucht:
Das Mischen von einfachem Jane-Javascript mit Ihrer jQuery sollte funktionieren.
quelle
Alle Antworten hier sind gut. Da die Frage zum erneuten Laden der Seite mit angibtjqueryIch dachte nur, etwas mehr für zukünftige Leser hinzuzufügen.
So werden Sie verstehen, dass die Grundlage von jquery, oder jquery basiert auf Javascript. Also mit rein gehenJavascript ist viel besser, wenn es um einfache Dinge geht.
Aber wenn Sie eine brauchen jquery Lösung, hier ist eine.
quelle
Es gibt viele Möglichkeiten, die aktuellen Seiten neu zu laden, aber mit diesen Ansätzen können Sie sehen, dass die Seite aktualisiert wird, aber nicht mit wenigen Cache-Werten vorhanden ist. Beheben Sie also dieses Problem, oder verwenden Sie den folgenden Code, wenn Sie harte Anforderungen stellen möchten.
quelle
quelle
Einfache Javascript-Lösung:
quelle
Wahrscheinlich kürzeste (12 Zeichen) - Nutzung Geschichte
quelle
Sie können es auf zwei Arten schreiben. 1. ist die Standardmethode zum Neuladen der Seite, die auch als einfache Aktualisierung bezeichnet wird
Und eine andere nennt man die harte Auffrischung . Hier übergeben Sie den booleschen Ausdruck und setzen ihn auf true. Dadurch wird die Seite neu geladen, wodurch der ältere Cache zerstört und der Inhalt von Grund auf neu angezeigt wird.
quelle
In JavaScript ist es am kürzesten.
quelle
quelle
Hier sind einige Codezeilen, mit denen Sie die Seite mit jQuery neu laden können .
Es verwendet den jQuery-Wrapper und extrahiert das native dom-Element.
Verwenden Sie diese Option, wenn Sie nur ein jQuery-Gefühl für Ihren Code wünschen und sich nicht um die Geschwindigkeit / Leistung des Codes kümmern .
Wählen Sie einfach 1 bis 10 aus, die Ihren Anforderungen entsprechen, oder fügen Sie basierend auf dem Muster und den Antworten zuvor weitere hinzu.
quelle