Chuẩn bị xoá AppCache

Chrome 85 sẽ xoá chế độ hỗ trợ AppCache theo mặc định. Hầu hết nhà phát triển nên di chuyển khỏi AppCache ngay bây giờ và không nên chờ đợi thêm nữa.

Tiếp theo các thông báo trước đây, Chrome và các trình duyệt khác dựa trên Chromium sẽ không còn hỗ trợ AppCache nữa. Nhà phát triển nên di chuyển khỏi AppCache ngay bây giờ thay vì chờ đợi lâu hơn nữa.

Trình chạy dịch vụ (được hỗ trợ rộng rãi trong các trình duyệt hiện tại) là một lựa chọn thay thế để cung cấp trải nghiệm khi không có mạng mà AppCache đã cung cấp. Xem Chiến lược di chuyển.

Dòng thời gian

Những thay đổi gần đây đối với lịch phát hành Chrome có nghĩa là thời gian của một số bước này có thể thay đổi. Chúng tôi sẽ cố gắng cập nhật tiến trình này, nhưng tại thời điểm này, vui lòng di chuyển khỏi AppCache càng sớm càng tốt thay vì chờ đợi các cột mốc cụ thể.

Một tính năng "không dùng nữa" vẫn tồn tại, nhưng sẽ ghi lại các thông báo cảnh báo nhằm ngăn chặn việc sử dụng. Một tính năng "đã xoá" không còn tồn tại trong trình duyệt nữa.

Ngừng sử dụng trong các bối cảnh không an toàn Chrome 50 (Tháng 4 năm 2016)
Xoá khỏi các ngữ cảnh không an toàn Chrome 70 (tháng 10 năm 2018)
Ngừng sử dụng trong các bối cảnh an toàn Chrome 79 (tháng 12 năm 2019)
Hạn chế phạm vi AppCache Chrome 80 (Tháng 2 năm 2020)
Bắt đầu bản dùng thử theo nguyên gốc "Đảo ngược" Chrome 84 (Tháng 7 năm 2020)
Xoá khỏi các ngữ cảnh an toàn, ngoại trừ những ngữ cảnh đã chọn tham gia bản dùng thử theo nguyên gốc Chrome 85 (Tháng 8 năm 2020)
Xoá hoàn toàn khỏi bối cảnh an toàn cho mọi người, sau khi hoàn tất bản dùng thử theo nguyên gốc Ngày 5 tháng 10 năm 2021 (khoảng Chrome 95)

Bản dùng thử theo nguyên gốc

Dòng thời gian liệt kê 2 mốc quan trọng sắp tới để loại bỏ. Kể từ Chrome 85, theo mặc định, AppCache sẽ không còn hoạt động trong Chrome nữa. Những nhà phát triển cần thêm thời gian để di chuyển khỏi AppCache có thể đăng ký thử nghiệm nguồn gốc "đảo ngược" để kéo dài thời gian cung cấp AppCache cho các ứng dụng web của họ. Thử nghiệm nguồn sẽ bắt đầu trong Chrome 84 (trước khi xoá theo mặc định trong Chrome 85) và sẽ hoạt động cho đến hết ngày 5 tháng 10 năm 2021 (khoảng Chrome 95). Vào thời điểm đó, AppCache sẽ bị xoá hoàn toàn đối với tất cả mọi người, kể cả những người đã đăng ký dùng thử nguồn gốc.

Cách tham gia bản dùng thử theo nguyên gốc "đảo ngược":

  1. Yêu cầu mã thông báo cho nguồn gốc của bạn.
  2. Thêm mã thông báo vào các trang HTML của bạn. Có 2 cách để thực hiện việc đó:
    • Thêm thẻ origin-trial <meta> vào đầu mỗi trang. Ví dụ: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • Ngoài ra, hãy định cấu hình máy chủ để trả về các phản hồi chứa tiêu đề HTTP Origin-Trial. Tiêu đề phản hồi nhận được sẽ có dạng như sau: Origin-Trial: TOKEN_GOES_HERE
  3. Thêm mã thông báo tương tự vào tệp kê khai AppCache. Thực hiện việc này thông qua một trường mới trong tệp kê khai của bạn, theo định dạng:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Bạn cần có một dòng mới giữa ORIGIN-TRIAL và mã thông báo của mình.)

