Tinjauan panjang ialah teknik yang membolehkan aplikasi web menunggu data baharu daripada pelayan dengan cekap tanpa sentiasa memuat semula halaman. Ini amat berguna untuk aplikasi yang jarang mengemas kini data, seperti aplikasi sembang atau rangkaian sosial.
Melaksanakan Tinjauan Panjang Asas dalam PHP dan JavaScript
Sementara tinjauan panjang boleh kelihatan rumit, pelaksanaannya boleh menghairankan mudah. Mari kita lihat contoh asas menggunakan PHP dan JavaScript:
Skrip 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)); ?>
Skrip ini menyerupai pelayan mesej ringkas. Ia menjana nombor rawak dan menghantarnya sebagai respons, dengan kelewatan rawak antara 2 dan 10 saat untuk meniru keadaan dunia sebenar.
Kod 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>
Kod JavaScript ini menggunakan jQuery untuk meminta skrip PHP secara tidak segerak. Jika permintaan itu berjaya, ia menambahkan respons kepada div #messages. Jika permintaan gagal, ia memaparkan ralat dan cuba lagi selepas 15 saat. Fungsi setTimeout memastikan penyemak imbas meminta skrip pada selang masa yang tetap, sekali gus melaksanakan tinjauan pendapat yang panjang.
Penjelasan
Contoh ini menunjukkan pelaksanaan tinjauan panjang yang dipermudahkan. Skrip PHP mensimulasikan pelayan yang menghantar data pada selang masa yang tidak teratur. Kod JavaScript berulang kali meminta skrip menggunakan AJAX, menunggu jawapan. Apabila respons diterima, kod JavaScript mengemas kini UI. Jika tiada jawapan, skrip menunggu untuk tempoh yang singkat dan cuba lagi. Pendekatan ini membolehkan aplikasi web kekal responsif sambil menunggu kemas kini bahagian pelayan dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Undian Lama Mengemas kini Aplikasi Web dengan Cekap Tanpa Penyegaran Halaman Malar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!