Heim  >  Artikel  >  Backend-Entwicklung  >  ajax2 – Caching-Probleme lösen – PHP (28)

ajax2 – Caching-Probleme lösen – PHP (28)

WBOY
WBOYOriginal
2016-08-08 09:24:201173Durchsuche

5. Ajax-Schnellstart

Ajax-Code:

PHP-Programm:

6. Daten senden

Wenn Sie eine Ajax-Abrufanfrage stellen, müssen die zu sendenden Daten an das Ende der URL angehängt werden

Bei einer Ajax-Post-Anfrage müssen die zu sendenden Daten in den Parametern der Sendemethode platziert werden

Ajax-Code:

PHP-Code:

Schreiben Sie die angeforderte URL absichtlich falsch. Wir haben festgestellt, dass der Statuscode des Ajax-Objekts letztendlich gleich 4 ist und die entsprechende Anweisung ausgeführt wird, und wir hoffen, dass dies der Fall ist Wenn es sich bei der Anfrage um eine Fehlerseite handelt, sollte die entsprechende Anweisung nicht ausgeführt werden

Nehmen Sie einige entsprechende Änderungen vor

Verwenden Sie Ajax, um die Summe zweier Zahlen zu berechnen

7. Lösen Sie das Cache-Problem

Fragen oben:

Addition in PHP in Subtraktion ändern

Wenn der vorherige Anforderungsparameter verwendet wird, handelt es sich immer noch um eine Addition. Wenn es sich um einen neuen Anforderungsparameter handelt, handelt es sich um eine Subtraktion.

Lösung 1: Zufallszahlen

Math.random();

Generieren Sie nach der URL eine js-Zufallszahl, um die angeforderte URL dieses Mal eindeutig zu machen, sodass bei jeder Anfrage die neuesten Daten zurückgegeben werden

Wir wissen jedoch, dass diese Methode das Caching-Problem nicht grundsätzlich löst, sondern lediglich eine große Anzahl von Cache-Dateien generiert

Noch etwas: Zufallszahlen garantieren nicht, dass diese URL absolut eindeutig ist

Lösung 2:

Zeit

new Date().getTime(); //Den Millisekunden-Zeitstempel abrufen

Die obige Methode hängt den Zeitstempel direkt an die URL an, um die aktuelle URL eindeutig zu machen. In Bezug auf die Ausführung ist diese Methode immer eindeutig

Es wird jedoch weiterhin eine große Anzahl von Cache-Dateien unter temporären Dateien generiert.

Lösung 3. Anforderungsheader festlegen

setRequestHeader("If-Modified-Since","0");

Prinzip: Verwenden Sie das Ajax-Objekt, um die HTTP-Anforderungsheaderinformationen festzulegen, bevor Sie die HTTP-Anforderung senden. Dies gibt an, dass die letzte Änderungszeit der aktuell angeforderten Ressource „0“ ist. Nachdem der Server diese Zeit erhalten hat, wird sie verglichen Mit der Datei auf dem Server wird der Zeitpunkt der letzten Änderung verglichen, und wenn sie unterschiedlich sind, wird das letzte Ausführungsergebnis zurückgegeben.

Auf diese Weise gibt es am Ende immer nur eine Cache-Datei.

LösungAntwortheader festlegen

header("Cache-Control: kein Cache, muss erneut validiert werden");

Verwenden Sie die Header-Funktion von PHP, um Daten in den Antwortheader zu schreiben. Was geschrieben wird, ist, dem Client mitzuteilen: Dieses Ergebnis nicht zwischenspeichern.

Dieser Ansatz kann das Caching-Problem grundsätzlich lösen, ohne Cache-Dateien zu generieren.

Beispielfrage:

Überprüfen Sie, ob der Benutzername verwendet werden kann

Das Obige stellt Ajax2 vor – das Lösen von Cache-Problemen – PHP (28), einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn