Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

เหตุการณ์ที่เซิร์ฟเวอร์ส่งทำงานอย่างไรใน HTML5


เหตุการณ์ที่เซิร์ฟเวอร์ส่งเป็นมาตรฐานในการสตรีมข้อมูลจากเซิร์ฟเวอร์ไปยังไคลเอนต์ หากต้องการใช้เหตุการณ์ที่เซิร์ฟเวอร์ส่งในเว็บแอปพลิเคชัน คุณจะต้องเพิ่มองค์ประกอบ ลงในเอกสาร

แอตทริบิวต์ src ขององค์ประกอบ ควรชี้ไปที่ URL ซึ่งควรมีการเชื่อมต่อ HTTP แบบถาวรที่ส่งสตรีมข้อมูลที่มีเหตุการณ์

URL จะชี้ไปที่ PHP, PERL หรือสคริปต์ Python ใด ๆ ซึ่งจะดูแลการส่งข้อมูลเหตุการณ์อย่างสม่ำเสมอ ต่อไปนี้เป็นตัวอย่างง่ายๆ ของเว็บแอปพลิเคชันซึ่งคาดว่าจะใช้เวลาของเซิร์ฟเวอร์

เหตุการณ์ที่เซิร์ฟเวอร์ส่งทำงานอย่างไรใน HTML5

คุณสามารถลองเรียกใช้โค้ดต่อไปนี้เพื่อเรียนรู้วิธีใช้เหตุการณ์ที่เซิร์ฟเวอร์ส่งใน HTML5

ตัวอย่าง

<!DOCTYPE HTML>
<html>
   <head>
      <script type="text/javascript">
         document.getElementsByTagName("eventsource")[0].addEventListener("server-time", eventHandler, false);
         function eventHandler(event){
            // Alert time sent by the server
            document.querySelector('#ticker').innerHTML = event.data;
         }
      </script>
   </head>
   <body>
      <div id="sse">
         <eventsource src="/cgi-bin/ticker.cgi" />
      </div>
      <div id="ticker" name="ticker">
         [TIME]
      </div>
   </body>
</html>

สุดท้าย ต่อไปนี้คือ ticker.cgi เขียนด้วยภาษาเพิร์ล -

#!/usr/bin/perl
print "Content-Type: text/event-stream\n\n";
while(true){
   print "Event: server-time\n";
   $time = localtime();
   print "Data: $time\n";
   sleep(5);
}