Melaksanakan Tinjauan Panjang Asas: Panduan Mudah
Tinjauan panjang ialah teknik yang digunakan untuk membolehkan pelayan menolak data kepada pelanggan tanpa pelanggan secara eksplisit memintanya. Ini berguna dalam senario di mana pelayan perlu memantau data secara berterusan dan memberitahu pelanggan apabila data baharu tiba.
Bagaimanakah Pengundian Panjang berfungsi?
Dalam tinjauan panjang, klien membuat permintaan kepada pelayan dan menunggu jawapan. Jika tiada data tersedia, pelayan memastikan permintaan terbuka selama-lamanya, bukannya menutupnya seperti dalam permintaan HTTP biasa. Apabila data baharu tersedia, pelayan menghantarnya kepada pelanggan dan menutup permintaan.
Melaksanakan Tinjauan Panjang dalam Apache dan PHP
Untuk melaksanakan tinjauan panjang menggunakan Apache dan PHP:
Pelaksanaan sisi klien menggunakan Javascript
Untuk melaksanakan panjang tinjauan di pihak pelanggan menggunakan Javascript:
Kod Contoh
Skrip PHP (msgsrv.php):
if (rand(1, 3) == 1) { // Fake an error header("HTTP/1.0 404 Not Found"); die(); } // Send a string after a random number of seconds (2-10) sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10));
Kod Javascript (long_poller.htm):
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function (data) { // Add response to a .msg div (with the "new" class) addmsg("new", data); setTimeout(waitForMsg, 1000); // Request next message after 1 second }, error: function (XMLHttpRequest, textStatus, errorThrown) { // Add error message addmsg("error", textStatus + " (" + errorThrown + ")"); setTimeout(waitForMsg, 15000); // Retry after 15 seconds } }); }; $(document).ready(function () { waitForMsg(); // Start the initial request }); </script>
Atas ialah kandungan terperinci Bagaimana Pengundian Lama Berfungsi dan Bagaimana Ia Boleh Dilaksanakan Menggunakan Apache, PHP dan Javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!