Wie kann ich ein hartes Neuladen in Chrome für Android erzwingen?

207

In Chrome für den Desktop habe ich Optionen in den Entwicklertools, um den Cache vollständig zu deaktivieren, wenn Entwicklertools geöffnet werden, und ich habe die Optionen, ein hartes Neuladen manuell durchzuführen, wenn Sie lange auf die Schaltfläche zum Neuladen klicken (bei geöffneten Entwicklertools).

Gibt es eine solche Technik für Chrome für Android? Ich habe keine Einstellung gefunden. Was kann ich tun, wenn ich den Browser zwingen möchte, eine Javascript- oder CSS-Datei herunterzuladen, anstatt bei der Entwicklung eine zwischengespeicherte Datei zu verwenden?

Riesling
quelle
Wir sind gerade zurückgekehrt, um eine stabile Web-App zu erweitern, und haben festgestellt, dass dies geschah. Die neuesten Statusdaten werden in einer .js-Datei mit einem Cache-Buster-URL-Suffix gespeichert. Dies funktioniert nicht mehr in Chrome unter Windows, ChromeOS oder Android.
Euan M
Es scheint, als würde eine einfache Aktualisierung (Klicken auf den Kreis mit dem Pfeil) Änderungen in diesen Tagen erkennen. keine Tricks. ... lass es mich wissen, wenn ich falsch liege.
Ronnie Royston

Antworten:

167

Ich verwende window.location.reload(true)laut MDN (und dieser ähnlichen Frage) die Seite zum Neuladen vom Server.

Sie können diesen Code im Browser ausführen, indem Sie javascript:location.reload(true)in die Adressleiste eingeben .

Konrad Dzwinel
quelle
7
Geben Sie es einfach in die Adressleiste ein, der der Code vorangestellt ist javascript:.
Konrad Dzwinel
4
Eigentlich sollten Sie in der Lage sein, window.Teile zu vermeiden . javascript:location.reload(true)sollte den Trick machen.
Konrad Dzwinel
5
funktionierte nicht für mich auf Chrome v55.0.2883.91 / android5.1.1
Kev
20
Bei mir funktioniert es nicht, v56.0.2924.87 unter Android 7.1.1. Warum können Sie einfach auf Aktualisieren klicken und den Browser wie früher erneut herunterladen lassen? Solch ein Ärger beim Versuch sich zu entwickeln.
Scott Wilson
33
Ich öffne ein Inkognito-Fenster
Deepak Kamat
132

Wenn Sie die Seite im Inkognito-Modus anzeigen, wird der Cache deaktiviert. Nur so konnte ich eine Aktualisierung eines Stylesheets erzwingen, ohne den Cache manuell über die Einstellungen zu leeren.

Michael
quelle
2
@ Kevin Weder für mich.
Ricky Boyce
1
Ja, dieser arbeitet für mich auf Android 6.0.1 mit Chrome 59.
Avio
4
Dies funktioniert besser als die akzeptierte Antwort, zumindest unter Android 7.1.2 und Chrome 61. Das Caching ist irgendwie sehr aggressiv. Selbst das Leeren von zwischengespeicherten Dateien für diese Domain hat bei mir nicht funktioniert.
Ogier Schelvis
Ich benutze es öfter, wenn es bei Ihnen nicht funktioniert, befindet sich der Cache wahrscheinlich auf dem Server und nicht im Browser.
Deepak Kamat
2
Der Cache wird nur beim ersten Mal im Inkognito-Modus gelöscht. Danach erscheint das gleiche Problem
Mara
75

Auch eine Option:

  1. Speisekarte
  2. die Einstellungen
  3. Privatsphäre
  4. Browserdaten löschen
  5. Aktivieren Sie "Cache" und drücken Sie "CLEAR".

und laden Sie dann die Seite neu.

Schachmatt711
quelle
1
Jetzt wurde es in geändert Clear Browsing Data, wo Sie clear cachemit dem Kontrollkästchen aktivieren können.
Shaijut
1
Nein, und dann KILL Chrome, Chrome neu starten und dann die Seite neu laden. Ja, es ist nur noch schlimmer geworden.
ADTC
4
Update: Selbst das Töten von Chrome funktioniert nicht mehr. Ich habe keine Ahnung, was zum Teufel die Option "Zwischengespeicherte Bilder und Dateien" löscht. Sie hält immer noch an der zwischengespeicherten CSS-Datei fest. Das wird lächerlicher!
ADTC
1
Update: Siehe heidgerts Antwort. Wenn Sie den Cache leeren, wird möglicherweise immer noch das "zwischengespeicherte" Ergebnis von den Servern von Google geladen, wenn "Data Saver" in den Chrome-Einstellungen aktiviert ist.
ADTC
1
Dadurch wird der Cache von ALLEN Sites gelöscht, nicht nur von der inspizierten.
Obmerk Kronen
46

Sie können die Option Desktop-Site anfordern im App-Menü (rechts neben der Adressleiste) verwenden, um das Neuladen der Seite zu erzwingen.

Tippen Sie einfach darauf, warten Sie auf die Aktualisierung und deaktivieren Sie sie dann.

lucoweb
quelle
Bestätigte Arbeit an Chrome. Ich habe diese Antwort beim Überfliegen fast verpasst. Die Kommentare zu Firefox wurden entfernt, um der nächsten Person zu helfen. Ich hoffe, dass dies nicht im Widerspruch zur Absicht des Autors steht .
Ishmaeel
1
Dies ist bei weitem die beste Antwort für die Entwicklung, wenn Sie eine feststeckende CSS- oder JS-Datei erhalten. Ich finde, dass das Aktualisieren normalerweise gut funktioniert, aber manchmal bleibt aus irgendeinem unerklärlichen Grund eine JS- oder CSS-Datei hängen, und dies ist der einzige Weg, sie zu lösen, den ich gefunden habe. Ich wünschte, ich könnte mehr als eine Gegenstimme abgeben, lol, weil es so eine einfache Lösung ist.
Lizardx
8
Dies funktionierte vor
einiger
1
Dies funktionierte bei mir mit Chrome 2018 65.0.3325.109 auf Samsung Android 5.1.1; SM-T900 Build / LMy47X. Es hatte den zusätzlichen Vorteil, dass zwischengespeicherte Daten (z. B. localStorageWerte) nicht zerstört wurden .
CODE-REaD
1
Funktioniert nicht im April 2019. Chrome 73+ funktioniert nicht.
SE schlägt wieder leider
31

Erwähnen Sie dies, weil Sie "bei der Entwicklung" erwähnt haben.

Sie können das mobile Gerät über Ihren Chrome Desktop Browser steuern.

Besuchen Sie chrome://inspect/#devicesauf Ihrem Desktop. Und Inspectdas Gerät, das mit Ihrem Desktop verbunden ist. Stimmen Sie zu, wenn Sie um Erlaubnis gebeten werden.

Sie sollten jetzt ein vollwertiges Devtool-Fenster für die aktuelle Seite auf dem Mobilgerät sehen.

Verwenden Sie jetzt die Verknüpfung zum harten Neuladen (Cmd + Umschalt + R) auf dem Desktop, um das harte Neuladen auf Mobilgeräten durchzuführen!

Aakash Goel
quelle
3
Dieser Kommentar ist veraltet, hat mich aber auf den richtigen Weg gebracht. Sie müssen zuerst das eigentliche Telefon für das Debuggen über Chrome aktivieren.
Deborah
Ausführliche Anweisungen zum Aktivieren des USB-Debuggens auf einem Android-Telefon finden Sie unter: stackoverflow.com/a/16707217/1024735 . Und diese Funktion eignet sich nicht nur für das Nachladen. Vielen Dank!
Kevinmicke
Zum Testen in den Android-Emulatoren ist Strg + Umschalt + R in devtools wirklich nett und schnell. Kein Ein- und Ausschalten von Einstellungen usw. Danke.
Rainer Schwarze
21

Vergessen Sie nicht, sicherzustellen, dass die Einstellung "Datennutzung reduzieren" deaktiviert ist, da zwischengespeicherte Daten (von Google-Servern?) Heruntergeladen zu werden scheinen, obwohl Ihr lokaler Cache geleert ist.

heidgert
quelle
1
Ich denke, diese Einstellung heißt jetzt einfach "Data Saver".
Bletch
19

So setzen Sie alle Daten für eine bestimmte URL / Website auf Chrome Mobile für Android zurück:

1 - Öffnen Sie das Chrome-Menü und tippen Sie auf das Symbol "i (info)"

einer

2 - Tippen Sie auf "Site-Einstellungen".

zwei

3 - Tippen Sie auf das Papierkorbsymbol

drei

Das war's, selbst der am tiefsten verwurzelte Servicemitarbeiter für diese URL wird jetzt sterben.

