Maison >développement back-end >tutoriel php >Comment les interrogations longues mettent-elles à jour efficacement les applications Web sans actualisation constante des pages ?

Comment les interrogations longues mettent-elles à jour efficacement les applications Web sans actualisation constante des pages ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 11:47:42840parcourir

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

Comprendre l'interrogation longue : guide du débutant

L'interrogation longue est une technique qui permet aux applications Web d'attendre efficacement de nouvelles données du serveur sans actualiser constamment la page. Ceci est particulièrement utile pour les applications où les données sont rarement mises à jour, telles que les applications de chat ou de réseaux sociaux.

Implémentation d'une interrogation longue de base en PHP et JavaScript

Bien qu'une interrogation longue puisse semble complexe, sa mise en œuvre peut être étonnamment simple. Passons en revue un exemple de base utilisant PHP et JavaScript :

Script PHP (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));
?>

Ce script simule un simple serveur de messages. Il génère un nombre aléatoire et l'envoie en réponse, avec un délai aléatoire compris entre 2 et 10 secondes pour imiter les conditions du monde réel.

Code JavaScript (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>

Ce code JavaScript utilise jQuery pour demander le script PHP de manière asynchrone. Si la demande aboutit, elle ajoute la réponse au div #messages. Si la requête échoue, elle affiche une erreur et réessaye après 15 secondes. La fonction setTimeout garantit que le navigateur demande le script à intervalle régulier, implémentant ainsi une interrogation longue.

Explication

Cet exemple démontre une implémentation simplifiée d'une interrogation longue. Le script PHP simule un serveur qui envoie des données à intervalles irréguliers. Le code JavaScript demande le script à plusieurs reprises en utilisant AJAX, en attendant une réponse. Lorsqu'une réponse est reçue, le code JavaScript met à jour l'interface utilisateur. S'il n'y a pas de réponse, le script attend un court instant et réessaye. Cette approche permet à l'application Web de rester réactive tout en attendant efficacement les mises à jour côté serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn