Maison > développement back-end > tutoriel php > Comment fonctionne l'interrogation longue dans les applications Web ?

Comment fonctionne l'interrogation longue dans les applications Web ?

Susan Sarandon
Libérer: 2024-12-28 15:09:17
original
225 Les gens l'ont consulté

How Does Long Polling Work in Web Applications?

Comprendre et mettre en œuvre l'interrogation longue

L'interrogation longue est une technique d'interrogation utilisée dans les applications Web pour permettre aux serveurs d'envoyer des données aux clients sans attendre des demandes explicites. La mise en œuvre d'une interrogation longue implique l'établissement d'une connexion persistante entre le client et le serveur.

Configuration Apache pour une interrogation longue

Pour répondre aux requêtes d'interrogation longue, configurez Apache pour gérer les requêtes avec un délai d'attente long. Ceci peut être réalisé en définissant les directives KeepAliveTimeout et MaxKeepAliveRequests dans la configuration Apache.

Script PHP pour une interrogation longue

Un script PHP simple qui implémente une interrogation longue peut être écrit comme suit :

<?php
while (true) {
    // Sleep for a random duration to simulate data availability
    sleep(rand(2, 10));

    // Generate a random string to represent new data
    $data = "Message: " . rand(1, 10);

    // Send the data to the client
    echo $data;
    flush();
}
?>
Copier après la connexion

JavaScript pour les interrogations longues

Côté client, vous pouvez utiliser JavaScript pour établir une connexion persistante au script PHP et gérer les données entrantes. Ceci peut être réalisé en utilisant le code jQuery suivant :

$(function() {
    function waitForMsg() {
        $.ajax({
            url: "msgsrv.php",
            async: true,
            timeout: 50000,
            success: function(data) {
                // Append the received data to a DOM element
                $("#messages").append("<div>" + data + "</div>");

                // Recursively call the waitForMsg function to continue polling
                waitForMsg();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                // Handle the error and try again after a delay
                waitForMsg();
            }
        });
    }
    waitForMsg();
});
Copier après la connexion

Remarque

Cet exemple fournit une implémentation de base d'une interrogation longue à des fins de démonstration. Pour une implémentation robuste et évolutive, pensez à utiliser des frameworks comme Node.js ou Spring Boot.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal