Hybrid设计--离线更新

首先server端和前端做一个增量发布系统 ,1、就是把一个增量包发布到一个版本的Native上去,让他做更新。2、后台对这个增量包的到达率或者成功的更新做一个统计。这是比较复杂的。
离线更新的机制:浏览器或Native去访问一个链接,就会直接访问。如果有静态资源的话,Native就会直接读取,而浏览器的内容全部来源于网上。同样的请求,Native的是以file的形式读取的。
浏览器:

Native:

这种file的形式是将静态资源存到Native本地,H5请求的时候他会发出一个请求,前端他会拦截这个请求,file下有一个path,他是在这里读取的,所以根本没有经过请求,手机渲染是非常快的。

页面中有一个MD5文件,Native和pc中的不一样,这里为什么不一样?
因为pc是实时请求的,Native是打的一个离线包进去,如果没什么bug不需要更新的话,他读取的离线包是之前的。

如果app有20到30个业务频道,离线包就很大。如果一个频道2M大小的话,20个频道就是40M。如果我们的容器更多的用于第三方的网站,那我自己的app就会大很多。我们不希望我们的主app太大,这时我们核心的框架比如说框架层或者css这样的全局的东西存在本地,业务开发的话很多资源尽量是走线上,框架的话js和css一共100-200k,页面的东西只有几十k,这样读到缓存 读取本地文件的话下载下来还是很快的。这是个取舍,如果只有10个频道的话,可以走增量更新,把所有文件全部打到本地,不要把图片文件打到本地。
Hybrid设计--离线更新的更多相关文章
- Debian 利用 iso 镜像完全离线更新 apt-cdrom
1 目的 在日常的 linux 服务器管理中,出于某些考虑,服务器要求与 Internet 完全隔离. 这使得我们对系统的更新和软件包的升级感到无比头疼. 下面介绍的这种方法,采用 ISO 文件,进行 ...
- 怎样完整地离线更新并升级基于 Debian 的操作系统
不久之前我已经向你展示了如何在任意离线的 Ubuntu 和 Arch Linux 操作系统上安装软件. 今天,我们将会看看如何完整地离线更新并升级基于 Debian 的操作系统. 和之前所述方法的不同 ...
- Nexus 离线更新中央仓库索引
nexus可以在线更新中央仓库索引,但是更新速度慢,而且很有可能下载的索引不全.下面介绍一种离线更新中央仓库索引的方式,速度快并且可靠. 1.访问http://repo.maven.apache.or ...
- 使用HTML5 WebDataBase设计离线数据库
基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能,那么使用Web DataBase,可以使你的应用程序无论是在离 ...
- 离线更新VSAN HCL数据库
从VSAN 6.0起,VSAN提供了Health Check功能,其中就包括VSAN HCL数据库,通过此运行状况检查验证用于 HCL 检查的 VMware 兼容性指南数据库是否是最新的.这些 VCG ...
- Hybrid设计--如何落地一个Hybrid项目
前后分离 -> 统一前端框架 -> 同一个账号体系 -> 登录注册的公共页 -> 有了这些公共业务后 推行 -> Hybrid 技术 底层容器开发出来后 -&g ...
- Hybrid设计--Hybrid中Native能力的设计
稍微成熟的团队,header一定是不利于业务的UI组件,这个组件会封装在view层,方便前端使用.对业务前端开发来说,不用关注header是如何实现的,只用框架层释放的API.(一个前端有一个自己的U ...
- Hybrid设计--账号体系的建设
前后端分离:开发效率高,没有SEO 现在是重客户端设计:交互和业务逻辑是前端来写,适合做前后端分离.对前端更友好,提高了效率. 传统模式开发:整个业务逻辑是server端写,不适合做前后端分离.ser ...
- Hybrid设计--核心交互
普通网页中跳转使用a标签,这里我们要对跳转进行更多的干预,所以将全站的跳转收口到框架层,用forward去实现.拒绝用a和window.location.如果我想对所有跳转做一个处理,开动画或者对跳转 ...
随机推荐
- SecureCRT安装使用
● 解决自动断开 echo "TMOUT=6000 " >>/etc/profile source /etc/profile 在连接上右键属性,然后“终端”,“反空闲” ...
- bytes和str的区别与转换
bytes和str的区别 1.英文 b'alex'的表现形式与str没什么两样 2.中文 b'\xe4\xb8\xad'这是一个汉字在utf-8的bytes表现形式 3.中文 b'\xce\xd2'这 ...
- mapReducer 去重副的单词
需求是: 统计输出某目录文件的所有单词,去除重复的单词. mapper阶段正常做map工作,映射. 切割单词. <key,value> --> <word,nullWrita ...
- [No000010A]Git3/9-创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- MySQL命令:增删与改
首先是对数据库的修改: --删除一个叫bbb111的数据库 DROP DATABASE bbb111; 对某数据库里一个表的修改: 重命名一张表 -- 三种效果一样的形式 RENAME TABLE 原 ...
- 转:JDK动态代理为什么必须用接口以及与CGLIB的对比
参考链接: JDK动态代理为什么必须用接口以及与CGLIB的对比 文章中提到:试验了JDK动态代理与CGLIB动态代理.从Spring的AOP框架介绍中得知对于使用接口的类,Spring使用JDK动态 ...
- centos 安装ss
yum install python-setuptools && easy_install pip pip install shadowsocks vi /etc/shadowsock ...
- kubernetes的CI/CD
部署流程:把编码上传到gitlab上,使用webhook链接jenkins自动去编译docker镜像,然后上传到harbor本地docker镜像库中,再自动下载docker镜像,使用k8s控制dock ...
- Webpack傻瓜式指南(转)
add by zhj: 作者写了三篇文章,这是第一篇幅,另外两篇参见 https://zhuanlan.zhihu.com/p/20397902 https://zhuanlan.zhihu.com/ ...
- 页面调用qq
tencent://message/?uin=516999605&Site=&Menu=yes