离线功能对比:service worker和applicationCache
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的浏览器兼容性更好
离线功能对比:service worker和applicationCache的更多相关文章
- Service Worker,Web Worker,WebSocket的对比
		
Service Worker 处理网络请求的后台服务.适用于离线和后台同步数据或推送信息.不能直接和dom交互.通过postMessage方法交互. Web Worker 模拟多线程,允许复杂计算功能 ...
 - Service Worker 离线无法缓存Post请求的问题解决
		
许多非REST API甚至可以用于读取数据的POST请求:典型的例子是graphql.soap和其他rpcpapi.但是,Post请求不能在一个现成的渐进式Web应用程序中缓存和脱机使用.浏览器的缓存 ...
 - 前端存储 (5) - service worker 离线存储
		
service worker 离线存储 简介: 一般的网站 在我们无法访问的 时候 一般 回出现 如下 该网页无法访问 service worker 构建的网站不会出现这个错误,因为所有的 请求都是先 ...
 - service worker(一)之离线应用
		
serviceWork.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
 - Service Worker
		
Service Worker 随着前端快速发展,应用的性能已经变得至关重要,关于这一点大佬做了很多统计.你可以去看看. 如何降低一个页面的网络请求成本从而缩短页面加载资源的时间并降低用户可感知的延时是 ...
 - Service Worker基础知识整理
		
Service Worker是什么 service worker 是独立于当前页面的一段运行在浏览器后台进程里的脚本.它的特性将包括推送消息,背景后台同步, geofencing(地理围栏定位),拦截 ...
 - JavaScript是如何工作的:Service Worker的生命周期及使用场景
		
摘要: 理解Service Worker. 原文:JavaScript 是如何工作的:Service Worker 的生命周期及使用场景 作者:前端小智 Fundebug经授权转载,版权归原作者所有. ...
 - Web API之service worker
		
一.参考链接 https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API http://www.alloyteam.com/ ...
 - 浏览器缓存和Service Worker
		
浏览器缓存和Service Worker @billshooting 2018-05-06 字数 6175 Follow me on Github 标签: BOM 1. 传统的HTTP浏览器缓存策略 ...
 
随机推荐
- MyBatist庖丁解牛(五)
			
很多时候我们在自己的每个service中没有中注入SqlSessionTemplate; 但是我们直接调用mapper接口方法就直接能够操作数据库 这个是为什么??下面开始解惑: Mybatis Sq ...
 - gcd(2018.10.24)
			
良心题,暴力枚举即可. 代码: #include<cstdio> #include<cmath> #include<algorithm> using namespa ...
 - linux常用命令(ubuntu)
			
编辑: vi [path] vim [path] :q 退出 :wq 保存退出 查看进程 ps ps -aux | grep mem 查看全部含 “mem”的进程 ps –aux 查看全部 在系统启 ...
 - 网络请求方法(SDK封装可以替换afn)
			
//个人觉得 sdk开发时候 最好不要用第三方 最好可以用最原始的方法 替换 此处仅做sdk封装使用 留存+(void)GET:(NSString *)urlStr params:(NSDiction ...
 - Hadoop启动datanode失败,clusterId有问题
			
问题: 搭建伪Hadoop集群的时候,运行命令: hdfs namenode -format 格式化或者说初始化namenode. 然后用命令: start-dfs.sh 来启动hdfs时,jps发现 ...
 - TDH-search常用命令
			
一.指令部分:1.search管理界面地址: http://172.20.230.110:9200/_plugin/head/ 2.集群状态查看命令: curl -XGET 'localhost:92 ...
 - .net 键盘
			
private void txtGoodsGroup_KeyPress(object sender, KeyPressEventArgs e) { base.OnKeyPress(e); if ((i ...
 - Jquery EasyUI 中ValidateBox验证框使用讲解(转)
			
Validatebox(验证框)的设计目的是为了验证输入的表单字段是否有效.如果用户输入了无效的值,它将会更改输入框的背景颜色,并且显示警告图标和提示信息.该验证框可以结合form(表单)插件并防止表 ...
 - Django数据库创建与查询及ORM的概念
			
ORM:是封装在pymysql上层的文件.他的作用是把python语句转换成sql语句,从而去数据库里操作数据.从数据库里获得的数据,经过orm转换为对象,对象可以直接调用属性获得值.orm本质是个中 ...
 - PostgreSQL函数如何返回数据集 [转]
			
PostgreSQL函数如何返回数据集 以下主要介绍PostgreSQL函数/存储过程返回数据集,或者也叫结果集的示例. 背景: PostgreSQL里面没有存储过程,只有函数,其他数据库里的这两个对 ...