Long Polling ist eine Abfragetechnik, die Verbindungen über einen längeren Zeitraum offen hält und so eine sofortige Reaktion ermöglicht, wenn Serveraktualisierungen verfügbar werden. Die Implementierung kann ganz einfach sein.
Um Anfragen mit Apache zu bedienen, erstellen Sie ein PHP-Skript wie msgsrv.php. Hier ist ein einfaches Beispiel:
// Simulate data availability after a random delay sleep(rand(2, 10)); echo("Hi! Here's a random number: " . rand(1, 10));
Führen Sie dieses Skript auf Apache aus. Beachten Sie, dass die Verwendung eines hochvolumigen Webservers wie Apache zu erschöpften Arbeitsthreads führen kann.
In JavaScript können Sie ein Skript wie long_poller.htm verwenden, um Abfrageanfragen zu initiieren:
<script> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function(data) { // Append the response to a div addmsg("new", data); // Continue polling after 1 second setTimeout(waitForMsg, 1000); }, error: function(..., errorThrown) { // Append error to div addmsg("error", textStatus + " (" + errorThrown + ")"); // Retry after 15 seconds setTimeout(waitForMsg, 15000); } }); } $(document).ready(function() { waitForMsg(); // Start the initial request }); </script>
Dieses Skript stellt kontinuierlich Anfragen an msgsrv.php und zeigt Antworten in einem div an. Es verwendet einen einfachen Ratenbegrenzer, um übermäßige Anfragen zu verhindern.
Long Polling bietet Stabilität und Einfachheit. Bei Netzwerkunterbrechungen versucht der Client automatisch erneut. Es ist eine geeignete Wahl für Anwendungen, die sofortige Aktualisierungen vom Server erfordern, wie z. B. Instant Messaging- oder Chat-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie implementiert man grundlegende lange Abfragen mit Apache und JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!