ล่าสุดการพัฒนาเว็บบทเรียน
×

HTML5 เกี่ยวกับการสอน

HTML บ้าน HTML บทนำ บรรณาธิการ HTML HTML ขั้นพื้นฐาน HTML องค์ประกอบ HTML แอตทริบิวต์ HTML หัวเรื่อง HTML ย่อหน้า HTML รูปแบบ HTML การจัดรูปแบบ HTML ใบเสนอราคา HTML รหัสคอมพิวเตอร์ HTML ความคิดเห็น HTML สี HTML CSS HTML การเชื่อมโยง HTML ภาพ ตาราง HTM​​L รายการ HTML HTML บล็อกและ Inline องค์ประกอบ HTML ชั้นเรียน HTML แบบ HTML อ่อนไหว HTML iframes HTML JavaScript HTML หัว HTML หน่วยงาน HTML สัญลักษณ์ HTML charset HTML URL เปลี่ยนเป็นรหัส HTML XHTML

HTML ฟอร์ม

HTML ฟอร์ม HTML องค์ประกอบของแบบฟอร์ม HTML รูปแบบการใส่ HTML แอตทริบิวต์การป้อนข้อมูล

HTML5

HTML5 แนะนำ HTML5 สนับสนุน HTML5 องค์ประกอบ HTML5 อรรถศาสตร์ การย้ายถิ่นของ HTM​​L5 HTML5 คู่มือสไตล์

HTML กราฟิก

HTML ผ้าใบ HTML SVG

HTML สื่อ

HTML สื่อ HTML วีดีโอ HTML เสียง HTML ปลั๊กอิน HTML YouTube

HTML APIs

HTML ตำแหน่งทางภูมิศาสตร์ HTML ลาก / Drop HTML เก็บข้อมูลท้องถิ่น HTML App ขุมทรัพย์ HTML คนงานเว็บ HTML SSE

HTML ตัวอย่าง

HTML ตัวอย่าง HTML ทดสอบ HTML5 ทดสอบ HTML สรุป

HTML คู่มืออ้างอิง

HTML รายการแท็ก HTML แอตทริบิวต์ เหตุการณ์ HTML HTML ผ้าใบ HTML เสียง / วิดีโอ HTML doctypes HTML สี HTML ชุดตัวอักษร HTML URL เปลี่ยนเป็นรหัส HTML รหัสภาษา HTTP ข้อความ HTTP วิธีการ PX to EM แปลง แป้นพิมพ์ลัด

HTML5 เหตุการณ์เซิร์ฟเวอร์ส่ง


เหตุการณ์เซิร์ฟเวอร์ส่งช่วยให้หน้าเว็บที่ได้รับการปรับปรุงจากเซิร์ฟเวอร์


เซิร์ฟเวอร์ส่งกิจกรรม - One Way การส่งข้อความ

เหตุการณ์เซิร์ฟเวอร์ส่งคือเมื่อหน้าเว็บโดยอัตโนมัติได้รับการอัปเดตจากเซิร์ฟเวอร์

นี่ก็เป็นไปได้ก่อน แต่หน้าเว็บจะต้องถามว่าการปรับปรุงใด ๆ ที่มีอยู่ กับเหตุการณ์เซิร์ฟเวอร์ส่งการปรับปรุงมาโดยอัตโนมัติ

ตัวอย่าง: Facebook/Twitter ปรับปรุงปรับปรุงที่ราคาหุ้นของฟีดข่าวผลกีฬาอื่น ๆ


สนับสนุนเบราว์เซอร์

ตัวเลขในตารางระบุราว์เซอร์รุ่นแรกที่สนับสนุนอย่างเต็มที่เหตุการณ์เซิร์ฟเวอร์ส่ง

API
SSE 6.0 ได้รับการสนับสนุน 6.0 5.0 11.5

รับการแจ้งเตือนเหตุการณ์เซิร์ฟเวอร์ส่ง

EventSource วัตถุที่ใช้ในการได้รับการแจ้งเตือนเหตุการณ์เซิร์ฟเวอร์ส่ง:

ตัวอย่าง

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
    document.getElementById("result").innerHTML += event.data + "<br>";
};
ลองตัวเอง»

ตัวอย่างอธิบาย:

  • สร้างใหม่ EventSource วัตถุและระบุ URL ของหน้าส่งการปรับปรุงที่ (in this example "demo_sse.php")
  • เวลาการปรับปรุงที่ได้รับแต่ละ onmessage เหตุการณ์เกิดขึ้น
  • เมื่อ onmessage เหตุการณ์เกิดขึ้นจะนำข้อมูลที่ได้รับเข้าไปในองค์ประกอบที่มี id="result"

ตรวจสอบเซิร์ฟเวอร์ส่งการสนับสนุนกิจกรรม

ใน tryit ตัวอย่างข้างต้นมีบางสายพิเศษของรหัสที่จะตรวจสอบการสนับสนุนเบราว์เซอร์สำหรับเหตุการณ์เซิร์ฟเวอร์ส่ง:

if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    // Some code.....
} else {
    // Sorry! No server-sent events support..
}

ฝั่งเซิร์ฟเวอร์ตัวอย่างรหัส

สำหรับตัวอย่างข้างต้นในการทำงานที่คุณต้องการเซิร์ฟเวอร์ที่มีความสามารถในการส่งการอัปเดตข้อมูล (เช่น PHP หรือ ASP)

ไวยากรณ์ฝั่งเซิร์ฟเวอร์กระแสเหตุการณ์เป็นเรื่องง่าย การตั้งค่า "Content-Type" ส่วนหัว "text/event-stream" ตอนนี้คุณสามารถเริ่มต้นการส่งกระแสเหตุการณ์

รหัสใน PHP (demo_sse.php) :

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

รหัสใน ASP (VB) (demo_sse.asp) :

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

รหัสอธิบาย:

  • การตั้งค่า "Content-Type" ส่วนหัว "text/event-stream"
  • ระบุว่าหน้าไม่ควรแคช
  • ส่งออกข้อมูลที่จะส่ง ( Always start with "data: ")
  • ล้างข้อมูลออกกลับไปที่หน้าเว็บ

วัตถุ EventSource

ในตัวอย่างข้างต้นเราใช้เหตุการณ์ OnMessage ที่จะได้รับข้อความ แต่กิจกรรมอื่น ๆ นอกจากนี้ยังมี:

เหตุการณ์ที่เกิดขึ้น ลักษณะ
onopen เมื่อมีการเชื่อมต่อกับเซิร์ฟเวอร์ที่มีการเปิด
onmessage เมื่อได้รับข้อความ
onerror เมื่อเกิดข้อผิดพลาด