กำลังเตรียมการนำ AppCache ออก

Chrome 85 จะนำการรองรับ AppCache ออกโดยค่าเริ่มต้น นักพัฒนาแอปส่วนใหญ่ควรย้ายข้อมูลออกจาก AppCache ในตอนนี้ และไม่ควรรออีกต่อไป

ตามประกาศก่อนหน้า เราจะหยุดรองรับ AppCache ใน Chrome และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium เราขอแนะนำให้นักพัฒนาแอปย้ายข้อมูลออกจาก AppCache ตอนนี้เลย แทนที่จะรอต่อไป

Service Worker ซึ่งเบราว์เซอร์ปัจจุบันรองรับอย่างกว้างขวาง เป็นอีกทางเลือกในการมอบประสบการณ์การใช้งานแบบออฟไลน์ ที่ AppCache เคยมี ดูกลยุทธ์การย้ายข้อมูล

ไทม์ไลน์

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

ฟีเจอร์ที่ "เลิกใช้งานแล้ว" ยังคงมีอยู่ แต่จะบันทึกข้อความเตือนที่แนะนำไม่ให้ใช้ ฟีเจอร์ที่ "นำออก" จะไม่มีอยู่ในเบราว์เซอร์อีกต่อไป

การเลิกใช้งานในบริบทที่ไม่ปลอดภัย Chrome 50 (เมษายน 2016)
การนำออกจากบริบทที่ไม่ปลอดภัย Chrome 70 (ตุลาคม 2018)
การเลิกใช้งานในบริบทที่ปลอดภัย Chrome 79 (ธันวาคม 2019)
ข้อจำกัดขอบเขต AppCache Chrome 80 (กุมภาพันธ์ 2020)
เริ่มช่วงทดลองใช้จากต้นทาง "ย้อนกลับ" Chrome 84 (กรกฎาคม 2020)
การนำออกจากบริบทที่ปลอดภัย ยกเว้นบริบทที่เลือกใช้ช่วงทดลองใช้จากต้นทาง Chrome 85 (สิงหาคม 2020)
นำออกจากบริบทที่ปลอดภัยสำหรับทุกคนโดยสมบูรณ์เมื่อช่วงทดลองใช้จากต้นทางสิ้นสุดลง 5 ตุลาคม 2021 (ประมาณ Chrome 95)

ช่วงทดลองใช้จากต้นทาง

ไทม์ไลน์จะแสดงเหตุการณ์สำคัญ 2 รายการที่กำลังจะมาถึงสำหรับการนำออก ตั้งแต่ Chrome 85 เป็นต้นไป AppCache จะไม่พร้อมใช้งานใน Chrome โดยค่าเริ่มต้น นักพัฒนาแอปที่ต้องการเวลาเพิ่มเติมในการย้ายข้อมูลออกจาก AppCache สามารถลงชื่อสมัครใช้ช่วงทดลองใช้ "ย้อนกลับ" เพื่อขยายความพร้อมใช้งานของ AppCache สำหรับเว็บแอปของตน การทดลองใช้แหล่งที่มาจะเริ่มใน Chrome 84 (ก่อนที่จะนำออกโดยค่าเริ่มต้นใน Chrome 85) และจะมีผลจนถึงวันที่ 5 ตุลาคม 2021 (ประมาณ Chrome 95) เมื่อถึงเวลานั้น เราจะนำ AppCache ออกจากระบบโดยสมบูรณ์สำหรับทุกคน แม้แต่ผู้ที่ลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทาง

หากต้องการเข้าร่วมการทดลองใช้จากต้นทางแบบ "ย้อนกลับ" ให้ทำดังนี้

  1. ขอโทเค็นสำหรับต้นทาง
  2. เพิ่มโทเค็นลงในหน้า HTML ซึ่งทำได้2 วิธี ดังนี้
    • เพิ่มแท็ก origin-trial <meta> ลงในส่วนหัวของแต่ละหน้า เช่น <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • หรือจะกำหนดค่าเซิร์ฟเวอร์ให้แสดงการตอบกลับที่มีส่วนหัว HTTP Origin-Trial ก็ได้ ส่วนหัวการตอบกลับที่ได้ควรมีลักษณะดังนี้ Origin-Trial: TOKEN_GOES_HERE
  3. เพิ่มโทเค็นเดียวกันลงในไฟล์ Manifest ของ AppCache โดยทำผ่านช่องใหม่ในไฟล์ Manifest ด้วยรูปแบบต่อไปนี้
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(ต้องมีบรรทัดใหม่ระหว่าง ORIGIN-TRIAL กับโทเค็นของคุณ)

เหตุใดจึงต้องใช้โทเค็นในหลายที่

โทเค็นทดลองใช้แบบมีแหล่งที่มาเดียวกันต้องเชื่อมโยงกับรายการต่อไปนี้

  • หน้า HTML ทั้งหมดที่ใช้ AppCache
  • ไฟล์ Manifest ของ AppCache ทั้งหมดผ่านฟิลด์ Manifest ORIGIN-TRIAL

หากเคยเข้าร่วมการทดลองใช้ต้นทางในอดีต คุณอาจเพิ่มโทเค็นลงในหน้า HTML เท่านั้น การทดลองใช้ AppCache "ย้อนกลับ" มีความพิเศษตรงที่คุณต้องเชื่อมโยงโทเค็นกับไฟล์ Manifest ของ AppCache แต่ละรายการด้วย

การเพิ่มโทเค็นช่วงทดลองใช้แหล่งที่มาลงในหน้า HTML จะช่วยให้คุณใช้window.applicationCacheอินเทอร์เฟซจากภายในเว็บแอปได้ หน้าเว็บที่ไม่ได้เชื่อมโยงกับโทเค็นจะใช้window.applicationCacheเมธอดและเหตุการณ์ไม่ได้ นอกจากนี้ หน้าที่ไม่มีโทเค็นจะโหลดทรัพยากรจาก AppCache ไม่ได้ด้วย ตั้งแต่ Chrome 85 เป็นต้นไป จะมีการทำงานราวกับว่าไม่มี AppCache

การเพิ่มโทเค็นช่วงทดลองใช้แหล่งที่มาลงในไฟล์ Manifest ของ AppCache จะบ่งบอกว่าไฟล์ Manifest แต่ละรายการยังคงใช้งานได้ ตั้งแต่ Chrome 85 เป็นต้นไป ระบบจะถือว่าไฟล์ Manifest ที่ไม่มีช่อง ORIGIN-TRIAL มีรูปแบบไม่ถูกต้อง และจะไม่สนใจกฎภายในไฟล์ Manifest

เวลาและการจัดการด้านลอจิสติกส์ในการติดตั้งใช้งานช่วงทดลองใช้จากต้นทาง

แม้ว่าช่วงทดลองใช้ต้นทาง "ย้อนกลับ" จะเริ่มอย่างเป็นทางการใน Chrome 84 แต่คุณก็ลงชื่อสมัครใช้ช่วงทดลองใช้ต้นทางได้ตั้งแต่วันนี้ และเพิ่มโทเค็นลงในไฟล์ HTML และไฟล์ Manifest ของ AppCache เมื่อกลุ่มเป้าหมายของเว็บแอปอัปเกรดเป็น Chrome 84 ทีละน้อย โทเค็นที่คุณเพิ่มไว้แล้วจะมีผล

เมื่อเพิ่มโทเค็นลงในไฟล์ Manifest ของ AppCache แล้ว ให้ไปที่ about://appcache-internals เพื่อยืนยันว่าอินสแตนซ์ Chrome ในเครื่อง (เวอร์ชัน 84 ขึ้นไป) ได้เชื่อมโยงโทเค็นช่วงทดลองใช้แหล่งที่มากับรายการที่แคชไว้ของไฟล์ Manifest อย่างถูกต้อง หากระบบรู้จัก Origin Trial คุณควรเห็นช่องที่มี Token Expires: Tue Apr 06 2021... ในหน้านั้น ซึ่งเชื่อมโยงกับไฟล์ Manifest ของคุณ

อินเทอร์เฟซ about://appcache-internals แสดงโทเค็นที่รู้จัก

การทดสอบก่อนนำออก

เราขอแนะนำให้คุณย้ายข้อมูลออกจาก AppCache โดยเร็วที่สุด หากต้องการทดสอบการนำ AppCache ออกจากเว็บแอป ให้ใช้about://flags/#app-cache แฟล็กเพื่อจำลองการนำออก Flag นี้ใช้ได้กับ Chrome 84 เป็นต้นไป

กลยุทธ์การย้ายข้อมูล

Service Worker ซึ่งได้รับการรองรับอย่างกว้างขวางในเบราว์เซอร์ปัจจุบันเป็นอีกทางเลือกหนึ่งสำหรับประสบการณ์การใช้งานแบบออฟไลน์ที่ AppCache มอบให้

เราได้จัดเตรียม polyfill ที่ใช้ Service Worker เพื่อจำลองฟังก์ชันการทำงานบางอย่างของ AppCache แม้ว่าจะไม่ได้จำลองอินเทอร์เฟซ AppCache ทั้งหมดก็ตาม โดยเฉพาะอย่างยิ่ง ไม่ได้มีไว้เพื่อแทนที่window.applicationCacheอินเทอร์เฟซหรือเหตุการณ์ AppCache ที่เกี่ยวข้อง

สำหรับกรณีที่ซับซ้อนกว่านั้น ไลบรารีอย่าง Workbox จะช่วยให้คุณสร้าง Service Worker ที่ทันสมัยสำหรับเว็บแอปได้อย่างง่ายดาย

