การโหลดเว็บไซต์อาจให้ประสบการณ์การใช้งานที่แตกต่างกันมากโดยขึ้นอยู่กับสภาพเครือข่าย ทุกอย่างมักจะราบรื่นเมื่อใช้เครือข่ายที่รวดเร็ว แต่เมื่อคุณกำลังเดินทางโดยมีแพ็กเกจอินเทอร์เน็ตที่จำกัดและการเชื่อมต่อไม่เสถียร หรือค้างอยู่ที่แล็ปท็อปผ่าน Wi-Fi ของร้านกาแฟที่ช้า เรื่องนั้นมาแล้ว
วิธีหนึ่งในการแก้ปัญหานี้คือการปรับชิ้นงานที่แสดงต่อผู้ใช้ตามคุณภาพของการเชื่อมต่อ ซึ่งตอนนี้ทำได้แล้วด้วย Network Information API ที่ช่วยให้เว็บแอปพลิเคชันเข้าถึงข้อมูลเกี่ยวกับเครือข่ายของผู้ใช้ได้
การใช้งาน
มีหลายวิธีที่คุณสามารถใช้ข้อมูลเครือข่ายนี้เพื่อปรับปรุงประสบการณ์ของผู้ใช้ ได้แก่
- สลับระหว่างการแสดงเนื้อหาความละเอียดสูงและความละเอียดต่ำตามเครือข่ายของผู้ใช้
- ตัดสินใจว่าจะโหลดทรัพยากรล่วงหน้าหรือไม่
- เลื่อนการอัปโหลดและการดาวน์โหลดเมื่อผู้ใช้ใช้การเชื่อมต่ออินเทอร์เน็ตช้า
- เปิดใช้โหมดออฟไลน์หากคุณภาพเครือข่ายไม่ดีพอที่จะโหลดแอปและใช้ฟีเจอร์
- เตือนผู้ใช้ว่าการทำบางสิ่ง (เช่น ดูวิดีโอ) ผ่านเครือข่ายมือถืออาจมีค่าใช้จ่าย
- ใช้ในข้อมูลวิเคราะห์เพื่อรวบรวมข้อมูลเกี่ยวกับคุณภาพเครือข่ายของผู้ใช้
แอปพลิเคชันจำนวนมากทําสิ่งคล้ายกันอยู่แล้ว ตัวอย่างเช่น YouTube, Netflix และบริการวิดีโอ (หรือวิดีโอคอล) อื่นๆ ส่วนใหญ่จะปรับความละเอียดโดยอัตโนมัติขณะสตรีม ขณะที่โหลด Gmail จะมีลิงก์ ให้ผู้ใช้ "โหลด HTML พื้นฐาน (สำหรับการเชื่อมต่อช้า)"
วิธีการทำงาน
ออบเจ็กต์ navigator.connection
มีข้อมูลเกี่ยวกับการเชื่อมต่อของลูกค้า คุณสมบัติขององค์ประกอบมีคำอธิบายอยู่ในตารางด้านล่าง
พร็อพเพอร์ตี้ | คำอธิบาย |
---|---|
downlink |
ค่าแบนด์วิดท์โดยประมาณเป็นเมกะบิตต่อวินาที |
effectiveType |
ประเภทการเชื่อมต่อที่มีประสิทธิภาพ ซึ่งมีค่าที่เป็นไปได้ 'slow-2g' , '2g' , '3g' หรือ '4g' (ครอบคลุม 4G ขึ้นไป) พิจารณาจากเวลาในการรับส่งข้อมูลและความเร็วในการรับข้อมูล ตัวอย่างเช่น ดาวน์ลิงก์ที่เร็วแต่มีความล่าช้าสูงจะมี effectiveType ต่ำลงเนื่องจากความล่าช้า |
onchange |
เครื่องจัดการเหตุการณ์ที่เริ่มทำงานเมื่อข้อมูลการเชื่อมต่อเปลี่ยนแปลง |
rtt |
เวลาในการตอบสนองโดยประมาณของการเชื่อมต่อแบบไปกลับเป็นมิลลิวินาที |
saveData |
บูลีนที่ระบุว่าผู้ใช้ได้ขอโหมดการใช้งานอินเทอร์เน็ตที่ลดลงหรือไม่ |
ลักษณะของการทำงานเมื่อคุณเรียกใช้ในคอนโซลของเบราว์เซอร์มีดังนี้
ค่า effectiveType
ยังพร้อมใช้งานผ่านคำแนะนำไคลเอ็นต์ด้วย และช่วยให้คุณสื่อสารประเภทการเชื่อมต่อของเบราว์เซอร์กับเซิร์ฟเวอร์ได้
onchange
รายการฟังเหตุการณ์ช่วยให้คุณปรับเปลี่ยนตามการเปลี่ยนแปลงของคุณภาพเครือข่ายได้แบบไดนามิก หากเลื่อนการอัปโหลดหรือดาวน์โหลดเนื่องจากเครือข่ายทำงานได้ไม่ดี คุณสามารถใช้โปรแกรมรับฟังเหตุการณ์เพื่อเริ่มการโอนอีกครั้งเมื่อตรวจพบเครือข่ายที่ทำงานได้ดีขึ้น นอกจากนี้ คุณยังใช้เพื่อแจ้งให้ผู้ใช้ทราบเมื่อคุณภาพเครือข่ายเปลี่ยนแปลงได้ด้วย เช่น หากอุปกรณ์สูญเสียสัญญาณ Wi-Fi และเปลี่ยนไปใช้เครือข่ายมือถือ ฟีเจอร์นี้จะช่วยป้องกันไม่ให้เกิดการโอนข้อมูลโดยไม่ตั้งใจ (และมีการเรียกเก็บเงิน 💸)
ใช้ Listener เหตุการณ์ onchange
เช่นเดียวกับ Listener เหตุการณ์อื่นๆ ดังนี้
navigator.connection.addEventListener('change', doSomethingOnChange);
บทสรุป
ประโยชน์ที่เป็นไปได้ของ Network Information API นั้นมหาศาล โดยเฉพาะสําหรับผู้ใช้ในเครือข่ายที่ช้าและแอปพลิเคชันที่จําเป็นต้องใช้แบนด์วิดท์จํานวนมาก ที่สำคัญคือยังใช้เป็นเทคนิคการเพิ่มประสิทธิภาพแบบเป็นขั้นเป็นตอนได้อีกด้วย