Maison >développement back-end >tutoriel php >Comment les interrogations longues mettent-elles à jour efficacement les applications Web sans actualisation constante des pages ?
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!