2016-03-16 24 views

Trả lời

21

Sự khác biệt chính là AppCache là API cấp cao, khai báo, mà bạn chỉ định bộ tài nguyên bạn muốn trình duyệt lưu vào bộ nhớ cache; trong khi Service Worker là API cấp thấp, bắt buộc, hướng sự kiện mà bạn viết một kịch bản có thể chặn các sự kiện tìm nạp và lưu trữ các phản hồi của họ cùng với thực hiện các việc khác (như hiển thị các thông báo đẩy).

Ưu và khuyết điểm chủ yếu là chức năng của thiết kế API: về mặt lý thuyết, AppCache dễ sử dụng hơn, trong khi có nhiều trường hợp sử dụng hạn chế hơn; trong khi Service Worker khó sử dụng hơn nhưng linh hoạt hơn.

Tuy nhiên, AppCache được coi là khó sử dụng trong thực tế do thiết kế kém (xem Application Cache Is A Douchebag để biết danh sách các vấn đề về thiết kế). Và nó đã không được chấp nhận, do đó, nó đang được gỡ bỏ khỏi các trình duyệt (mỗi Using the application cache).

Do đó, lý do duy nhất để sử dụng AppCache là ngoại tuyến một ứng dụng trên các trình duyệt chưa hỗ trợ Service Worker, như Kenneth Ormandy đề xuất trong Don’t Wait for ServiceWorker: Adding Offline Support with One-Line.

So sánh Can I use Service Workers? đến Can I use Offline web applications? để xem sự khác biệt trong hỗ trợ trình duyệt. Nhưng lưu ý rằng các trình duyệt hỗ trợ Service Worker, như Chrome và Firefox, đang xóa hỗ trợ cho AppCache, vì vậy, bạn sẽ cần triển khai cả hai để ngoại tuyến ứng dụng của mình trên tất cả các trình duyệt hỗ trợ chuẩn.

3

Bên cạnh đó những gì Myk Melez nói: Một trong những lợi ích chính của người lao động Dịch vụ chống lại ứng dụng bộ nhớ cache là ứng dụng bộ nhớ cache chỉ hoạt động khi sử dụng bị ngắt kết nối từ mạng, vì vậy bạn không thể quản lý tình huống:

1- "mạng chậm" - Tín hiệu kết nối của bạn mạnh, tuy nhiên một số thực thể bên ngoài (máy chủ, tuyến đường, v.v.) đang trì hoãn quá trình truyền đến ứng dụng cụ thể của bạn.

2- "Lie-fi" (điện thoại của bạn hiển thị được kết nối với mạng wi-fi hoặc mạng di động có tín hiệu thấp) vì vậy có vẻ như kết nối đó thực sự không được kết nối.

Nhân viên dịch vụ giống như một thiết bị trung gian giúp bạn kiểm soát các yêu cầu mà trình duyệt đang thực hiện, bạn thực sự có thể chặn yêu cầu và trả lời bất cứ nơi nào bạn muốn, cho dù bạn có kết nối hay không. Vì vậy, bạn có thể triển khai nguyên tắc "ngoại tuyến đầu tiên".

Các vấn đề liên quan