Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Pengundian Lama Berfungsi dalam Aplikasi Web?

Bagaimana Pengundian Lama Berfungsi dalam Aplikasi Web?

Susan Sarandon
Susan Sarandonasal
2024-12-28 15:09:17240semak imbas

How Does Long Polling Work in Web Applications?

Memahami dan Melaksanakan Tinjauan Panjang

Tinjauan panjang ialah teknik tinjauan pendapat yang digunakan dalam aplikasi web untuk membolehkan pelayan menghantar data kepada pelanggan tanpa menunggu permintaan yang jelas. Melaksanakan tinjauan panjang melibatkan mewujudkan sambungan berterusan antara pelanggan dan pelayan.

Konfigurasi Apache untuk Tinjauan Lama

Untuk menyampaikan permintaan untuk tinjauan panjang, konfigurasikan Apache untuk mengendalikan permintaan dengan tamat masa yang lama. Ini boleh dicapai dengan menetapkan arahan KeepAliveTimeout dan MaxKeepAliveRequests dalam konfigurasi Apache.

Skrip PHP untuk Pengundian Lama

Skrip PHP mudah yang melaksanakan tinjauan panjang boleh ditulis seperti berikut:

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

JavaScript untuk Undian Lama

Pada sisi klien, anda boleh menggunakan JavaScript untuk mewujudkan sambungan berterusan ke skrip PHP dan mengendalikan data masuk. Ini boleh dicapai menggunakan kod jQuery berikut:

$(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();
});

Nota

Contoh ini menyediakan pelaksanaan asas pengundian panjang untuk tujuan demonstrasi. Untuk pelaksanaan yang mantap dan berskala, pertimbangkan untuk menggunakan rangka kerja seperti Node.js atau Spring Boot.

Atas ialah kandungan terperinci Bagaimana Pengundian Lama Berfungsi dalam Aplikasi Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn