HTML Server-Sent 事件
- ຫນ້າກ່ອນ HTML5 Web Workers
- ຫນ້ານັ້ນ HTML 实例
Server-Sent 事件ສາມາດຮັບການແຈ້ງຂໍ້ມູນຈາກທີ່ວາງທີ່ຫຼັງ.
Server-Sent 事件 - One Way Messaging
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") { // ແມ່ນ! ສະໜັບສະໜູນການສົ່ງລະບຽບຂອງທີ່ມີຄວາມກະຈາຍຂອງທີ່ວາງທີ່ຫຼັງ! // ການຄິດຄະແນນການຂອງລະບົບ..... } // ຂ້ອຍຂ້ອຍ! ບໍ່ສາມາດສະໜັບສະໜູນການສົ່ງລະບຽບຂອງທີ່ມີຄວາມກະຈາຍຂອງທີ່ວາງທີ່ຫຼັງ (EventSource)! }
ລະບົບການຄວບຄຸມທີ່ຢູ່ທີ່ເບິ່ງ
ຈິ່ງເພື່ອດຳເນີນການທີ່ມີຫຼັງຄາວານນີ້ຢູ່ບ່ອນທີ່ທ່ານຕ້ອງສາມາດສົ່ງຂໍ້ມູນການປັບປຸງ (ອີງຕາມ 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 实例