iOS6 ajax POST-Anfrage-Caching wird zu einem großen Problem für unsere WebApp. Die meisten unserer Nutzer haben die App auf dem Startbildschirm hinzugefügt. Seit dem Upgrade funktionieren die meisten POST-Anfragen an das Backend nicht mehr und die Daten sind seit über 6 Tagen veraltet. Uns sind zwei Problemumgehungen bekannt, um dieses Problem zu lösen. Eine davon besteht darin, jede POST-Anfrage zu ändern, indem sie einen Zeitstempel oder eine zufällige Eingabe hinzufügt, und zweitens das Caching auf dem Webserver zu deaktivieren.
Beide Problemumgehungen werden in dem folgenden Post ausführlich beschrieben: Wird Safari auf iOS 6 $ .ajax-Ergebnisse zwischenspeichern?
Das Ausschalten des Caching auf dem Webserver hätte das Problem gelöst, wenn es vor dem iOS6-Upgrade (oder direkt danach) gesetzt wurde. Es scheint jedoch, dass alle POST-Anfragen, die seit dem Upgrade und bis zu dem Zeitpunkt, an dem wir die Zwischenspeicherung von Apps, die zum Startbildschirm hinzugefügt wurden, durchgeführt wurden, noch im Cache gespeichert sind! und wir können keinen Weg finden, sie zu löschen. Entfernen der Startbildschirm App und Neustart des Geräts nicht den Trick! Die einzige Option, die wir haben, besteht darin, unsere URL zu ändern oder jeder Anfrage einen Zeitstempel hinzuzufügen, zusätzlich zum Deaktivieren des Caching auf dem Webserver.
Kennt jemand eine Möglichkeit, einen Home-Bildschirm-App-Cache zu löschen, abgesehen von der Wiederherstellung der Fabrik? Bitte geben Sie Details an.
Warnung für alle, die eine Problemumgehung durch Hinzufügen eines Zeitstempels zu ihren Anforderungen implementiert haben, ohne das Caching auf dem Server zu deaktivieren. Wenn Ihre App zum Startbildschirm hinzugefügt wird, wird JEDE Postantwort zwischengespeichert und scheint nicht abzulaufen. Es sei denn jemand hat eine Möglichkeit, es zu löschen, sieht das wie ein mögliches Speicherleck aus!
Der einzige Weg, dieses Cache-Problem meiner Erfahrung nach zu übertreffen, ist die Vorgehensweise von Google und das Hinzufügen einer ID pro Anfrage in der URL. Sie können dann mod_rewrite oder eine andere solche Engine für Ihren Server verwenden, um dies für Ihre Backend-Skripte transparent zu machen.
Tags und Links javascript jquery ajax ios6