Heim > Artikel > Backend-Entwicklung > ajax2 – Caching-Probleme lösen – PHP (28)
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.