Service Worker和AppCache之间的核心区别是什么?每种方式的优缺点是什么,什么时候更喜欢一种方式。

最佳答案

主要区别在于AppCache是​​一个高级的声明性API,您可以使用它指定浏览器要缓存的资源集。而Service Worker是一个低级,命令式,事件驱动的API,您可以使用该API编写一个脚本,该脚本可以拦截获取事件并缓存其响应以及执行其他操作(例如显示推送通知)。

优缺点在很大程度上取决于API设计:从理论上讲,AppCache易于使用,而用例却更有限;而Service Worker较难使用,但更灵活。

但是,由于设计不良,在实践中认为AppCache难以使用(有关设计问题的列表,请参见Application Cache Is A Douchebag)。并且它已被弃用,因此已从浏览器中删除(根据Using the application cache)。

因此,首选AppCache的唯一原因是在尚不支持Service Worker的浏览器上使应用程序脱机,正如Kenneth Ormandy在Don’t Wait for ServiceWorker: Adding Offline Support with One-Line中所建议的那样。

Can I use Service Workers?Can I use Offline web applications?进行比较,以了解浏览器支持的差异。但是请注意,支持Service Worker的浏览器(例如Chrome和Firefox)正在删除对AppCache的支持,因此您需要同时实现这两种方法,才能在支持这两种标准的所有浏览器上使应用程序脱机。

关于html5-appcache - Service Worker和AppCache之间的比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36038371/

10-09 09:26