Sự khác biệt cốt lõi giữa nhân viên dịch vụ và AppCache là gì. Những ưu và nhược điểm của mỗi và khi nào thích cái khác hơn.So sánh giữa nhân viên dịch vụ và AppCache
Trả lời
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.
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".
- 1. Nhân viên dịch vụ có dự định thay thế hoặc cùng tồn tại với Appcache không?
- 2. Nhân viên dịch vụ không cập nhật
- 3. So sánh giữa GWT và Spring MVC
- 4. Thông báo đẩy nhân viên dịch vụ với Angular2
- 5. Đăng ký nhân viên dịch vụ không thành công
- 6. Nhân viên dịch vụ ném lưới :: ERR_FILE_EXISTS lỗi?
- 7. Nhân viên dịch vụ trên ứng dụng cordova
- 8. thêm nhân viên dịch vụ vào ứng dụng reactjs
- 9. nhân viên dịch vụ Đăng ký thất bại với localhost
- 10. Firebase: thay đổi vị trí của nhân viên dịch vụ
- 11. Vai trò web và vai trò của nhân viên trong dịch vụ đám mây/Node.js
- 12. So sánh giữa XNA và DirectX (C#)
- 13. So sánh giữa RabbitMQ và MSMQ
- 14. So sánh giữa timsort và quicksort
- 15. So sánh giữa NewRelic và Azure Insights
- 16. Tại sao yêu cầu tìm nạp phải được nhân bản trong nhân viên dịch vụ?
- 17. so sánh giữa QAbstractButton và QPushButton * thiếu một dàn diễn viên
- 18. So sánh thời gian biên dịch giữa Windows GCC và trình biên dịch MSVC
- 19. công nhân vs quá trình so sánh khách hàng và công việc vs nhiệm vụ trong mô-đun Celery Python
- 20. AngularJS và nhân viên web
- 21. Các tác nhân của Clojure so sánh với các diễn viên của Scala như thế nào?
- 22. So sánh chức năng giữa KeyListeners và Key Bindings
- 23. lỗi biên dịch C++: ISO C++ cấm so sánh giữa con trỏ và số nguyên
- 24. Hiểu phạm vi công nhân dịch vụ
- 25. So sánh hiệu suất giữa jQuery Datatable và jQGrid?
- 26. So sánh giữa con trỏ và số nguyên
- 27. kết hợp so sánh lệnh giữa R và Stata
- 28. So sánh Cú pháp giữa Moq và tê giác mocks
- 29. so sánh và thenComparing cho biên dịch lỗi
- 30. So sánh giữa các dịch vụ web của Amazon (AWS) hoặc các máy chủ đám mây Rackspace?