Tại sao cần có mã thông báo ở nhiều nơi?

Bạn cần liên kết mã thông báo dùng thử cùng nguồn với:

  • Tất cả các trang HTML sử dụng AppCache.
  • Tất cả tệp kê khai AppCache thông qua trường tệp kê khai ORIGIN-TRIAL.

Nếu trước đây đã tham gia các thử nghiệm nguồn gốc, thì có thể bạn chỉ thêm mã thông báo vào các trang HTML. Thử nghiệm nguồn gốc "đảo ngược" AppCache có điểm đặc biệt là bạn cũng cần liên kết một mã thông báo với từng tệp kê khai AppCache.

Việc thêm mã thông báo dùng thử nguồn gốc vào các trang HTML sẽ cho phép giao diện window.applicationCache trong các ứng dụng web của bạn. Những trang không được liên kết với mã thông báo sẽ không thể sử dụng các phương thức và sự kiện window.applicationCache. Những trang không có mã thông báo cũng sẽ không thể tải tài nguyên từ AppCache. Kể từ Chrome 85, các ứng dụng này sẽ hoạt động như thể AppCache không tồn tại.

Việc thêm mã thông báo dùng thử nguồn vào tệp kê khai AppCache cho biết rằng mỗi tệp kê khai vẫn hợp lệ. Kể từ Chrome 85, mọi tệp kê khai không có trường ORIGIN-TRIAL sẽ bị coi là không đúng định dạng và các quy tắc trong tệp kê khai sẽ bị bỏ qua.

Thời gian và quy trình triển khai bản dùng thử theo nguyên gốc

Mặc dù thử nghiệm nguồn gốc "đảo ngược" chính thức bắt đầu từ Chrome 84, nhưng bạn có thể đăng ký tham gia thử nghiệm nguồn gốc ngay hôm nay và thêm mã thông báo vào tệp kê khai HTML và AppCache. Khi đối tượng của ứng dụng web dần nâng cấp lên Chrome 84, mọi mã thông báo mà bạn đã thêm sẽ có hiệu lực.

Sau khi bạn thêm mã thông báo vào tệp kê khai AppCache, hãy truy cập vào about://appcache-internals để xác nhận rằng phiên bản Chrome cục bộ của bạn (phiên bản 84 trở lên) đã liên kết đúng mã thông báo dùng thử nguồn gốc với các mục được lưu vào bộ nhớ đệm trong tệp kê khai. Nếu thử nghiệm nguồn gốc của bạn được nhận dạng, bạn sẽ thấy một trường có Token Expires: Tue Apr 06 2021... trên trang đó, được liên kết với tệp kê khai của bạn:

Giao diện about://appcache-internals cho thấy một mã thông báo được nhận dạng.

Thử nghiệm trước khi gỡ bỏ

Bạn nên ngừng sử dụng AppCache càng sớm càng tốt. Nếu bạn muốn kiểm thử việc xoá AppCache trên các ứng dụng web, hãy dùng about://flags/#app-cache cờ để mô phỏng việc xoá AppCache. Cờ này bắt đầu có từ Chrome 84.

Chiến lược di chuyển

Trình chạy dịch vụ (được hỗ trợ rộng rãi trong các trình duyệt hiện tại) mang đến một giải pháp thay thế cho trải nghiệm khi không có mạng do AppCache cung cấp.

Chúng tôi đã cung cấp một polyfill sử dụng trình chạy dịch vụ để sao chép một số chức năng của AppCache, mặc dù polyfill này không sao chép toàn bộ giao diện AppCache. Cụ thể, API này không thay thế cho giao diện window.applicationCache hoặc các sự kiện AppCache có liên quan.

Đối với các trường hợp phức tạp hơn, các thư viện như Workbox cung cấp một cách dễ dàng để tạo trình chạy dịch vụ hiện đại cho ứng dụng web của bạn.

Service worker và AppCache loại trừ lẫn nhau

Trong khi xây dựng chiến lược di chuyển, vui lòng lưu ý rằng Chrome sẽ tắt chức năng AppCache trên mọi trang được tải trong quyền kiểm soát của một trình chạy dịch vụ. Nói cách khác, ngay khi triển khai một trình chạy dịch vụ kiểm soát một trang nhất định, bạn sẽ không còn có thể sử dụng AppCache trên trang đó nữa.

Vì lý do này, bạn không nên cố gắng di chuyển từng phần sang service worker. Sẽ là một sai lầm nếu bạn triển khai một worker dịch vụ chỉ chứa một số logic lưu vào bộ nhớ đệm. Bạn không thể dựa vào AppCache để "bổ sung những thiếu sót".

Tương tự, nếu triển khai một worker dịch vụ trước khi xoá AppCache, rồi phát hiện thấy bạn cần quay lại việc triển khai AppCache trước đó, thì bạn cần đảm bảo rằng bạn đã huỷ đăng ký worker dịch vụ đó. Miễn là có một trình chạy dịch vụ đã đăng ký trong phạm vi của một trang nhất định, AppCache sẽ không được dùng.

Câu chuyện về nhiều nền tảng

Bạn nên liên hệ với một nhà cung cấp trình duyệt cụ thể nếu muốn biết thêm thông tin về kế hoạch xoá AppCache của họ.

Firefox trên mọi nền tảng

Firefox đã không dùng nữa AppCache trong phiên bản 44 (tháng 9 năm 2015) và đã xoá chế độ hỗ trợ cho AppCache trong các bản dựng Beta và Nightly kể từ tháng 9 năm 2019.

Safari trên iOS và macOS

Safari đã ngừng cung cấp AppCache từ đầu năm 2018.

Chrome trên iOS

Chrome cho iOS là một trường hợp đặc biệt vì trình duyệt này sử dụng một công cụ trình duyệt khác với Chrome trên các nền tảng khác: WKWebView. Các ứng dụng iOS dùng WKWebView hiện không hỗ trợ các worker dịch vụ và thông báo về việc xoá AppCache của Chrome không đề cập đến khả năng cung cấp AppCache trên Chrome dành cho iOS. Hãy lưu ý điều này nếu bạn biết rằng ứng dụng web của mình có một lượng lớn người dùng Chrome trên iOS.

Android WebView

Một số nhà phát triển ứng dụng Android sử dụng WebView của Chrome để hiển thị nội dung web và cũng có thể sử dụng AppCache. Tuy nhiên, bạn không thể bật bản dùng thử nguồn gốc cho WebView. Do đó, Chrome WebView sẽ hỗ trợ AppCache mà không cần dùng thử nguồn gốc cho đến khi việc xoá hoàn tất (dự kiến trong Chrome 90).

Tìm hiểu thêm

Sau đây là một số tài nguyên dành cho những nhà phát triển di chuyển từ AppCache sang worker dịch vụ.

Bài viết

Công cụ

Nhận trợ giúp

Nếu bạn gặp vấn đề khi sử dụng một công cụ cụ thể, hãy mở một vấn đề trong kho lưu trữ GitHub của công cụ đó.

Bạn có thể đặt câu hỏi chung về việc di chuyển khỏi AppCache trên Stack Overflow bằng cách sử dụng thẻ html5-appcache.

Nếu bạn gặp phải lỗi liên quan đến việc xoá AppCache của Chrome, vui lòng báo cáo lỗi đó bằng công cụ theo dõi lỗi của Chromium.

Hình ảnh chính dựa trên Tài liệu lưu trữ của Viện Smithsonian, Acc. 11-007, Box 020, Image No. MNH-4477.