Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Pengundian Lama Berfungsi dan Bagaimana Ia Boleh Dilaksanakan Menggunakan Apache, PHP dan Javascript?

Bagaimana Pengundian Lama Berfungsi dan Bagaimana Ia Boleh Dilaksanakan Menggunakan Apache, PHP dan Javascript?

Linda Hamilton
Lepaskan: 2024-12-26 16:46:15
asal
580 orang telah melayarinya

How Does Long Polling Work and How Can It Be Implemented Using Apache, PHP, and Javascript?

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:

  1. Buat skrip PHP (msgsrv.php): Skrip ini akan mengendalikan permintaan pelanggan dan menghantar respons apabila data tersedia.
  2. Sediakan Apache untuk menyediakan skrip PHP: Konfigurasikan pelayan Apache anda untuk mengendalikan permintaan kepada msgsrv.php.

Pelaksanaan sisi klien menggunakan Javascript

Untuk melaksanakan panjang tinjauan di pihak pelanggan menggunakan Javascript:

  1. Buat permintaan awal kepada pelayan: Pelanggan membuat permintaan ke msgsrv.php dan menunggu jawapan.
  2. Kendalikan respons yang berjaya: Jika respons diterima, tambahkannya pada elemen yang ditetapkan pada halaman dan cetuskan respons baharu minta selepas kelewatan.
  3. Kendalikan ralat: Jika permintaan gagal, paparkan mesej ralat dan cuba semula selepas penangguhan yang lebih lama.

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));
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan