บทช่วยสอนHTML

HTML หน้าแรก บทนำ HTML โปรแกรมแก้ไข HTML HTML พื้นฐาน องค์ประกอบ HTML แอตทริบิวต์ HTML ส่วนหัว HTML ย่อหน้า HTML รูปแบบ HTML การจัดรูปแบบ HTML ใบเสนอราคา HTML ความคิดเห็น HTML HTML สี HTML CSS ลิงค์ HTML รูปภาพ HTML HTML Favicon ตาราง HTML รายการ HTML บล็อก HTML & อินไลน์ คลาส HTML รหัส HTML HTML Iframes HTML JavaScript เส้นทางไฟล์ HTML หัวหน้า HTML เค้าโครง HTML HTML Responsive HTML รหัสคอมพิวเตอร์ HTML Semantics คู่มือสไตล์ HTML เอนทิตี HTML สัญลักษณ์ HTML HTML Emojis ชุดอักขระ HTML การเข้ารหัส URL HTML HTML กับ XHTML

แบบฟอร์มHTML

แบบฟอร์ม HTML คุณสมบัติแบบฟอร์ม HTML องค์ประกอบแบบฟอร์ม HTML ประเภทอินพุต HTML แอตทริบิวต์การป้อนข้อมูล HTML แอตทริบิวต์แบบฟอร์มการป้อนข้อมูล HTML

กราฟิกHTML

HTML Canvas HTML SVG

สื่อHTML

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

HTML APIs

HTML Geolocation HTML ลาก/วาง HTML Web Storage HTML Web Workers HTML SSE

ตัวอย่างHTML

ตัวอย่าง HTML แบบทดสอบ HTML แบบฝึกหัด HTML ใบรับรอง HTML สรุป HTML การเข้าถึง HTML

ข้อมูลอ้างอิงHTML

รายการแท็ก HTML แอตทริบิวต์ HTML HTML Global Attributes รองรับ HTML Browser เหตุการณ์ HTML HTML สี HTML Canvas HTML เสียง/วิดีโอ HTML Doctypes ชุดอักขระ HTML การเข้ารหัส URL HTML HTML Lang Codes ข้อความ HTTP วิธี HTTP ตัวแปลง PX เป็น EM แป้นพิมพ์ลัด

HTML SSE API


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


กิจกรรมที่เซิร์ฟเวอร์ส่ง - การส่งข้อความทางเดียว

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

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

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


รองรับเบราว์เซอร์

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

API
SSE 6.0 79.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 ของหน้าที่ส่งการอัปเดต (ในตัวอย่างนี้ "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)

ไวยากรณ์สตรีมเหตุการณ์ฝั่งเซิร์ฟเวอร์นั้นเรียบง่าย ตั้งค่าส่วนหัว "ประเภทเนื้อหา" เป็น "ข้อความ/สตรีมเหตุการณ์" ตอนนี้คุณสามารถเริ่มส่งสตรีมกิจกรรมได้

รหัสใน 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()
%>

รหัสอธิบาย:

  • ตั้งค่าส่วนหัว "ประเภทเนื้อหา" เป็น "ข้อความ/สตรีมเหตุการณ์"
  • ระบุว่าหน้าไม่ควรแคช
  • ส่งออกข้อมูลที่จะส่ง ( เริ่มต้นด้วย "data: " เสมอ )
  • ล้างข้อมูลเอาท์พุตกลับไปที่หน้าเว็บ

วัตถุที่มาของเหตุการณ์

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

Events Description
onopen When a connection to the server is opened
onmessage When a message is received
onerror When an error occurs