Heim >Backend-Entwicklung >PHP-Tutorial >Wie können lange Abfragen Webanwendungen effizient aktualisieren, ohne dass die Seite ständig aktualisiert werden muss?

Wie können lange Abfragen Webanwendungen effizient aktualisieren, ohne dass die Seite ständig aktualisiert werden muss?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-25 11:47:42840Durchsuche

How Does Long Polling Efficiently Update Web Applications Without Constant Page Refreshing?

Long Polling verstehen: Ein Leitfaden für Anfänger

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!

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