SW
复杂,事件驱动,可以拦截请求,和缓存这些请求的响应数据,实现的效果更加灵活
AppCache
简单易用,声明式的将要缓存的文件清单声明在一个文件中。由于设计上的原因,它存在一些问题,导致难以运用到实际项目中,所以一般都使用sw,如果不支持sw的话才使用appCache。这是它唯一的运用场景了。而且AppCache逐渐地被Web标准移除,虽然现在依然有浏览器支持这个功能,但最好不要再使用它了。
引用MDN原文如下:
This feature has been removed from the Web standards.
Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible;
对比
appCache仅仅在离线的时候才能发挥用处(无法解决网络慢的用户体验问题),而SW不是,可以通过拦截请求,并且返回合适的数据,如果发现网络较慢。
appCache的浏览器兼容性更好