Heim >Backend-Entwicklung >PHP-Tutorial >Wie können lange Abfragen Webanwendungen effizient aktualisieren, ohne dass die Seite ständig aktualisiert werden muss?
Long Polling ist eine Technik, die es Webanwendungen ermöglicht, effizient auf neue Daten vom Server zu warten, ohne die Seite ständig zu aktualisieren. Dies ist besonders nützlich für Anwendungen, bei denen Daten selten aktualisiert werden, wie etwa Chat- oder Social-Networking-Anwendungen.
Implementierung von Basic Long Polling in PHP und JavaScript
Während Long Polling dies kann Auch wenn es komplex erscheint, kann seine Umsetzung überraschend einfach sein. Lassen Sie uns ein einfaches Beispiel mit PHP und JavaScript durchgehen:
PHP-Skript (msgsrv.php)
<?php if (rand(1, 3) == 1) { header("HTTP/1.0 404 Not Found"); die(); } sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10)); ?>
Dieses Skript simuliert einen einfachen Nachrichtenserver. Es generiert eine Zufallszahl und sendet sie als Antwort mit einer zufälligen Verzögerung zwischen 2 und 10 Sekunden, um reale Bedingungen nachzuahmen.
JavaScript-Code (long_poller.htm)
<html> <head> <script src="jquery.min.js"></script> <script> function addmsg(type, msg) { $("#messages").append("<div class='msg " + type + "'>" + msg + "</div>"); } function waitForMsg() { $.ajax({ url: "msgsrv.php", success: function (data) { addmsg("new", data); setTimeout(waitForMsg, 1000); }, error: function () { addmsg("error", "Error"); setTimeout(waitForMsg, 15000); } }); } $(document).ready(function () { waitForMsg(); }); </script> </head> <body> <div>
Dieser JavaScript-Code verwendet jQuery, um das PHP-Skript asynchron anzufordern. Wenn die Anfrage erfolgreich ist, wird die Antwort zum Div #messages hinzugefügt. Wenn die Anfrage fehlschlägt, wird ein Fehler angezeigt und es wird nach 15 Sekunden erneut versucht. Die setTimeout-Funktion stellt sicher, dass der Browser das Skript in regelmäßigen Abständen anfordert und implementiert so lange Abfragen.
Erklärung
Dieses Beispiel zeigt eine vereinfachte Implementierung von langen Abfragen. Das PHP-Skript simuliert einen Server, der in unregelmäßigen Abständen Daten sendet. Der JavaScript-Code fordert das Skript wiederholt mit AJAX an und wartet auf eine Antwort. Wenn eine Antwort empfangen wird, aktualisiert der JavaScript-Code die Benutzeroberfläche. Erfolgt keine Antwort, wartet das Skript kurz und versucht es erneut. Dieser Ansatz ermöglicht es der Webanwendung, reaktionsfähig zu bleiben und gleichzeitig effizient auf serverseitige Updates zu warten.
Das obige ist der detaillierte Inhalt vonWie können lange Abfragen Webanwendungen effizient aktualisieren, ohne dass die Seite ständig aktualisiert werden muss?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!