ฉันได้พูดคุยเกี่ยวกับหน้าจอขนาดใหญ่ของข้อมูลก่อนหน้านี้และข้อมูลภายในได้รับการอัปเดตเป็นครั้งคราว บางครั้งข้อมูลสต็อกที่อัปเดตเป็นครั้งคราวอัปเดต Facebook/Twitter, อัปเดตการประเมินมูลค่า, โพสต์บล็อกใหม่, ผลลัพธ์กิจกรรม ฯลฯ ทั้งหมดจำเป็นต้องมีการอัปเดตข้อมูลเป็นครั้งคราว เราเคยขอให้เซิร์ฟเวอร์ดูว่ามีการอัปเดตหรือไม่ HTML5 ให้วิธีการจัดกิจกรรมเซิร์ฟเวอร์
การใช้เซิร์ฟเวอร์--ส่วนเซิร์ฟเวอร์นั้นใช้งานง่ายมากเพื่อรับข้อความเซิร์ฟเวอร์ผ่านวัตถุ EventsOrce มีเหตุการณ์ดังต่อไปนี้:
if (typeof (eventsource)! == undefined) {// เบราว์เซอร์รองรับเซิร์ฟเวอร์-เซนต์ // รหัสบางส่วน ..... } else {// // เบราว์เซอร์ไม่รองรับเซิร์ฟเวอร์เซนต์ .. }รับประกาศเหตุการณ์เซิร์ฟเวอร์-ส่ง
var source = eventsource ใหม่ (haorooms_sse.php); source.onmessage = ฟังก์ชั่น (เหตุการณ์) {document.getElementById (ผลลัพธ์) .innerhtml + = event.data + << br>;};อินสแตนซ์รหัสด้านเซิร์ฟเวอร์
<? $ time}/n/n;ทั้งเหตุการณ์ลิงก์และข้อผิดพลาดเพิ่ม
if (typeof (eventsource)! == undefined) {var source = new eventsource (server.php); (เหตุการณ์) {document.getElementById (ผลลัพธ์) .innerhtml + = event.data + <br>; = ขออภัยเบราว์เซอร์ของคุณไม่รองรับเหตุการณ์เซิร์ฟเวอร์ที่อยู่ ... ;}
เราจะพบว่าคอนโซลถูกพิมพ์ดังนี้:
ป้อนลิงค์และข้อผิดพลาดอย่างต่อเนื่องโปรดคลิกที่รายละเอียด
นั่นเป็นเพราะรหัส PHP เป็นเพียงเสียงสะท้อนที่เรียบง่ายและไม่มีเอาต์พุตอย่างต่อเนื่อง
<? ในขณะที่ (++ $ i <$ c) {echo id:
จะไม่มีข้อผิดพลาดที่ไม่หยุด!
เช่นโซลูชันความเข้ากันได้ของเบราว์เซอร์เรารู้ว่าเบราว์เซอร์ IE ไม่สนับสนุน EventSource และมีวิธีแก้ปัญหาดังต่อไปนี้:
แนะนำEventsource.min.js
มันสามารถแก้ไขได้อย่างสมบูรณ์แบบ คุณสามารถดูที่อยู่ GitHub: https://github.com/yaffle/eventsource การเชื่อมโยง nodejs ก็สะดวกมากเช่นกัน
NPM ติดตั้ง Event-Source-Polyfill
ไม่เป็นไร
ที่อยู่ GitHub: https://github.com/confidence68/demoofsocket/tree/master/serversnt
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้