yPhil
quelle
6
Dies funktioniert nicht auf Chrome 73.0.3683.90 auf einem Samsung S9 +. Ich habe dies über 15 Mal versucht, sowie Javascript: location.reload (true), und es funktioniert nicht. Laut Guug-Ul, Lord of Darkness, können Android-Nutzer nicht auch Entwickler sein.
SE schlägt leider wieder zu
Funktioniert auf meinem Note 8 .. Aber ich muss die Seite danach aktualisieren.
Chris Cudmore
Sie können dieses Menü auch aufrufen, indem Sie auf das Schlosssymbol (oder was auch immer es für unsichere Verbindungen anzeigt) links neben der URL klicken.
Chris Cudmore
Mit Abstand die beste Lösung! <3
bArraxas
12

Ich weiß, dass dies eine alte Frage ist, aber ich habe festgestellt, dass die akzeptierte Antwort bei mir nicht funktioniert hat.

Eine alternative Lösung wäre die URL mit einem neuen URL - Parameter wie anhängen website.com?a=1, website.com?a=2usw.

Wenn Sie bereits Parameter haben, würden Sie natürlich ein kaufmännisches Und verwenden, dh website.com?q=test&a=1

Bananenphobie
quelle
Das funktioniert. Nur ?aist ausreichend, wenn Sie nur einmal neu laden möchten.
Dan Dascalescu
11
Dies ist zum erneuten Laden zwischengespeicherter Referenzdateien (wie CSS oder JS) nicht sehr praktikabel, da Sie den Haupt-HTML-Code nicht wirklich bearbeiten können, um das hinzuzufügen ?a- natürlich, es sei denn, Sie sind der Site-Host.
ADTC
7

Ab 2018 von der Google-Hilfe (getestet auf Chrome 63):

  1. Tippen Sie auf das Drei-Punkte-Menü .
  2. Wählen Sie " Verlauf"> "Browserdaten löschen" .
  3. Wählen Sie bei Bedarf den Zeitraum (über der Checkliste).
  4. Deaktivieren Sie alle Elemente außer zwischengespeicherten Bildern und Dateien .
  5. Fahren Sie mit Daten löschen fort und bestätigen Sie.

Wie in einer anderen Antwort erwähnt, sind Inkognito-Tabs auch für die Entwicklung von großem Nutzen.

Skippy le Grand Gourou
quelle
Hinweis Schritt 3: Wählen Sie den Zeitraum. Dies war der Trick für mich, da ich vor 3 Wochen versucht habe, zwischengespeicherte Seiten zu löschen.
Dror
Es ist nicht deine Schuld, aber dies ist eine ziemlich schreckliche Lösung, da sie auch die Browserdaten für alle anderen Websites löscht. Dies ist ein Schmerz, wenn du deinen Browser für etwas anderes als Entwicklerarbeit verwendest!
GameKyuubi
@GameKyuubi Wenn Sie Daten aus der letzten Stunde auswählen, sind die Schmerzen begrenzt. Aber natürlich diese Lösung ziemlich schlecht ist, ich referenzierten es nur , weil es die offizielle ist und es tut Arbeit ( im Gegensatz zu einigen anderen).
Skippy le Grand Gourou
Das meine ich damit, dass die Tatsache, dass dies die offizielle Lösung ist, geradezu peinlich ist.
GameKyuubi
7

Ich habe eine Lösung gefunden, die funktioniert, aber hässlich ist.

  • Schließen Sie das Android-Gerät mit einem USB-Kabel an Ihren PC an und öffnen Sie Chrome auf Ihrem Desktop .
  • Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle auf einer Seite und wählen Sie "Inspizieren".
  • Klicken Sie auf das Dreipunktmenü und wählen Sie "Remote-Geräte" im Menü "Weitere Tools":

    Geben Sie hier die Bildbeschreibung ein

  • Wählen Sie im daraufhin angezeigten Fenster Ihr Gerät und dann die Schaltfläche "Überprüfen" neben dem Namen der Registerkarte auf Ihrem Telefon aus, die aktualisiert werden muss:

    Geben Sie hier die Bildbeschreibung ein

  • Klicken Sie im folgenden Fenster auf die Registerkarte "Netzwerk" und aktivieren Sie das Kontrollkästchen "Cache deaktivieren":

    Geben Sie hier die Bildbeschreibung ein

  • Laden Sie die Seite auf Ihrem Telefon neu oder verwenden Sie die Schaltfläche zum erneuten Laden im DevTools-Fenster.

Hinweis: Wenn Ihr Telefon nicht in der Geräteliste angezeigt wird:

  • Stellen Sie sicher, dass die USB-Verbindung den Dateiübertragungsmodus verwendet und nicht einfach aufgeladen wird
  • Starten Sie ADB neu oder führen Sie es aus adb devices, um festzustellen , ob das Gerät erkannt wird
Nathan Osman
quelle
1
Eine großartige Lösung, die hauptsächlich dazu dient, die Webseite des Geräts direkt auf dem Desktop zu "inspizieren", und Sie können auch den Cache leeren. Vielen Dank.
juanram0n
Dies ist eigentlich die schönste Antwort.
John
6

Mit Remote Debugging können Sie die Desktop-Entwicklungstools verwenden:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging

Swonkie
quelle
Ja, danke, ich weiß das schon - hätte das erwähnen sollen, aber manchmal möchte ich es nicht anschließen, habe aber immer noch diese Option
Riesling
2
Sie können den Cache folgendermaßen
leeren
5
Vielen Dank, eine Option, ohne den gesamten Cache für alle Websites zu leeren, wäre allerdings schön
Riesling
Dies ist die zuverlässigste Option, wenn Sie Netzwerk> Cache deaktivieren
Rupert Rawnsley
6

Aktuelle Versionen des Chrome-Cache sehr aggressiv. Sogar Cache-Busting-Techniken wie " http: // url? Updated = datecode " funktionierten nicht mehr. Sie müssen den Cache jedes Mal leeren oder ein Inkognito-Fenster öffnen (und sicherstellen, dass der Datenspeicher deaktiviert ist).

Greg Searle
quelle
Interessanterweise war mir das nicht bewusst. Haben Sie eine Quelle, die diese Behauptung unterstützt?
Antoine
2
Dies ist nur ein beobachtetes Verhalten, wenn ich meine eigenen Javascript-Apps entwickle. Ich musste die Anweisung CACHE-CONTROL: NO-CACHE im HTTP-Header meines Entwicklungswebservers angeben, um nicht verrückt nach Fehlern zu werden, die einfach nicht verschwinden würden (weil Chrome darauf bestand, alten Code zwischenzuspeichern). Firefox zeigt dieses Verhalten nicht an.
Greg Searle
4

Der einzige zuverlässige Weg, den ich gefunden habe, bei dem das Telefon nicht an einen PC angeschlossen werden muss, ist folgender:

1. Erzwingen Sie das Stoppen der Chrome-App.

Dies muss zuerst erfolgen. Sie können Chrome erst wieder öffnen, wenn Sie diese Schritte ausgeführt haben. Es gibt verschiedene Möglichkeiten, das Anhalten zu erzwingen. Bei den meisten Heimwerfern können Sie zu "App-Informationen" gelangen, indem Sie den Finger auf das Chrome-Symbol halten und ein "i" -Symbol auswählen. Alternativ können Sie möglicherweise zu den Android-Einstellungen gehen und einfach nach "Chrome" suchen.

Wählen Sie in "App-Info" "Stopp erzwingen" wie unten gezeigt:


2. Leeren Sie den Chrome-Cache

Wählen Sie im selben Bildschirm "Speicher":


Wählen Sie abschließend "Cache löschen".

Wenn Sie zur Chrome-App zurückkehren, sollte sich die Seite neu laden und eine nicht zwischengespeicherte Version bereitstellen.

Außerdem habe ich eine Website gefunden, mit der Sie leicht testen können, ob Sie Ihren Cache geleert haben: https://refreshyourcache.com/de/cache-test/
Ich bin in keiner Weise damit verbunden. Beachten Sie, dass die auf dieser Site erwähnte Methode zum Löschen des Caches tatsächlich veraltet und nicht mehr gültig ist.

Bort
quelle
1
Perfekt, das ist die einzige Lösung, die für mich ohne USB-Debugging funktioniert hat.
Luis Lema
2

BEARBEITEN: Diese Methode ist in Google Chrome veraltet und funktioniert nicht mehr.

URSPRÜNGLICHE ANTWORT:

Ich konnte den Cache (einschließlich des nachfolgenden xhr) mit chrome: // net-internals leeren

Chromnetz Einbauten

Klicken Sie dann oben rechts auf den kleinen Pfeil

Speisekarte

Wählen Sie "Cache löschen" aus diesem Menü.

Tom Kay
quelle
In Chrome 75 sagt chrome: // net-internals "Der Net-internals-Ereignis-Viewer und die zugehörigen Funktionen wurden entfernt ..."
Bort
@Bort danke für die Heads-Ups. Es sieht so aus, als würde diese Methode nicht mehr funktionieren.
Tom Kay
1

Hier ist eine weitere einfache Lösung , die möglicherweise funktioniert, wenn andere fehlschlagen:

Heute hat eine ziemlich einfache entwicklerseitige Lösung für mich funktioniert, als das Caching-Problem eine zwischengespeicherte CSS-Datei war. Kurz gesagt: Erstellen Sie eine temporäre HTML-Dateikopie und navigieren Sie zu dieser, um den CSS-Cache zu aktualisieren.

Dieser Trick kann die CSS-Datei aktualisieren, zumindest im Standardbrowser mit dem blauen Globus von Android (aber wahrscheinlich auch in seinem Zwilling, dem offiziellen Chrome-Browser und allen anderen Browsern, die wir auf "intelligenten" Telefonen mit ihrem Trend zum aggressiven Caching antreffen ).

Einzelheiten:

Zuerst habe ich einige der ziemlich einfachen Lösungen ausprobiert, die hier geteilt wurden, aber ohne Erfolg (zum Beispiel das Löschen der jüngsten Geschichte der spezifischen Site, aber nicht Monate und Monate davon). Mein neuestes CSS würde jedoch bei der Aktualisierung nicht angewendet. Und das, obwohl ich bereits den Versionsnummer-Trick im CSS-Dateiaufruf im Kopfbereich des HTML-Codes verwendet hatte, der mir in der Vergangenheit geholfen hatte, diese lästigen aggressiven Cachings zu vermeiden. (Beispiel: link rel = "stylesheet" href = "style.css? v = 001", wobei Sie diese Pseudo-Versionsnummer jedes Mal aktualisieren, wenn Sie eine Änderung an einer CSS-Datei vornehmen, z. B. 001, 002, 003, 004 ... (sollte in jeder HTML-Datei der Site erfolgen)

Dieses Mal (August 2019) reichte die Aktualisierung der Versionsnummer der CSS-Datei nicht mehr aus, und einige der hier genannten einfacheren Maßnahmen funktionierten für mich nicht, oder ich konnte nicht einmal auf einige davon zugreifen (auf einem geliehenen Android-Telefon).

Am Ende habe ich etwas relativ Einfaches ausprobiert, das das Problem endlich gelöst hat:

Ich habe eine Kopie der index.html-Datei der Site mit einem anderen Namen (indexcopy.html) erstellt, sie hochgeladen, auf dem Android-Gerät darauf zugegriffen, dann zur ursprünglichen Seite zurückgekehrt und sie aktualisiert (mit der Schaltfläche zum Aktualisieren links von) die Adressleiste) und voilà: Diesmal hat die Aktualisierung von index.html endlich funktioniert.

Erläuterung: Die neueste CSS-Dateiversion wurde jetzt beim Aktualisieren der betreffenden HTML-Seite endlich auf Android angewendet, da die zwischengespeicherte Kopie der CSS-Datei jetzt aktualisiert wurde, als die CSS-Datei von einer temporären HTML-Seite mit einem anderen Namen aufgerufen wurde, die nirgendwo vorhanden war im Browserverlauf und dass ich danach wieder löschen könnte. Das aggressive Caching ignorierte anscheinend die CSS-URL und ging stattdessen zur HTML-URL über, obwohl es die CSS-Datei war, die im Cache aktualisiert werden musste.

DirkTheWebPhoenix
quelle
Leider ist dies der einzige, der heutzutage zu funktionieren scheint. Wenn Sie an CSS arbeiten, müssen Sie die Datei functions.php in WordPress ständig aktualisieren, um die Version zu aktualisieren. Ja, eine andere dumme Sache über Google, die nicht denken und jetzt mit Microsoft ganz oben sind. Aber ja, ein alter Trick :)
Gavin Simpson
1

Wenn es sich nur um eingeschlossene Dateien handelt, fügen Sie einfach die Version nach dem Pfad hinzu ( ?v=12345678)

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

Wer die Seite erneut lädt, sieht Änderungen.

Novasol
quelle
1
Unterschätzte tolle Antwort!
Lisandro