Kann ich eine Cache-Aktualisierung in Safari erzwingen, die unter iOS ausgeführt wird?


56

Die meisten Windows-Desktop-Browser verwenden die Tastenkombination Ctrl+ F5, um eine seitenbezogene Cache-Aktualisierung zu erzwingen. Mac OS X-basierte Browser verwenden in der Regel Command+ R. Gibt es eine entsprechende Cache-Aktualisierung für eine einzelne Seite in Safari, die unter iOS ausgeführt wird?

Ich stelle fest, dass ich den Browser-Cache manuell leeren kann, aber ich würde es vorziehen, nur die Seite zu aktualisieren, die ich gerade ansehe.



@bassplayer7 es ist knapp aber nicht ganz das selbe. Befehl + R aktualisiert nur die Ressourcen für die jeweilige Seite, mit der Sie sich befassen. Dies bedeutet, dass extern verlinktes JavaScript von einem CDN ebenfalls aktualisiert wird. Dies schließt Ressourcen aus, auf die nicht verwiesen wird. Es ist eine sehr feinkörnige Kontrolle lieferte auf Desktop - Browser und ist Super praktisch für Web - Entwicklung.
Ahsteele

Macht Sinn. Als Webentwickler verstehe ich Ihren Standpunkt, wie bequem es ist. Ich gehe davon aus, dass Sie es bereits tun, aber ich kann nicht umhin, es nicht zu erwähnen - ich verwende diese App von Adobe für meine mobile Arbeit. Und ich glaube, ein Neustart der Safari - so umständlich es auch ist - ist zumindest eher eine Aktualisierung als die Schaltfläche. Ich habe nicht genug damit herumgespielt, um genau zu wissen, was es erfrischend ist.
Bassist7

Wird durch Drücken der Schaltfläche "Aktualisieren" in der Adressleiste der zwischengespeicherte Inhalt nicht ebenfalls aktualisiert?
Gerry,

Antworten:


36

Das Erzwingen des Beendens funktionierte unter iOS 8 nicht zuverlässig. Zum Testen wurde der private Modus verwendet:

  1. Öffnen Sie die Seite im privaten Modus (und setzen Sie ein Lesezeichen, damit Sie sie später öffnen können).
  2. Schließen Sie zum Aktualisieren den "Tab" des Browsers (Sie können in Safari und im privaten Modus bleiben).
  3. Öffnen Sie die Seite erneut (verwenden Sie das in Schritt 1 erstellte Lesezeichen).

1
Keine großartige Lösung, aber es scheint die beste zu sein, mit der wir unter iOS arbeiten können.
Brendan,

2
Wie komme ich in den "privaten Modus"?
Linuxdan

In Mobile Safari: Tippen Sie auf das Symbol zweier Quadrate, um alle geöffneten Registerkarten anzuzeigen und die Schaltfläche "Privat" unten links anzuzeigen. support.apple.com/de-de/HT203036
Matt Sephton

Ab iOS 13.1.3 funktioniert dies nicht mehr.
Timbo

11

Wenn Sie Ihr Telefon mit Ihrem Apple-Computer / Laptop verbunden haben, können Sie bei geöffneten Safari-Entwicklertools (und aktivem Fenster) Folgendes drücken:

Command Key + Option + R


Ich wette, dies funktioniert auch, wenn Sie mit Ihrem Telefon eine Bluetooth-Tastatur verwenden.
rinogo

@rinogo Negativ. Ich benutze die Apple Magic-Tastatur auf meinem iPad Pro und "cmd + shift + r" führt im Safari-Browser nichts aus.
Danielson317

7

Wenn Sie das Beenden von Safari erzwingen (klicken Sie auf die Home-Schaltfläche, doppelklicken Sie dann auf die Home-Schaltfläche, halten Sie das Safari-Symbol in der Multitasking-Leiste gedrückt und tippen Sie dann auf den roten Punkt), wird der Cache von Safari anscheinend geleert. Dadurch wird jedoch der gesamte Cache geleert, nicht nur eine einzelne Seite.

Sie können Safari-Cookies und -Daten auch in der App Einstellungen löschen. Unter Erweitert können Sie Daten von einzelnen Websites löschen. Dies funktioniert möglicherweise, wenn Sie alle Websites kennen, die mit der zu löschenden Webseite verknüpft sind.


1
Dies funktioniert bei mir nicht (iOS 7.0.4).
Nabil Kadimi

3
Mit iOS 7 werfen Sie die App von der Liste der zuletzt ausgeführten / Multitasking-Vorgänge nach oben, um das Beenden zu erzwingen.
hotpaw2

1
iOS 7.1 hier habe ich über die Remote-Entwicklertools von Safari überprüft und es scheint, dass die Ressourcen nach dem
erzwungenen

5

