Speculation Rules API ของ Chrome สัญญาว่าจะทำให้การนำทางเว็บเป็นแบบทันทีแต่ก่อให้เกิดความกังวลเรื่องทรัพยากรและความเป็นส่วนตัว

ทีมชุมชน BigGo
Speculation Rules API ของ Chrome สัญญาว่าจะทำให้การนำทางเว็บเป็นแบบทันทีแต่ก่อให้เกิดความกังวลเรื่องทรัพยากรและความเป็นส่วนตัว

Speculation Rules API ใหม่ของ Chrome ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนนักพัฒนาเว็บเกี่ยวกับว่าการโหลดหน้าเว็บที่เร็วขึ้นนั้นคุ้มค่ากับต้นทุนที่อาจเกิดขึ้นหรือไม่ ฟีเจอร์นี้ช่วยให้เว็บไซต์สามารถโหลดและเรนเดอร์หน้าเว็บล่วงหน้าเมื่อผู้ใช้เลื่อนเมาส์ไปที่ลิงก์ ทำให้เกิดประสบการณ์การนำทางที่เกือบจะทันทีทันใด อย่างไรก็ตาม นักพัฒนาได้ตั้งคำถามที่จริงจังเกี่ยวกับการสิ้นเปลืองทรัพยากร ผลกระทบต่อความเป็นส่วนตัว และการรองรับเบราว์เซอร์ที่จำกัด

การรองรับเบราว์เซอร์ที่จำกัดสร้างความท้าทายในการพัฒนา

อุปสรรคที่ใหญ่ที่สุดที่ Speculation Rules API เผชิญคือการพร้อมใช้งานเฉพาะใน Chrome 121 และเวอร์ชันที่ใหม่กว่าเท่านั้น ผู้ใช้ Firefox และ Safari ถูกทิ้งไว้ข้างนอกโดยสิ้นเชิง ทำให้นักพัฒนาต้องสร้างโซลูชันสำรองที่ให้เพียงการดึงข้อมูลล่วงหน้าแบบพื้นฐานโดยไม่มีความสามารถในการเรนเดอร์เต็มรูปแบบ การแยกส่วนของเบราว์เซอร์นี้หมายความว่าเว็บไซต์ต้องรักษาระบบที่แตกต่างกันสองระบบเพื่อให้ได้ผลลัพธ์ที่คล้ายคลึงกันสำหรับผู้ใช้ทุกคน แม้ว่า Mozilla จะได้ระบุแผนการที่จะนำฟีเจอร์นี้มาใช้ แต่ยังไม่มีการให้ไทม์ไลน์ ทำให้นักพัฒนาไม่แน่ใจว่าเมื่อไหร่จึงจะสามารถพึ่งพาการรองรับแบบสากลได้

สถานะการรองรับของเบราว์เซอร์:

  • Chrome 121+ : รองรับ Speculation Rules API อย่างเต็มรูปแบบ
  • Firefox : วางแผนการพัฒนา (ยังไม่มีกำหนดเวลาที่แน่นอน)
  • Safari : ยังไม่มีการประกาศเรื่องการพัฒนา
  • Brave : ปิดการรองรับโดยเจตนา

ความกังวลเรื่องการใช้ทรัพยากรทำให้ความคิดเห็นแตกแยก

ชุมชนมีความเห็นแตกต่างกันว่าประโยชน์ด้านประสิทธิภาพนั้นคุ้มค่ากับการเพิ่มขึ้นของโหลดเซิร์ฟเวอร์และการใช้แบนด์วิดท์หรือไม่ นักวิจารณ์ชี้ให้เห็นว่าการเรนเดอร์หน้าเว็บที่ผู้ใช้อาจไม่เคยเยี่ยมชมเป็นการสิ้นเปลืองทั้งทรัพยากรเซิร์ฟเวอร์และแบตเตอรี่ของอุปกรณ์ผู้ใช้ ซึ่งเป็นปัญหาโดยเฉพาะสำหรับผู้ใช้มือถือที่มีแผนข้อมูลจำกัด การตั้งค่าความกระตือรือร้นระดับปานกลางจะเริ่มการโหลดล่วงหน้าหลังจากเลื่อนเมาส์เพียง 200 มิลลิวินาที ซึ่งบางคนโต้แย้งว่าเป็นการกระทำที่รุกรานเกินไปและอาจนำไปสู่การใช้ทรัพยากรที่ไม่จำเป็น

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

ข้อพิจารณาเกี่ยวกับผลกระทบต่อทรัพยากร:

  • การเพิ่มขึ้นของภาระงานเซิร์ฟเวอร์จากคำขอแบบคาดการณ์ล่วงหน้า
  • การใช้แบนด์วิดท์ที่สูงขึ้นในอุปกรณ์ของผู้ใช้
  • การสิ้นเปลืองแบตเตอรี่ในอุปกรณ์มือถือและแล็ปท็อป
  • ความเสี่ยงที่จะทำให้ข้อมูลการวิเคราะห์บิดเบือนจากการดูหน้าเว็บแบบผี
  • ความเสี่ยงในการรัน JavaScript ในหน้าเว็บที่ไม่ได้เข้าชม

