HTML Server-Sent Event
- ຫນ້າທີ່ກ່ອນ HTML5 Web Workers
- ຫນ້າຫນັງ HTML Examples
Server-Sent 事件ສະໜັບສະໜູນການເອົາການປັບປຸງຈາກເຊີ່ງ.
Server-Sent 事件 - Messaging One Way
Server-Sent 事件ແມ່ນການເອົາການປັບປຸງຈາກເຊີ່ງອັນຕະລາຍ.
ກ່ອນນີ້ກໍ່ສາມາດເຮັດໄດ້ນີ້, ສະນັ້ນເວັບໄຊຕ້ອງຖາມວ່າມີການປັບປຸງທີ່ຈະມີ. ພາຍໃນ Server-Sent 事件, ການປັບປຸງຈະມາຫາໄດ້ອັນຕະລາຍ.
ຕົວຢ່າງ: Facebook/Twitter ການປັບປຸງ, ການປັບປຸງລາຄາຫຸ້ນ, ການປັບປຸງບົດຄວາມໃໝ່, ຜົນການແຂ່ງຂັນ, ແລະອີກຫຼາຍແຫ່ງອື່ນໆ
ການສະໜັບສະໜູນຂອງບັນດາບັນດາຄົນຂາຍ
ຈຳນວນທີ່ຢູ່ໃນຕາລາງສະແດງວ່າບັນດາການຄົ້ນຫາທີ່ສະໜັບສະໜູນ server-sent 事件ຄັ້ງທຳອິດ
API | |||||
SSE | 6.0 | ບໍ່ສະໜັບສະໜູນ | 6.0 | 5.0 | 11.5 |
ຮັບການເຫດການຂອງ Server-Sent 事件
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"
ກວດສອບການສະໜັບສະໜູນ Server-Sent 事件
ໃນການພິສູດ TIY, ພວກເຮົາໄດ້ຂຽນລະບົບການທີ່ຫຼາກຫຼາຍເພື່ອກວດສອບການສະໜັບສະໜູນຂອງການເຫດການຂອງເຊີ່ງທີ່ສົ່ງມາຈາກເຊີ່ງ:
if(typeof(EventSource) !== "undefined") { // ບໍ່! ສະໜັບສະໜູນການເຫດການຂອງເຊີ່ງທີ່ສົ່ງມາຈາກເຊີ່ງ! // ລະບົບການທີ່ຫາກວ່ານີ້..... } else { // ຂ້ອຍຂ້ອຍ! ບໍ່ສາມາດສະໜັບສະໜູນການສົ່ງລະບຽບການເຫດການຂອງເຊີ່ງທີ່ສົ່ງມາຈາກເຊີ່ງ! }
ລະບົບການທີ່ຢູ່ທີ່ເຊີ່ງ
ຈິ່ງເພື່ອດຳເນີນການທີ່ຫາກວ່ານີ້ຈະຕ້ອງມີບັນຊີທີ່ສາມາດສົ່ງບັນນາທິດຂອງການປັບປຸງ (ອີງຕາມ 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"
- ບໍ່ປະຕິບັດການຄັດຄ້ານຂອງບົດຄວາມ
- ສົ່ງຂໍ້ມູນທີ່ຈະສົ່ງອອກ (ຕົວເລກວ່າ "data: ")
- ສົ່ງຂໍ້ມູນອອກໄປຫາບົດຄວາມຂອງເວັບໄຊ
ວັດຖຸ EventSource
ໃນຕົວຢ່າງທີ່ພວກເຮົາໃຊ້ການເກີດຂອງ onmessage ເພື່ອຮັບຕຳນານ. ແຕ່ຍັງສາມາດໃຊ້ການເກີດອື່ນໆ:
ການເກີດຂອງສະພາບ | ການອະທິບາຍ |
---|---|
onopen | ເມື່ອການເຊື່ອມຕໍ່ທາງເວັບໄຊຖືກເປີດ |
onmessage | ເມື່ອຮັບຕຳນານ |
onerror | ເມື່ອເກີດຄວາມຜິດພາດ |
- ຫນ້າທີ່ກ່ອນ HTML5 Web Workers
- ຫນ້າຫນັງ HTML Examples