Acara Dihantar Pelayan HTML5

Acara Dihantar Pelayan - pemesejan sehala

Acara Dihantar Pelayan merujuk kepada halaman web secara automatik mendapat kemas kini daripada pelayan.

Ini juga mungkin sebelum ini, jika halaman web perlu bertanya sama ada kemas kini tersedia. Dengan menghantar acara melalui pelayan, kemas kini boleh tiba secara automatik.

Contoh: Kemas kini Facebook/Twitter, kemas kini penilaian, catatan blog baharu, hasil acara, dsb.

Berikut ialah contoh kod di W3School, termasuk JavaScript sisi klien dan kod PHP sisi pelayan:

var source = new EventSource("demo_sse.php");

source.onmessage = function(event) {

document.getElementById("result").innerHTML += event.data + "< ; br />";

};

Kod ini secara berterusan mendapat data daripada demo_sse.php dan mengeluarkan hasilnya kepada ID dalam div daripada hasil.

header('Content-Type: text/event-stream');

header('Cache-Control: no-cache');

$time = date('r');

gema "data: Masa pelayan ialah: {$time}nn";

flush();

?>

Kod ini mengembalikan masa semasa pelayan kepada klien. Akhirnya, hasil yang serupa dengan yang berikut dipaparkan pada halaman klien:

Masa pelayan ialah: Jum, 29 Ogos 2016 02:03:21 +0800

Masa pelayan ialah: Jum , 29 Ogos 2016 02:03:24 +0800

Masa pelayan ialah: Jum, 29 Ogos 2016 02:03:27 +0800

Masa pelayan ialah: Jum, 29 Ogos 2016 02: 03:30 +0800

Masa pelayan ialah: Jum, 29 Ogos 2016 02:03:33 +0800

...

Terima pemberitahuan acara Dihantar Pelayan

Objek EventSource digunakan untuk menerima pemberitahuan acara yang dihantar oleh pelayan:

Instance

var source=new EventSource("demo_sse.php");
source.onmessage=function(event)
{
Document.getElementById("result").innerHTML+=event.data + "
";
};


Contoh analisis:

Buat objek EventSource baharu, dan kemudian nyatakan URL halaman untuk menghantar kemas kini (dalam kes ini, "demo_sse.php")

Setiap kali kemas kini diterima, acara onmessage akan berlaku

Apabila peristiwa onmessage berlaku, tolak data yang diterima ke dalam elemen dengan id "hasil"

Kesan sokongan acara Dihantar Pelayan

Dalam contoh berikut, kami menulis sekeping kod tambahan untuk mengesan sokongan penyemak imbas untuk acara yang dihantar pelayan:

if(typeof(EventSource)!=="udefined")
{
// Penyemak imbas menyokong Dihantar Pelayan
// Beberapa kod...
}
lain
{
// Penyemak imbas tidak menyokong Dihantar Pelayan..
}

Contoh kod sisi pelayan

Untuk membolehkan contoh di atas berfungsi, anda juga memerlukan pelayan yang boleh menghantar kemas kini data (seperti sebagai PHP dan ASP).

Sintaks penstriman acara sebelah pelayan adalah sangat mudah. Tetapkan pengepala "Jenis Kandungan" kepada "strim teks/acara". Kini anda boleh mula menghantar strim acara.

Contoh

Kod ASP (VB) (demo_sse.asp):

<%
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>

Penjelasan kod:

Tetapkan pengepala "Content-Type" kepada "text/event-stream"

Nyatakan bahawa halaman tidak dicache

Output tarikh penghantaran (sentiasa bermula dengan "data: ")

Muat semula data output ke halaman web




Meneruskan pembelajaran
||
服务器推送SSE

服务器端c.php 页面写在HTML外部

serahkan Tetapkan Semula Kod
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!