Sie können das Gerät zwingen, das Zwischenspeichern von Dateien zu beenden, indem Sie es mit einem Kabel an einen Computer anschließen und den Safari-Entwicklermodus aktivieren.

  • Aktivieren Sie den Web Inspector auf dem mobilen Gerät:
    Einstellungen> Safari> Erweitert> Web Inspector
  • Aktivieren Sie die Entwicklungstools in Safari unter macOS:
    Safari> Einstellungen> Registerkarte Erweitert> In Menüleiste Entwickeln anzeigen
  • Schließen Sie das Gerät an den Computer an
  • Öffnen Sie das Dev Tools Panel für das Gerät in Safari auf dem Computer:
    Entwickeln> iPhone von Example> example.com/page
  • Um das Caching zu deaktivieren, gehen Sie zur Registerkarte Netzwerk und stellen Sie sicher, dass das kleine Symbol für "kein Cache" blau ist (sieht aus wie ein durchgestrichener Zylinder).
  • Jetzt sollten Sie in der Lage sein, jederzeit auf dem iOS-Gerät auf "Aktualisieren" zu klicken, und Sie erhalten eine aktuelle, nicht zwischengespeicherte Version!

Wenn Sie ein Webentwickler sind, ist dies die ideale Möglichkeit, da Sie jetzt Zugriff auf das äußerst nützliche vollständige Entwickler-Tool-Panel haben. Und Sie müssen einen lästigen Vorgang nicht immer wieder wiederholen, wenn Sie ständig eine neue Version benötigen und den Cache nicht nur einmal löschen möchten.

Wenn Sie nur ein allgemeiner Benutzer sind, der versucht, den Cache zu leeren, können Sie eine der anderen Methoden hier verwenden.


Update: Sie können sich jetzt über WLAN mit dem Gerät verbinden. Möglicherweise ist noch eine Ersteinrichtung mit dem Kabel erforderlich, danach können Sie jedoch definitiv eine Verbindung ohne das Kabel herstellen.
Entwickeln> iPhone des Beispiels> Über Netzwerk verbinden


1

Löschen Sie die zwischengespeicherten Daten für eine einzelne Site, indem Sie zu Einstellungen > Safari > Erweitert > Websitedaten > Alle Sites anzeigen wechseln .

Tippen Sie unten rechts auf dem Bildschirm auf Bearbeiten und blättern Sie dann in der Liste oder suchen Sie mit dem Suchfeld nach der Website, die Sie löschen möchten. Tippen Sie auf das rot - Symbol neben der Site - Adresse, und dann auf die Löschen - Taste , das erscheint.

Kehren Sie zu Safari zurück und laden Sie die Seite neu. Alle Artefakte der Site werden neu geladen.


Das hat nicht geklappt. Die Artikel können auf meinem iPad (iOS 12) nicht angeklickt werden.
cheesus SO hör auf, Monica

0

Aktivieren Sie auf Safari den Developer-Mode. Dann können Sie die folgende Kombination verwenden, um den Cache zu löschen:

Option-Key + Command-Mac-Key + E 

Ich gehe davon aus, dass dadurch nur der Cache der Site gelöscht wird, auf der Sie sich gerade befinden.


Leider gelten Ihre Anweisungen nur für die Desktop-Version von Safari. Die Frage betraf die iOS-Version.
calum_b

-1

Doppeltippen Sie auf die Schaltfläche Aktualisieren.


7
Funktioniert das für jemanden? Doppeltippen stoppt nur die Aktualisierung, die ich mit dem ersten Tippen gestartet habe.
Brendan,

Ja, das war das einzige, was für mich wirklich funktioniert hat. Ich bin mir nicht sicher, ob das Safari in den Arsch geht, aber es funktioniert.
Ben Rabidou

-3

Sie können dem Skript eine Zufallszahl hinzufügen oder einen Link zu src wie folgt erstellen:

<link rel="stylesheet" href="css/main.css?rand=<?=$rand;?>" type="text/css" /> <script type="text/javascript" src="js/main.js?rand=<?=$rand;?>"></script>

Dies zwingt Safari, die Datei neu zu laden, da es sich um eine andere Datei handelt.


4
Wie funktioniert das auf der Benutzerseite?
Nohillside

1
Fügen Sie einen zufälligen Parameter an die URL oben an...?rand=15
Aaron Digulla

Dies wird als "Cache-Busting" bezeichnet, bei dem die URL-Zeichenfolge so eindeutig ist, wie der Browser sie sieht. Daher wird es diese URL nie in seinem Cache finden. (Und die Host-Seite ignoriert den GET-Parameter einfach vollständig.) Aber das ist wirklich nicht dasselbe, was das OP verlangt.
Mike Robinson

@AaronDigulla Dies funktioniert nicht für verknüpfte Ressourcen wie CSS-Dateien und Bilder.
Flimm,

-3

Halten Sie die Refresh-Taste gedrückt. iPhone 6


6
Daraufhin wird in Telefon 7 ein Menü mit "Desktop-Site anfordern" angezeigt.
Flimm,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.