การปรับปรุงการตรวจหาการรองรับออฟไลน์ของ Progressive Web App

Penny McLachlan
Penny McLachlan

Progressive Web App (PWA) คือรูปแบบการสร้างแอปพลิเคชันที่ทันสมัยและติดตั้งได้โดยใช้เทคโนโลยีเว็บสำหรับอุปกรณ์เคลื่อนที่และเดสก์ท็อป

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

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

เฉพาะแอปที่เป็นไปตามเกณฑ์ความสามารถในการติดตั้ง Progressive Web App หลักทั้งหมด รวมถึงรองรับโหมดออฟไลน์เท่านั้นที่จะติดตั้งลงในอุปกรณ์จาก Chrome ได้

ตรรกะการตรวจจับแบบออฟไลน์ก่อนหน้านี้

การยืนยันการรองรับการทำงานแบบออฟไลน์เป็นส่วนหนึ่งของเกณฑ์ความสามารถในการติดตั้ง PWA มาหลายปีแล้ว เมื่อไม่นานมานี้ Chrome ไม่สามารถจำลองคำขอผ่าน Service Worker ได้ จึงไม่สามารถตรวจสอบลักษณะการทำงานแบบออฟไลน์ที่ถูกต้องได้อย่างเต็มที่

แผนภาพ Service Worker

ซึ่งหมายความว่า Chrome ไม่สามารถตรวจสอบว่า fetch event handler ส่งคืนทรัพยากรที่ถูกต้องด้วย HTTP 200 หรือไม่ในระหว่างการตรวจสอบแบบออฟไลน์ Chrome จะตรวจสอบว่า Service Worker มีตัวแฮนเดิล fetch จริงหรือไม่เท่านั้น

อัปเดตตรรกะการตรวจจับแบบออฟไลน์

Chrome 89 เพิ่มความสามารถในการเรียกใช้คําขอแบบจําลองออฟไลน์ผ่าน Service Worker ซึ่งช่วยให้ตรรกะการตรวจหาแบบออฟไลน์ที่ปรับปรุงแล้วแสดงถึงการสนับสนุนแบบออฟไลน์จริงของแอปพลิเคชันได้ดียิ่งขึ้น

ก่อนหน้านี้เราวางแผนที่จะใช้ความสามารถใหม่นี้เพื่อให้มั่นใจว่า PWA จะแสดงหน้าเว็บที่ถูกต้องเมื่อออฟไลน์ แต่ได้ระงับแผนดังกล่าวไว้ชั่วคราว การตรวจสอบความสามารถในการติดตั้งจะยังคงผ่านต่อไปหากหน้าเว็บมี Service Worker ที่มี fetch event handler

การเปลี่ยนแปลงนี้ส่งผลต่อนักพัฒนาแอปอย่างไร

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

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

เราจะนำคำเตือนที่แสดงในแท็บปัญหาของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ออกใน Chrome เวอร์ชัน 90