Frage von KingRhobar, 15

Der Safaribrowser scheint partout das cashing von Ajaxabfragen nicht zu deaktiveren. Kann mir wer dabei weiterhelfen?

Ich habe auf einer Website ein Script, welches per Ajax den Status eines Vorgangs regelmäßig abgefragt wird um eine Progressbar zu pflegen.

Soweit so gut, jedoch werden innerhalb von einem der vorhanden Vorgänge auf der Website mehrere Progressbars durchlaufen, die unterschiedliche Funktionen anzeigen sollen. Mein Problem ist jetzt, dass die Rückgabe des "ich bin fertig"-Werts aus dem ersten Ladebalken sofort beim Aufruf des 2. Ladebalken übernommen wird

Beide stellen eigenständig eine Anfrage an ein PHP-Script, jedoch werden unterschiedliche Werte zurrückgegeben.. Sollten es eigentlich, Safari meint es aber besser wissen zu wollen und gibt die Werte der ersten Abfrage einfach erneut aus.

Dies führt dazu, das der ganze Prozess der Abfrage stehen bleibt und der Vorgang nicht beendet werden kann, sozusagen ein Stillstand im Prozess.

Es wurden schon innerhalb der $.ajaxSetup( )-Funktion Werte wie { cache: false } headers: { "cache-control": "no-cache" } für GET und POST versucht. Es wurde auch versucht, der Ajaxquery einen Timestamp hinzuzufügen, sodass die Abfrage für den Browser stets nach einer komplett anderen aussieht. (Wobei wir letztendlich bemerkt haben, das wir dank AufgabenID sowieso schon vorher einen iterativen Counter in den Scriptparametern hatten)

Leider haben diese Versuche zu keinem Ergebnis geführt. An einer Stelle hat es das Script sogar auf dem Edge-Browser lahm gelegt.

Nach einiger Recherche bin ich zu dem Entschluss gekommen, das Apple dass Problem seit 2012 ca mit im Safaribrowser hat. Meine Frage ist, wie kann ich das sonst noch umgehen?

Antwort
von LeonardM, 11

Setze den expliziten header das das Dokument das abgerufen werden soll (allein das) unter keinen umständen gecached werden soll vom browser. Browser respektieren das im regelfall

Kommentar von KingRhobar ,

Ich gehe davon aus, dass genau dies schon per $.ajaxSetup geschehen ist.
Safari hat aber keine Reaktion darauf gezeigt

Kommentar von LeonardM ,

ich meine serverseitige header

Keine passende Antwort gefunden?

Fragen Sie die Community