ข้อจำกัดด้านมือถือและการเข้าถึงทำให้เกิดคำถามเรื่องการรวมทุกคน

การพึ่งพาเหตุการณ์การเลื่อนเมาส์ของ API สร้างข้อจำกัดที่สำคัญสำหรับผู้ใช้มือถือ การนำทางด้วยแป้นพิมพ์ และการเข้าถึงผ่านโปรแกรมอ่านหน้าจอ เนื่องจากอุปกรณ์มือถือไม่มีสถานะการเลื่อนเมาส์ กลไกการเรียกใช้หลักจึงไม่ทำงาน ซึ่งอาจสร้างประสบการณ์เว็บสองระดับที่ผู้ใช้เดสก์ท็อปได้รับการโหลดที่เร็วขึ้นในขณะที่ผู้ใช้มือถือถูกทิ้งไว้ข้างหลัง นักพัฒนาบางคนแนะนำให้ใช้เหตุการณ์การสัมผัสเป็นทางเลือก แต่วิธีการนี้ขาดความแม่นยำในการทำนายของการโหลดล่วงหน้าแบบใช้การเลื่อนเมาส์

ผลกระทบด้านความปลอดภัยและการวิเคราะห์อยู่ภายใต้การตรวจสอบ

นักพัฒนาเว็บมีความกังวลเกี่ยวกับผลที่ตามมาที่ไม่ได้ตั้งใจของการโหลดหน้าเว็บอัตโนมัติ เว็บไซต์ที่มีฟังก์ชันการลบที่ออกแบบมาไม่ดีหรือการกระทำที่เป็นอันตรายอื่น ๆ ที่ถูกเรียกใช้โดยคำขอ GET อาจทำให้เกิดปัญหาเมื่อหน้าเว็บถูกเรนเดอร์ในพื้นหลัง นอกจากนี้ ระบบการวิเคราะห์อาจบันทึกการดูหน้าเว็บแบบผีสำหรับเนื้อหาที่ผู้ใช้ไม่เคยเห็นจริง ๆ ซึ่งอาจทำให้เมตริกเว็บไซต์และข้อมูลโฆษณาผิดเพี้ยน ฟีเจอร์นี้ยังทำให้เกิดความกังวลด้านความเป็นส่วนตัว เนื่องจากผู้ใช้อาจโหลดและรันโค้ดจากเว็บไซต์ที่เป็นอันตรายโดยไม่รู้ตัวเพียงแค่เลื่อนเมาส์ไปที่ลิงก์

ตัวเลือกการกำหนดค่า API:

  • Prefetch: ดาวน์โหลดเฉพาะเอกสาร HTML เก็บไว้ใน cache เพื่อการโหลดที่เร็วขึ้น
  • Prerender: การเรนเดอร์หน้าเว็บแบบเต็มรูปแบบรวมถึง CSS, JavaScript และรูปภาพ
  • Eagerness "moderate": เริ่มทำงานหลังจากเมาส์ hover เป็นเวลา 200ms
  • href_matches "/*": ใช้กับลิงก์ภายในเว็บไซต์ทั้งหมด

วิธีการทางเลือกให้การควบคุมมากขึ้น

นักพัฒนาบางคนสนับสนุนโซลูชันที่มีเป้าหมายเฉพาะมากกว่าวิธีการแบบครอบคลุมของการโหลดลิงก์ภายในทั้งหมดล่วงหน้า การนำไปใช้ขั้นสูงใช้แอตทริบิวต์ข้อมูลเพื่อทำเครื่องหมายลิงก์ที่ควรถูกดึงข้อมูลหรือเรนเดอร์ล่วงหน้าอย่างเลือกสรร หลีกเลี่ยงหน้าเว็บที่มีปัญหาเช่นฟอร์มเข้าสู่ระบบหรือการกระทำที่เป็นอันตราย คนอื่น ๆ แนะนำระบบที่ใช้ความน่าจะเป็นที่วิเคราะห์รูปแบบพฤติกรรมของผู้ใช้เพื่อทำการทำนายที่ชาญฉลาดขึ้นเกี่ยวกับหน้าเว็บไหนที่ควรโหลดล่วงหน้า คล้ายกับวิธีการที่ใช้โดยเว็บไซต์ใหญ่ ๆ เช่น Amazon

Speculation Rules API เป็นตัวแทนของขั้นตอนที่น่าสนใจไปสู่ประสบการณ์เว็บที่เร็วขึ้น แต่ความเห็นพ้องของชุมชนแนะนำว่าการนำไปใช้อย่างระมัดระวังเป็นสิ่งจำเป็น แม้ว่าเทคโนโลยีนี้จะแสดงให้เห็นถึงความสัญญาในการลดเวลาโหลดที่รับรู้ได้ แต่นักพัฒนาต้องชั่งน้ำหนักประโยชน์เทียบกับการใช้ทรัพยากรที่เพิ่มขึ้น การเข้าถึงที่จำกัด และความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นก่อนที่จะนำมาใช้อย่างแพร่หลาย

อ้างอิง: Make any website load faster with 6 lines of HTML