Service Worker และ AppCache จะเป็นข้อมูลแยกกัน

ขณะที่วางแผนกลยุทธ์การย้ายข้อมูล โปรดทราบว่า Chrome จะปิดใช้ฟังก์ชัน AppCache ในหน้าเว็บที่โหลดภายใต้การควบคุมของ Service Worker กล่าวคือ ทันทีที่คุณติดตั้งใช้งาน Service Worker ที่ควบคุมหน้าเว็บหนึ่งๆ คุณจะใช้ AppCache ในหน้าเว็บนั้นไม่ได้อีกต่อไป

ด้วยเหตุนี้ เราจึงขอแนะนำว่าอย่าพยายามย้ายข้อมูลไปยัง Service Worker ทีละส่วน การติดตั้งใช้งาน Service Worker ที่มีเฉพาะตรรกะการแคชบางส่วนถือเป็นข้อผิดพลาด คุณไม่สามารถใช้ AppCache เพื่อ "เติมเต็มช่องว่าง" ได้

ในทำนองเดียวกัน หากคุณติดตั้งใช้งาน Service Worker ก่อนที่จะนำ AppCache ออก แล้วพบว่าต้องย้อนกลับไปใช้การติดตั้งใช้งาน AppCache ก่อนหน้านี้ คุณจะต้องยกเลิกการลงทะเบียน Service Worker นั้น ตราบใดที่มี Service Worker ที่ลงทะเบียนในขอบเขตของหน้าเว็บหนึ่งๆ ระบบจะไม่ใช้ AppCache

เรื่องราวข้ามแพลตฟอร์ม

เราขอแนะนำให้คุณติดต่อผู้จำหน่ายเบราว์เซอร์ที่เฉพาะเจาะจงหากต้องการข้อมูลเพิ่มเติมเกี่ยวกับแผนการนำ AppCache ออก

Firefox ในทุกแพลตฟอร์ม

Firefox เลิกใช้งาน AppCache ในรุ่น 44 (กันยายน 2015) และได้นำการรองรับ AppCache ออกจากรุ่นเบต้าและรุ่น Nightly ตั้งแต่เดือนกันยายน 2019

Safari ใน iOS และ macOS

Safari เลิกใช้งาน AppCache ในช่วงต้นปี 2018

Chrome ใน iOS

Chrome สำหรับ iOS เป็นกรณีพิเศษเนื่องจากใช้เครื่องมือเบราว์เซอร์ที่แตกต่างจาก Chrome ในแพลตฟอร์มอื่นๆ ซึ่งก็คือ WKWebView ขณะนี้แอป iOS ที่ใช้ WKWebView ยังไม่รองรับ Service Worker และประกาศการนำ AppCache ออกของ Chrome ไม่ครอบคลุมความพร้อมใช้งานของ AppCache ใน Chrome สำหรับ iOS โปรดทราบว่าหากคุณทราบว่าเว็บแอปมีกลุ่มเป้าหมายที่ใช้ Chrome สำหรับ iOS จำนวนมาก

Android WebView

นักพัฒนาแอปพลิเคชัน Android บางรายใช้ WebView ของ Chrome เพื่อแสดงเนื้อหาเว็บ และอาจใช้ AppCache ด้วย อย่างไรก็ตาม คุณไม่สามารถเปิดใช้ช่วงทดลองใช้ Origin สำหรับ WebView ได้ ด้วยเหตุนี้ Chrome WebView จึงจะรองรับ AppCache โดยไม่ต้องมีการทดลองใช้แหล่งที่มาจนกว่าจะมีการนำออกในขั้นสุดท้าย ซึ่งคาดว่าจะเกิดขึ้นใน Chrome 90

ดูข้อมูลเพิ่มเติม

ต่อไปนี้คือแหล่งข้อมูลบางส่วนสำหรับนักพัฒนาซอฟต์แวร์ที่ย้ายข้อมูลจาก AppCache ไปยัง Service Worker

บทความ

เครื่องมือ

การขอความช่วยเหลือ

หากพบปัญหาในการใช้เครื่องมือใดเครื่องมือหนึ่ง ให้เปิดประเด็นในที่เก็บ GitHub ของเครื่องมือดังกล่าว

คุณสามารถถามคำถามทั่วไปเกี่ยวกับการย้ายข้อมูลออกจาก AppCache ได้ที่ Stack Overflow โดยใช้แท็ก html5-appcache

หากพบข้อบกพร่องที่เกี่ยวข้องกับการนำ AppCache ของ Chrome ออก โปรดรายงานโดยใช้เครื่องมือติดตามปัญหาของ Chromium

รูปภาพหลักอิงตามหอจดหมายเหตุสถาบันสมิธโซเนียน (Smithsonian Institution Archives), Acc. 11-007, Box 020, Image No. MNH-4477