一种单页面应用升级方法及装置.pdf

上传人:00****42 文档编号:6062457 上传时间:2019-04-05 格式:PDF 页数:21 大小:1.52MB
返回 下载 相关 举报
摘要
申请专利号:

CN201511030920.9

申请日:

2015.12.30

公开号:

CN106933614A

公开日:

2017.07.07

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 9/445申请日:20151230|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

广州爱九游信息技术有限公司

发明人:

吴亮; 郭艺强

地址:

510665 广东省广州市天河区建中路64、66号西902之二房

优先权:

专利代理机构:

北京超凡志成知识产权代理事务所(普通合伙) 11371

代理人:

王术兰

PDF下载: PDF下载
内容摘要

本发明提供了一种单页面应用升级方法及装置。其中,该方法包括:发送单页面应用对应的数据请求给服务端,数据请求包括本地缓存的单页面应用的渲染脚本的版本号;接收服务端根据版本号返回的升级响应信息;若升级响应信息包括差分资源文件,则根据差分资源文件、本地缓存的单页面应用的渲染脚本及静态资源,对单页面应用进行升级。本发明前端本地缓存了单页面应用的静态资源和渲染脚本,每次升级时只从服务端获取渲染脚本对应的差分资源文件,而差分资源文件的数据量非常小,如此每次升级时服务端只需要下发差分资源文件,大大节省了数据流量,且传输速度快,提高了单页面应用的升级效率。

权利要求书

1.一种单页面应用升级方法,其特征在于,所述方法包括:
发送单页面应用对应的数据请求给服务端,所述数据请求包括
本地缓存的所述单页面应用的渲染脚本的版本号;
接收所述服务端根据所述版本号返回的升级响应信息;
若所述升级响应信息包括差分资源文件,则根据所述差分资源
文件、本地缓存的所述单页面应用的渲染脚本及静态资源,对所述
单页面应用进行升级。
2.根据权利要求1所述的方法,其特征在于,所述根据所述差
分资源文件、本地缓存的所述单页面应用的渲染脚本及静态资源,
对所述单页面应用进行升级,包括:
根据所述差分资源文件和本地缓存的渲染脚本,通过预设合并
算法生成新的渲染脚本;
根据所述新的渲染脚本和本地缓存的所述单页面应用的静态资
源,生成所述单页面应用对应的升级后的资源文件。
3.根据权利要求2所述的方法,其特征在于,若所述升级响应
信息还包括最新版本的渲染脚本的长度值和消息摘要算法md5值;
所述方法还包括:
通过md5算法对生成的所述新的渲染脚本进行运算得到所述
新的渲染脚本的md5值,及获取所述新的渲染脚本的长度值;
根据生成的所述md5值、获取的所述长度值及所述升级响应信
息包括的md5值和长度值,对所述新的渲染脚本进行版本验证;
若验证失败,则向所述服务端发送获取差分资源文件的请求。
4.根据权利要求1所述的方法,其特征在于,所述发送单页面
应用对应的数据请求给服务端之前,还包括:
当首次访问单页面应用的页面时,从服务端获取所述单页面应
用的全部资源文件;
从所述全部资源文件中提取不发生变化的部分资源文件作为所
述单页面应用的静态资源,将所述静态资源固化存储在本地;
将所述全部资源文件中除所述静态资源外的资源文件确定为所
述单页面应用的渲染脚本,将所述渲染脚本缓存在本地缓存中。
5.根据权利要求1所述的方法,其特征在于,所述升级响应信
息包括页面数据,所述方法还包括:
对所述单页面应用进行升级后,根据本地缓存的所述单页面应
用的静态资源和升级后的渲染脚本,对所述页面数据进行渲染,显
示升级后所述单页面应用的页面。
6.根据权利要求1所述的方法,其特征在于,所述升级响应信
息包括用于指示当前已缓存最新版本的指示信息和页面数据,所述
方法还包括:
根据本地缓存的所述单页面应用的渲染脚本和静态资源,渲染
所述页面数据,显示所述单页面应用的页面。
7.一种单页面应用升级方法,其特征在于,所述方法包括:
接收前端发送的单页面应用对应的数据请求,所述数据请求包
括所述前端缓存的所述单页面应用的渲染脚本的版本号;
获取所述单页面应用的渲染脚本的最新版本号;
根据所述最新版本号和所述数据请求包括的版本号,生成升级
响应信息;
向所述前端发送所述升级响应信息,以使所述前端根据所述升
级响应信息确定缓存所述单页面应用的最新版本的资源文件。
8.根据权利要求7所述的方法,其特征在于,所述根据所述最
新版本号和所述数据请求包括的版本号,生成升级响应信息,包括:
比较所述最新版本号和所述数据请求包括的版本号是否相同;
如果是,则生成用于指示当前已缓存最新版本的指示信息,将
所述指示信息确定为升级响应信息;
如果否,则根据所述最新版本号和所述数据请求包括的版本号,
生成所述数据请求包括的版本号对应的差分资源文件,将所述差分
资源文件确定为升级响应信息。
9.根据权利要求8所述的方法,其特征在于,所述根据所述最
新版本号和所述数据请求包括的版本号,生成所述数据请求包括的
版本号对应的差分资源文件,包括:
根据所述最新版本号获取最新版本的渲染脚本;
根据所述数据请求包括的版本号获取对应版本的渲染脚本;
对所述数据请求包括的版本号对应的渲染脚本和所述最新版本
的渲染脚本进行差分运算,得到所述数据请求包括的版本号对应的
差分资源文件。
10.根据权利要求8所述的方法,其特征在于,所述根据所述
最新版本号和所述数据请求包括的版本号,生成所述数据请求包括
的版本号对应的差分资源文件,包括:
根据所述最新版本号和所述数据请求包括的版本号,从相邻版
本号与差分资源子文件的对应关系中,获取从所述数据请求包括的
版本号到所述最新版本号之间各前后相邻的两个版本号对应的差分
资源子文件;
将获取的各差分资源子文件组成所述数据请求包括的版本号对
应的差分资源文件。
11.根据权利要求9或10所述的方法,其特征在于,所述方法
还包括:
获取所述最新版本号对应的最新版本的渲染脚本的长度值;
通过md5算法对所述最新版本的渲染脚本进行运算,得到所述
最新版本的渲染脚本的md5值;
获取所述单页面应用的页面数据;
将所述长度值、所述md5值和所述页面数据添加到所述升级响
应信息中。
12.一种单页面应用升级装置,其特征在于,所述装置包括:
发送模块,用于发送单页面应用对应的数据请求给服务端,所
述数据请求包括本地缓存的所述单页面应用的渲染脚本的版本号;
接收模块,用于接收所述服务端根据所述版本号返回的升级响
应信息;
升级模块,用于当所述升级响应信息包括差分资源文件时,根
据所述差分资源文件、本地缓存的所述单页面应用的渲染脚本及静
态资源,对所述单页面应用进行升级。
13.根据权利要求12所述的装置,其特征在于,所述升级模
块包括:
第一生成单元,用于根据所述差分资源文件和本地缓存的渲染
脚本,通过预设合并算法生成新的渲染脚本;
第二生成单元,用于根据所述新的渲染脚本和本地缓存的所述
单页面应用的静态资源,生成所述单页面应用对应的升级后的资源
文件。
14.根据权利要求13所述的装置,其特征在于,若所述升级
响应信息还包括最新版本的渲染脚本的长度值和消息摘要算法md5
值;所述装置还包括:
验证模块,用于通过md5算法对生成的所述新的渲染脚本进行
运算得到所述新的渲染脚本的md5值,及获取所述新的渲染脚本的
长度值;根据生成的所述md5值、获取的所述长度值及所述升级响
应信息包括的md5值和长度值,对所述新的渲染脚本进行版本验证;
若验证失败,则向所述服务端发送获取差分资源文件的请求。
15.根据权利要求12所述的装置,其特征在于,所述装置还
包括:
存储模块,用于当首次访问单页面应用的页面时,从服务端获
取所述单页面应用的全部资源文件;从所述全部资源文件中提取不
发生变化的部分资源文件作为所述单页面应用的静态资源,将所述
静态资源固化存储在本地;将所述全部资源文件中除所述静态资源
外的资源文件确定为所述单页面应用的渲染脚本,将所述渲染脚本
缓存在本地缓存中。
16.根据权利要求12所述的装置,其特征在于,所述升级响
应信息包括页面数据,所述装置还包括:
第一显示模块,用于对所述单页面应用进行升级后,根据本地
缓存的所述单页面应用的静态资源和升级后的渲染脚本,对所述页
面数据进行渲染,显示升级后所述单页面应用的页面。
17.根据权利要求12所述的装置,其特征在于,所述升级响
应信息包括用于指示当前已缓存最新版本的指示信息和页面数据,
所述装置还包括:
第二显示模块,用于根据本地缓存的所述单页面应用的渲染脚
本和静态资源,渲染所述页面数据,显示所述单页面应用的页面。
18.一种单页面应用升级装置,其特征在于,所述装置包括:
接收模块,用于接收前端发送的单页面应用对应的数据请求,
所述数据请求包括所述前端缓存的所述单页面应用的渲染脚本的版
本号;
获取模块,用于获取所述单页面应用的渲染脚本的最新版本号;
生成模块,用于根据所述最新版本号和所述数据请求包括的版
本号,生成升级响应信息;
发送模块,用于向所述前端发送所述升级响应信息,以使所述
前端根据所述升级响应信息确定缓存所述单页面应用的最新版本的
资源文件。
19.根据权利要求18所述的装置,其特征在于,所述生成模
块包括:
比较单元,用于比较所述最新版本号和所述数据请求包括的版
本号是否相同;
第一生成单元,用于当所述比较单元比较出所述最新版本号和
所述数据请求包括的版本号相同时,生成用于指示当前已缓存最新
版本的指示信息,将所述指示信息确定为升级响应信息;
第二生成单元,用于如果当所述比较单元比较出所述最新版本
号和所述数据请求包括的版本号不相同时,根据所述最新版本号和
所述数据请求包括的版本号,生成所述数据请求包括的版本号对应
的差分资源文件,将所述差分资源文件确定为升级响应信息。
20.根据权利要求19所述的装置,其特征在于,所述第二生
成单元包括:
第一获取子单元,用于根据所述最新版本号获取最新版本的渲
染脚本;根据所述数据请求包括的版本号获取对应版本的渲染脚本;
差分运算子单元,用于对所述数据请求包括的版本号对应的渲
染脚本和所述最新版本的渲染脚本进行差分运算,得到所述数据请
求包括的版本号对应的差分资源文件。
21.根据权利要求19所述的装置,其特征在于,所述第二生
成单元包括:
第二获取子单元,用于根据所述最新版本号和所述数据请求包
括的版本号,从相邻版本号与差分资源子文件的对应关系中,获取
从所述数据请求包括的版本号到所述最新版本号之间各前后相邻的
两个版本号对应的差分资源子文件;
组成子单元,用于将获取的各差分资源子文件组成所述数据请
求包括的版本号对应的差分资源文件。
22.根据权利要求20或21所述的装置,其特征在于,所述装
置还包括:
添加模块,用于获取所述最新版本号对应的最新版本的渲染脚
本的长度值;通过md5算法对所述最新版本的渲染脚本进行运算,
得到所述最新版本的渲染脚本的md5值;获取所述单页面应用的页
面数据;将所述长度值、所述md5值和所述页面数据添加到所述升
级响应信息中。

说明书

一种单页面应用升级方法及装置

技术领域

本发明涉及互联网通信领域,具体而言,涉及一种单页面应用
升级方法及装置。

背景技术

单页面应用是只有一张web(互联网)页面的应用,单页面应
用具有快速发布的特点,一般每隔几天或一周就会发布一个版本,
当发布新版本的单页面应用时,需要对旧版本的单页面应用进行升
级。

当前,相关技术中提供了一种单页面应用升级方法,包括:当
用户登录单页面应用的页面时,前端发送该单页面应用的版本号给
服务器。服务器获取该单页面应用的最新版本号,比较该最新版本
号与前端发送的版本号是否相同,并在比较出两者不相同时,获取
该最新版本号对应的该单页面应用的全部资源数据,将获取的全部
资源数据发送给前端。前端根据服务器发送的全部资源数据对该单
页面应用进行升级。

由于单页面应用的版本更新频繁,每次更新可能只改变单页面
应用中的部分数据,上述相关技术每次对单页面应用升级时,服务
器都要下发最新版本的全部资源数据,如此会浪费大量的数据流量,
且在网络环境差时传输速度很慢,导致单页面应用的升级效率很低。

发明内容

有鉴于此,本发明实施例的目的在于提供一种单页面应用升级
方法及装置,实现每次升级时只从服务端获取渲染脚本对应的差分
资源文件,节省数据流量,且传输速度快,提高了单页面应用的升
级效率。

第一方面,本发明实施例提供了一种单页面应用升级方法,所
述方法包括:

发送单页面应用对应的数据请求给服务端,所述数据请求包括
本地缓存的所述单页面应用的渲染脚本的版本号;

接收所述服务端根据所述版本号返回的升级响应信息;

若所述升级响应信息包括差分资源文件,则根据所述差分资源
文件、本地缓存的所述单页面应用的渲染脚本及静态资源,对所述
单页面应用进行升级。

结合第一方面,本发明实施例提供了上述第一方面的第一种可
能的实现方式,其中,所述根据所述差分资源文件、本地缓存的所
述单页面应用的渲染脚本及静态资源,对所述单页面应用进行升级,
包括:

根据所述差分资源文件和本地缓存的渲染脚本,通过预设合并
算法生成新的渲染脚本;

根据所述新的渲染脚本和本地缓存的所述单页面应用的静态资
源,生成所述单页面应用对应的升级后的资源文件。

结合第一方面的第一种可能的实现方式,本发明实施例提供了
上述第一方面的第二种可能的实现方式,其中,若所述升级响应信
息还包括最新版本的渲染脚本的长度值和消息摘要算法md5值;所
述方法还包括:

通过md5算法对生成的所述新的渲染脚本进行运算得到所述
新的渲染脚本的md5值,及获取所述新的渲染脚本的长度值;

根据生成的所述md5值、获取的所述长度值及所述升级响应信
息包括的md5值和长度值,对所述新的渲染脚本进行版本验证;

若验证失败,则向所述服务端发送获取差分资源文件的请求。

结合第一方面,本发明实施例提供了上述第一方面的第三种可
能的实现方式,其中,所述发送单页面应用对应的数据请求给服务
端之前,还包括:

当首次访问单页面应用的页面时,从服务端获取所述单页面应
用的全部资源文件;

从所述全部资源文件中提取不发生变化的部分资源文件作为所
述单页面应用的静态资源,将所述静态资源固化存储在本地;

将所述全部资源文件中除所述静态资源外的资源文件确定为所
述单页面应用的渲染脚本,将所述渲染脚本缓存在本地缓存中。

结合第一方面,本发明实施例提供了上述第一方面的第四种可
能的实现方式,其中,所述升级响应信息包括页面数据,所述方法
还包括:

对所述单页面应用进行升级后,根据本地缓存的所述单页面应
用的静态资源和升级后的渲染脚本,对所述页面数据进行渲染,显
示升级后所述单页面应用的页面。

结合第一方面,本发明实施例提供了上述第一方面的第五种可
能的实现方式,其中,所述升级响应信息包括用于指示当前已缓存
最新版本的指示信息和页面数据,所述方法还包括:

根据本地缓存的所述单页面应用的渲染脚本和静态资源,渲染
所述页面数据,显示所述单页面应用的页面。

第二方面,本发明实施例提供了一种单页面应用升级方法,所
述方法包括:

接收前端发送的单页面应用对应的数据请求,所述数据请求包
括所述前端缓存的所述单页面应用的渲染脚本的版本号;

获取所述单页面应用的渲染脚本的最新版本号;

根据所述最新版本号和所述数据请求包括的版本号,生成升级
响应信息;

向所述前端发送所述升级响应信息,以使所述前端根据所述升
级响应信息确定缓存所述单页面应用的最新版本的资源文件。

结合第二方面,本发明实施例提供了上述第二方面的第一种可
能的实现方式,其中,所述根据所述最新版本号和所述数据请求包
括的版本号,生成升级响应信息,包括:

比较所述最新版本号和所述数据请求包括的版本号是否相同;

如果是,则生成用于指示当前已缓存最新版本的指示信息,将
所述指示信息确定为升级响应信息;

如果否,则根据所述最新版本号和所述数据请求包括的版本号,
生成所述数据请求包括的版本号对应的差分资源文件,将所述差分
资源文件确定为升级响应信息。

结合第二方面的第一种可能的实现方式,本发明实施例提供了
上述第二方面的第二种可能的实现方式,其中,所述根据所述最新
版本号和所述数据请求包括的版本号,生成所述数据请求包括的版
本号对应的差分资源文件,包括:

根据所述最新版本号获取最新版本的渲染脚本;

根据所述数据请求包括的版本号获取对应版本的渲染脚本;

对所述数据请求包括的版本号对应的渲染脚本和所述最新版本
的渲染脚本进行差分运算,得到所述数据请求包括的版本号对应的
差分资源文件。

结合第二方面的第一种可能的实现方式,本发明实施例提供了
上述第二方面的第三种可能的实现方式,其中,所述根据所述最新
版本号和所述数据请求包括的版本号,生成所述数据请求包括的版
本号对应的差分资源文件,包括:

根据所述最新版本号和所述数据请求包括的版本号,从相邻版
本号与差分资源子文件的对应关系中,获取从所述数据请求包括的
版本号到所述最新版本号之间各前后相邻的两个版本号对应的差分
资源子文件;

将获取的各差分资源子文件组成所述数据请求包括的版本号对
应的差分资源文件。

结合第二方面,本发明实施例提供了上述第二方面的第四种可
能的实现方式,其中,所述方法还包括:

获取所述最新版本号对应的最新版本的渲染脚本的长度值;

通过md5算法对所述最新版本的渲染脚本进行运算,得到所述
最新版本的渲染脚本的md5值;

获取所述单页面应用的页面数据;

将所述长度值、所述md5值和所述页面数据添加到所述升级响
应信息中。

第三方面,本发明实施例提供了一种单页面应用升级装置,所
述装置包括:

发送模块,用于发送单页面应用对应的数据请求给服务端,所
述数据请求包括本地缓存的所述单页面应用的渲染脚本的版本号;

接收模块,用于接收所述服务端根据所述版本号返回的升级响
应信息;

升级模块,用于当所述升级响应信息包括差分资源文件时,根
据所述差分资源文件、本地缓存的所述单页面应用的渲染脚本及静
态资源,对所述单页面应用进行升级。

结合第三方面,本发明实施例提供了上述第三方面的第一种可
能的实现方式,其中,所述升级模块包括:

第一生成单元,用于根据所述差分资源文件和本地缓存的渲染
脚本,通过预设合并算法生成新的渲染脚本;

第二生成单元,用于根据所述新的渲染脚本和本地缓存的所述
单页面应用的静态资源,生成所述单页面应用对应的升级后的资源
文件。

结合第三方面的第一种可能的实现方式,本发明实施例提供了
上述第三方面的第二种可能的实现方式,其中,若所述升级响应信
息还包括最新版本的渲染脚本的长度值和消息摘要算法md5值;所
述装置还包括:

验证模块,用于通过md5算法对生成的所述新的渲染脚本进行
运算得到所述新的渲染脚本的md5值,及获取所述新的渲染脚本的
长度值;根据生成的所述md5值、获取的所述长度值及所述升级响
应信息包括的md5值和长度值,对所述新的渲染脚本进行版本验证;
若验证失败,则向所述服务端发送获取差分资源文件的请求。

结合第三方面,本发明实施例提供了上述第三方面的第三种可
能的实现方式,其中,所述装置还包括:

存储模块,用于当首次访问单页面应用的页面时,从服务端获
取所述单页面应用的全部资源文件;从所述全部资源文件中提取不
发生变化的部分资源文件作为所述单页面应用的静态资源,将所述
静态资源固化存储在本地;将所述全部资源文件中除所述静态资源
外的资源文件确定为所述单页面应用的渲染脚本,将所述渲染脚本
缓存在本地缓存中。

结合第三方面,本发明实施例提供了上述第三方面的第四种可
能的实现方式,其中,所述升级响应信息包括页面数据,所述装置
还包括:

第一显示模块,用于对所述单页面应用进行升级后,根据本地
缓存的所述单页面应用的静态资源和升级后的渲染脚本,对所述页
面数据进行渲染,显示升级后所述单页面应用的页面。

结合第三方面,本发明实施例提供了上述第三方面的第五种可
能的实现方式,其中,所述升级响应信息包括用于指示当前已缓存
最新版本的指示信息和页面数据,所述装置还包括:

第二显示模块,用于根据本地缓存的所述单页面应用的渲染脚
本和静态资源,渲染所述页面数据,显示所述单页面应用的页面。

第四方面,本发明实施例提供了一种单页面应用升级装置,所
述装置包括:

接收模块,用于接收前端发送的单页面应用对应的数据请求,
所述数据请求包括所述前端缓存的所述单页面应用的渲染脚本的版
本号;

获取模块,用于获取所述单页面应用的渲染脚本的最新版本号;

生成模块,用于根据所述最新版本号和所述数据请求包括的版
本号,生成升级响应信息;

发送模块,用于向所述前端发送所述升级响应信息,以使所述
前端根据所述升级响应信息确定缓存所述单页面应用的最新版本的
资源文件。

结合第四方面,本发明实施例提供了上述第四方面的第一种可
能的实现方式,其中,所述生成模块包括:

比较单元,用于比较所述最新版本号和所述数据请求包括的版
本号是否相同;

第一生成单元,用于当所述比较单元比较出所述最新版本号和
所述数据请求包括的版本号相同时,生成用于指示当前已缓存最新
版本的指示信息,将所述指示信息确定为升级响应信息;

第二生成单元,用于如果当所述比较单元比较出所述最新版本
号和所述数据请求包括的版本号不相同时,根据所述最新版本号和
所述数据请求包括的版本号,生成所述数据请求包括的版本号对应
的差分资源文件,将所述差分资源文件确定为升级响应信息。

结合第四方面的第一种可能的实现方式,本发明实施例提供了
上述第四方面的第二种可能的实现方式,其中,所述第二生成单元
包括:

第一获取子单元,用于根据所述最新版本号获取最新版本的渲
染脚本;根据所述数据请求包括的版本号获取对应版本的渲染脚本;

差分运算子单元,用于对所述数据请求包括的版本号对应的渲
染脚本和所述最新版本的渲染脚本进行差分运算,得到所述数据请
求包括的版本号对应的差分资源文件。

结合第四方面的第一种可能的实现方式,本发明实施例提供了
上述第四方面的第三种可能的实现方式,其中,所述第二生成单元
包括:

第二获取子单元,用于根据所述最新版本号和所述数据请求包
括的版本号,从相邻版本号与差分资源子文件的对应关系中,获取
从所述数据请求包括的版本号到所述最新版本号之间各前后相邻的
两个版本号对应的差分资源子文件;

组成子单元,用于将获取的各差分资源子文件组成所述数据请
求包括的版本号对应的差分资源文件。

结合第四方面,本发明实施例提供了上述第四方面的第四种可
能的实现方式,其中,所述装置还包括:

添加模块,用于获取所述最新版本号对应的最新版本的渲染脚
本的长度值;通过md5算法对所述最新版本的渲染脚本进行运算,
得到所述最新版本的渲染脚本的md5值;获取所述单页面应用的页
面数据;将所述长度值、所述md5值和所述页面数据添加到所述升
级响应信息中。

在本发明实施例提供的方法及装置中,发送单页面应用对应
的数据请求给服务端,数据请求包括本地缓存的单页面应用的渲染
脚本的版本号;接收服务端根据版本号返回的升级响应信息;若升
级响应信息包括差分资源文件,则根据差分资源文件、本地缓存的
单页面应用的渲染脚本及静态资源,对单页面应用进行升级。本发
明前端本地缓存了单页面应用的静态资源和渲染脚本,每次升级时
只从服务端获取渲染脚本对应的差分资源文件,而差分资源文件的
数据量非常小,如此每次升级时服务端只需要下发差分资源文件,
大大节省了数据流量,且传输速度快,提高了单页面应用的升级效
率。

为使本发明的上述目的、特征和优点能更明显易懂,下文
特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例
中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了
本发明的某些实施例,因此不应被看作是对范围的限定,对于本领
域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他相关的附图。

图1A示出了本发明实施例1所提供的一种单页面应用升级方
法的信令交互图;

图1B示出了本发明实施例1所提供的一种前端与服务端之间
交互的结构示意图;

图2示出了本发明实施例2所提供的一种单页面应用升级装置
的装置结构图;

图3示出了本发明实施例3所提供的一种单页面应用升级装置
的装置结构图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方
案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一
部分实施例,而不是全部的实施例。通常在此处附图中描述和示出
的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,
以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要
求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于
本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下
所获得的所有其他实施例,都属于本发明保护的范围。

考虑到单页面应用的版本更新频繁,且每次更新可能只改变单
页面应用中的部分数据,而相关技术每次对单页面应用升级时,服
务器都要下发最新版本的全部资源数据,如此会浪费大量的数据流
量,且在网络环境差时传输速度很慢,导致单页面应用的升级效率
很低。基于此,本发明实施例提供了一种单页面应用升级方法及装
置。下面通过实施例进行描述。

实施例1

本发明实施例提供了一种单页面应用升级方法。单页面应用为
只有一个web页面的应用,如网页邮件即为一种单页面应用。单页
面应用具有快速发布、更新频繁的特点,在单页面应用发布新的版
本时,可以通过本发明实施例提供的方法来对单页面应用进行升级。

单页面应用一般采用web app(基于web的系统或应用)或者
hybrid app(混合模式移动应用)的方式开发。对于采用web app开
发的单页面应用,可以通过浏览器客户端来登录该单页面应用。而
采用hybrid app开发的单页面应用在终端本地有单页面应用对应的
单页面客户端,可以通过该单页面客户端来登录该单页面应用。在
本发明实施例中,将浏览器客户端及单页面客户端统称为前端,对
于上述两种方式开发的单页面应用,前端都可以通过本发明实施例
提供的升级方法来实现单页面应用的升级。

在用户通过前端首次访问单页面应用的页面时,前端从服务端
获取单页面应用的全部资源文件,从全部资源文件中提取不发生变
化的部分资源文件作为单页面应用的静态资源,将静态资源固化存
储在本地,将全部资源文件中除静态资源外的资源文件确定为单页
面应用的渲染脚本,将渲染脚本缓存在本地缓存中。

单页面应用的全部资源文件中包括图片、CSS(Cascading Style
Sheets,层叠样式表)、基础脚本框架和渲染整个页面的脚本字符串
等。其中,图片、CSS和基础脚本框架等一般不会发生改变,而渲
染整个页面的脚本字符串可能会经常发生改变。前端提取全部资源
文件中的图片、CSS和基础脚本框架等组成单页面应用的静态资源,
将全部资源文件中剩余的渲染整个页面的脚本字符串等作为单页面
应用的渲染脚本。如此将单页面应用的全部资源文件中的变化部分
和不变化部分进行分离,后续在单页面升级时,只需从服务端获取
变化部分即可。

对于按照不同方式开发的单页面应用,前端将静态资源固化存
储在本地的方式可以不同。当前端为浏览器客户端时,浏览器客户
端将不发生变化的部分提取出来,作为静态资源固定存储在终端本
地,或者将静态资源存储在CDN(Content Delivery Network,内容
分发网络)服务器中。当前端为单页面客户端时,单页面客户端可
以将静态资源直接放到本地单页面客户端的安装文件中。

另外,单页面应用的全部资源文件中包括单页面应用的版本号,
前端将该版本号作为经常发生变化的渲染脚本的版本号,将该版本
号存储在渲染脚本中。

在前端存储单页面应用的静态资源和渲染脚本之后,每次通过
前端登录单页面应用的页面时,通过如下步骤101-107的操作来确
定该单页面应用是否发布了新版本,并在确定发布了新版本时,对
单页面应用进行升级,如图1A所示。

步骤101:前端发送单页面应用对应的数据请求给服务端,该
数据请求包括本地缓存的单页面应用的渲染脚本的版本号。

上述数据请求中还包括单页面应用的应用标识,该应用标识可
以为单页面应用的页面地址或该单页面应用的名称等。

当用户通过前端登录单页面应用的页面时,前端获取该单页面
应用的应用标识,从本地缓存的该单页面应用的渲染脚本中获取该
渲染脚本的版本号。前端发送数据请求给服务端,在该数据请求中
携带获取的该单页面应用的应用标识和渲染脚本的版本号。

步骤102:服务端接收前端发送的该单页面应用对应的数据请
求,获取该单页面应用的渲染脚本的最新版本号。

在本发明实施例中,技术人员首次开发一个单页面应用后,可
以将该单页面应用的全部资源文件上传到服务端,服务端将该全部
资源文件分离为静态资源和渲染脚本,分别存储该单页面应用的应
用标识与静态资源的对应关系,及应用标识、渲染脚本与存储时间
的对应关系。之后技术人员对已存在的单页面应用进行再次开发时,
可以仅对该单页面应用的渲染脚本进行改进,如此产生新版本的单
页面应用时,技术人员将新版本的渲染脚本上传给服务端。服务端
为该新版本的渲染脚本分配新的版本号,将该新的版本号添加到该
新版本的渲染脚本中,然后将当前时间作为存储该新版本的渲染脚
本的存储时间,根据该单页面应用的应用标识将该新版本的渲染脚
本及存储时间存储在应用标识、渲染脚本与存储时间的对应关系中。

服务端接收到前端发送的数据请求后,根据该数据请求包括的
单页面应用的应用标识,从应用标识、渲染脚本与存储时间的对应
关系中获取该应用标识对应的每个存储时间,从获取的每个存储时
间中确定离当前时间最近的存储时间,从应用标识、渲染脚本与存
储时间的对应关系中获取该离当前时间最近的存储时间对应的渲染
脚本,获取该渲染脚本中的版本号,将该版本号确定为该单页面应
用的渲染脚本的最新版本号。

在本发明实施例,服务端还可以按照预设编号顺序为单页面应
用每个版本的渲染脚本分配版本号。该预设编号顺序可以为按照数
字从小到大的顺序进行分配,或者按照字母从前往后的顺序分配。
若按照数字从小到大的顺序进行分配,则服务端可以获取数字最大
的版本号作为单页面应用的渲染脚本的最新版本号。若按照字母从
前往后的顺序分配,则服务端可以获取字母最大的版本号作为单页
面应用的渲染脚本的最新版本号。

另外,服务端还可以存储应用标识与最新版本号的对应关系,
接收到前端发送的数据请求后,根据该数据请求包括的单页面应用
的应用标识,从应用标识与最新版本号的对应关系中,获取该单页
面应用的渲染脚本的最新版本号。

步骤103:服务端根据获取的最新版本号和该数据请求包括的
版本号,生成升级响应信息。

服务端比较获取的最新版本号和该数据请求包括的版本号是否
相同;如果是,则生成用于指示当前已缓存最新版本的指示信息,
将该指示信息确定为升级响应信息;如果否,则根据最新版本号和
该数据请求包括的版本号,生成该数据请求包括的版本号对应的差
分资源文件,将该差分资源文件确定为升级响应信息。

上述差分资源文件为最新版本的渲染脚本与该数据请求包括的
版本号对应的渲染脚本之间发生改变的部分资源文件。在本发明实
施例中可以直接对最新版本的渲染脚本与该数据请求包括的版本号
对应的渲染脚本进行差分运算来生成差分资源文件,具体包括:

服务端根据最新版本号获取最新版本的渲染脚本;根据数据请
求包括的版本号获取对应版本的渲染脚本;对该数据请求包括的版
本号对应的渲染脚本和最新版本的渲染脚本进行差分运算,得到该
数据请求包括的版本号对应的差分资源文件。

服务端查询存储的该单页面应用的每个渲染脚本,从每个渲染
脚本中获取包含该最新版本号的渲染脚本,以及从每个渲染脚本中
获取包含该数据请求包括的版本号对应的渲染脚本。

在本发明实施例中,可以通过diff命令比较文本文件等差量生
成算法来生成差分资源文件。为了便于理解生成差分资源文件的过
程,下面举例进行说明。例如,假设最新版本号为2.0,版本2.0的
渲染脚本为字符串“farests”,该数据请求包括的版本号为1.0,版本
1.0对应的渲染脚本为字符串“fortest”,则通过diff命令对版本2.0
的渲染脚本“farests”和版本1.0的渲染脚本“fortest”进行差分运算,
差分运算的结果代码如下所示,其中equal表示相等,replace表示
需要替换,delete表示需要删除,insert表示需要插入,如下代码中
数组的第2和第3个值表示版本1.0的字符串的下标,数组的最后2
个值表示版本2.0字符串的下标。

{

{'equal',0,1,0,1};

{'replace',1,2,1,2};

{'equal',2,3,2,3};

{'delete',3,4,3,3};

{'equal',4,7,3,6};

{'insert',7,7,6,7};

}

其中,{'equal',0,1,0,1}表示版本1.0的字符串“fortest”从下标
0到下标1的字符f与版本2.0的字符串“farests”从下标0到下标
1的字符f是一样的。{'replace',1,2,1,2}表示版本1.0的字符串“fortest”
从下标1到下标2的字符o,需要用版本2.0的字符串“farests”中
从下标1到下标2的字符a进行替换。{'equal',2,3,2,3}表示版本1.0
的字符串“fortest”从下标2到下标3的字符r与版本2.0的字符串
“farests”从下标2到下标3的字符r是一样的。{'delete',3,4,3,3}表
示版本1.0的字符串“fortest”中从下标3到下标4的字符t需要删
除。{'equal',4,7,3,6}表示版本1.0的字符串“fortest”从下标4到下
标7的字符est与版本2.0的字符串“farests”从下标3到下标6的
字符est是一样的。{'insert',7,7,6,7}表示在版本1.0的字符串“fortest”
的最后插入版本2.0的字符串中“farests”从下标6到下标7的字符
s。

进行上述差分运算之后,可以将上述代码所示的差分运算结果
作为最新版本2.0的渲染脚本与该数据请求包括的版本1.0对应的渲
染脚本之间的差分资源文件。

但在实际操作中,每次发布新版本时,单页面应用的渲染脚本
中发生变化的字符必然很多,如果按上述举例说明中将差分运算结
果直接作为差分资源文件,则该差分资源文件的数据量很大,下发
该差分资源文件会占用大量的数据流量,而且前端解析该差分资源
文件的速度很慢,导致升级效率很低。因此本发明实施例中可以先
对差分运算结果进行优化,剔除掉“equal”和“delete”的相关内容,以
缩小差分资源文件的数据量。

下面结合上述举例的内容,进一步说明上述剔除操作的具体过
程。例如,将上述差分运算结果的代码转换为以下格式的数组:

{[0,1],'a',[2,1],[4,3],'s'}

上述数组表示的含义为:版本1.0“fortest”中下标为0长度为
1的内容+'a'+“fortest”中下标为2长度为1的内容+“fortest”中
下标为4长度为3的内容+'s'。

通过字符串复制函数substr()来调用版本1.0“fortest”并表达上
述数组的含义,可以为:

fortest.substr(0,1)+‘a’+fortest.substr(2,1)+fortest.substr(4,3)+‘s’

=‘f’+‘a’+‘r’+‘est’+‘s’

=farests

上述转换得到的数组的数据量很小,可以将上述转换得到的数
组作为差分资源文件,如此可以大大节省传输流量,且前端接收到
该差分资源文件后,能够快速解析该差分资源文件,得到最新版本
的渲染脚本,提高了单页面应用的升级效率。

在本发明实施例中,每当技术人员上传单页面应用的最新版本
的渲染脚本时,服务端可以获取该最新版本之前上一个版本的渲染
脚本,并生成该最新版本的渲染脚本与之前上一个版本的渲染脚本
之间的差分资源子文件,并将该最新版本的渲染脚本的版本号、之
前上一个版本的渲染脚本的版本号和该差分资源子文件存储在相邻
版本号与差分资源子文件的对应关系中。

上述相邻版本号与差分资源子文件的对应关系如表1所示,版
本1.0与版本0.0之间的差分资源子文件为File001,版本2.0与版
本1.0之间的差分资源子文件为File002。

表1



在生成最新版本的渲染脚本与该数据请求包括的版本号对应的
渲染脚本之间的差分资源文件时,可以获取最新版本号与该数据请
求包括的版本号之间对应的多个差分资源子文件,将获取的多个差
分资源子文件组成最终的差分资源文件。具体包括:

服务端根据最新版本号和该数据请求包括的版本号,从相邻版
本号与差分资源子文件的对应关系中,获取从数据请求包括的版本
号到最新版本号之间各前后相邻的两个版本号对应的差分资源子文
件;将获取的各差分资源子文件组成数据请求包括的版本号对应的
差分资源文件。

例如,假设最新版本号为2.0,该数据请求包括的版本号为0.0,
则,从如表1所示的相邻版本号与差分资源子文件的对应关系中,
获取版本0.0与版本1.0对应的差分资源子文件File001,以及获取
版本1.0与版本2.0对应的差分资源子文件File002,将差分资源子
文件File001和File002组成版本2.0的渲染脚本与版本0.0的渲染
脚本之间的差分资源文件。

在本发明实施例中,生成差分资源文件,并将差分资源文件作
为升级响应信息之后,服务端还获取最新版本号对应的最新版本的
渲染脚本的长度值;通过md5(Message Digest Algorithm5,信息摘
要算法5)算法对最新版本的渲染脚本进行运算,得到最新版本的
渲染脚本的md5值;根据该单页面应用的应用标识,获取该单页面
应用的页面数据;将该长度值、md5值和页面数据添加到升级响应
信息中。

步骤104:服务端向前端发送该升级响应信息。

由于最新版本的单页面应用并没有经过用户使用测试,很有可
能在用户使用的过程中出现不符合用户使用需求的问题,从而导致
单页面应用的用户流失。为了解决这一问题,本发明实施例引入灰
度发布规则,通过预设灰度发布规则来使符合该灰度发布规则的用
户先使用最新版本的单页面应用,并采集这部分用户的使用记录,
根据这部分用户的使用记录对最新版本的单页面应用进行完善。同
时还需预设该灰度发布规则的效用截止时间,在该效用截止时间之
后再使其他用户使用该最新版本的单页面应用,以防止用户流失。

预设的灰度发布规则可以规定用户的年龄、地理位置及职业等
信息,如可以预设灰度规则为使25岁至30岁之间且在北京工作的
律师先使用该最新版本的单页面应用。且前端在发送给服务端的数
据请求中需携带用户的用户标识,以使服务端可以根据用户标识获
取用户的用户信息,以确定该用户是否符合预设的灰度发布规则。

在单页面应用发布新版本,且服务端在向前端发送升级响应信
息之前,服务器首先根据接收前端发送数据请求的接收时间,判断
该接收时间是否位于预设的灰度发布规则的效用截止时间之后,如
果是,则在该升级响应信息中携带差分资源文件、最新版本的渲染
脚本的长度值和md5值。如果该接收时间在效用截止时间之前,则
根据数据请求中包括的用户标识,获取该用户标识对应的用户信息,
判断获取的用户信息是否符合预设的灰度发布规则,若符合,则在
该升级响应信息中携带差分资源文件、最新版本的渲染脚本的长度
值和md5值。若不符合,则只在该升级响应信息中携带该单页面应
用的页面数据。

步骤105:前端接收服务端发送的该升级响应信息,判断该升
级响应信息中是否包括差分资源文件,如果是,则执行步骤106,
如果否,则执行步骤107。

前端接收服务端根据数据请求包括的版本号返回的升级响应信
息,解析该升级响应信息,若解析出该升级响应信息包括差分资源
文件,则后续执行步骤106的操作,否则执行步骤107的操作。

步骤106:前端根据该差分资源文件、本地缓存的单页面应用
的渲染脚本及静态资源,对单页面应用进行升级。

前端根据升级响应信息包括的差分资源文件和本地缓存的渲染
脚本,通过预设合并算法生成新的渲染脚本;根据新的渲染脚本和
本地缓存的单页面应用的静态资源,生成单页面应用对应的升级后
的资源文件。

预设合并算法可以为服务端生成差分资源文件时所运用的差量
生成运算的逆运算,也可以利用步骤103中提供的字符串复制函数
substr()来对本地缓存的渲染脚本和差分资源文件包括的数组进行
字符运算,以得到新的渲染脚本。然后将新的渲染脚本和本地缓存
的静态资源组成该单页面应用对应的升级后的资源文件。

在通过上述方式生成新的渲染脚本后,为了确保对单页面应用
升级的准确性,还需要对生成的新的渲染脚本进行验证,以确定生
成的新的渲染脚本是否与服务端存储的最新版本的渲染脚本相同。
具体验证过程如下:

通过md5算法对生成的新的渲染脚本进行运算得到新的渲染
脚本的md5值,及获取新的渲染脚本的长度值;根据生成的md5
值、获取的长度值及升级响应信息包括的md5值和长度值,对新的
渲染脚本进行版本验证,即比较生成的md5值与升级响应信息包括
的md5值是否相同,以及比较获取的长度值与升级响应信息包括的
长度值是否相同,若均相同,则验证成功,确定生成的新的渲染脚
本与服务端存储的最新版本的渲染脚本相同。若生成的md5值与升
级响应信息包括的md5值不相同,或者获取的长度值与升级响应信
息包括的长度值不相同,则验证失败,确定生成的新的渲染脚本与
服务端中存储的最新版本的渲染脚本不同,此时前端向服务端发送
获取差分资源文件的请求,以请求服务端重新下发最新版本的渲染
脚本与本地缓存的渲染脚本之间的差分资源文件。

在本发明实施例中,前端完成对单页面应用的升级操作之后,
还根据本地缓存的单页面应用的静态资源和升级后的渲染脚本,对
升级响应信息包括的页面数据进行渲染,显示升级后该单页面应用
的页面。

前端根据本地缓存的单页面应用的静态资源,通过字符串表达
式计算函数eval()执行升级后的渲染脚本,对升级响应信息包括的
页面数据进行渲染,显示升级后该单页面应用的页面。

步骤107:前端根据本地缓存的单页面应用的渲染脚本和静态
资源,渲染页面数据,显示该单页面应用的页面。

当前端解析出升级响应信息中不包括差分资源文件时,解析该
升级响应信息中是否包括用于指示当前已缓存最新版本的指示信
息,如果包括,则根据该指示信息确定当前本地缓存的渲染脚本为
最新版本的渲染脚本。

如图1B所示,本发明实施例中,前端在本地固化存储了静态
资源,并采用本地缓存的方式缓存了渲染脚本,渲染脚本可以进行
动态升级。服务端为前端开设了数据交互接口和渲染脚本升级接口,
通过数据交互接口只交互页面数据,通过渲染脚本升级接口进行脚
本升级。如此前端与服务端之间只进行页面数据的传输,并对渲染
脚本的部分资源进行动态更新,静态资源不需要更新。且在无版本
升级的情况下,前端与服务端之间只进行页面数据的传输,节省了
用于传输页面资源的数据流量,加快了显示单页面应用的页面的显
示速度。

在本发明实施例中,发送单页面应用对应的数据请求给服务
端,数据请求包括本地缓存的单页面应用的渲染脚本的版本号;接
收服务端根据版本号返回的升级响应信息;若升级响应信息包括差
分资源文件,则根据差分资源文件、本地缓存的单页面应用的渲染
脚本及静态资源,对单页面应用进行升级。本发明前端本地缓存了
单页面应用的静态资源和渲染脚本,每次升级时只从服务端获取渲
染脚本对应的差分资源文件,而差分资源文件的数据量非常小,如
此每次升级时服务端只需要下发差分资源文件,大大节省了数据流
量,且传输速度快,提高了单页面应用的升级效率。

实施例2

参见图2,本发明实施例提供了一种单页面应用升级装置,该
装置用于执行上述实施例1提供的单页面应用升级方法。具体包括:

发送模块201,用于发送单页面应用对应的数据请求给服务端,
该数据请求包括本地缓存的单页面应用的渲染脚本的版本号;

接收模块202,用于接收服务端根据版本号返回的升级响应信
息;

升级模块203,用于当升级响应信息包括差分资源文件时,根
据差分资源文件、本地缓存的单页面应用的渲染脚本及静态资源,
对单页面应用进行升级。

升级模块203具体通过第一生成单元和第二生成单元来对单页
面应用进行升级。

第一生成单元,用于根据差分资源文件和本地缓存的渲染脚本,
通过预设合并算法生成新的渲染脚本;第二生成单元,用于根据新
的渲染脚本和本地缓存的单页面应用的静态资源,生成单页面应用
对应的升级后的资源文件。

若升级响应信息还包括最新版本的渲染脚本的长度值和消息摘
要算法md5值;该装置还包括:

验证模块,用于通过md5算法对生成的新的渲染脚本进行运算
得到新的渲染脚本的md5值,及获取新的渲染脚本的长度值;根据
生成的md5值、获取的长度值及升级响应信息包括的md5值和长
度值,对新的渲染脚本进行版本验证;若验证失败,则向服务端发
送获取差分资源文件的请求。

在本发明实施例中,当首次访问单页面应用的页面时,还通过
如下存储模块来存储该单页面应用的资源文件。存储模块,用于当
首次访问单页面应用的页面时,从服务端获取单页面应用的全部资
源文件;从全部资源文件中提取不发生变化的部分资源文件作为单
页面应用的静态资源,将静态资源固化存储在本地;将全部资源文
件中除静态资源外的资源文件确定为单页面应用的渲染脚本,将渲
染脚本缓存在本地缓存中。

在本发明实施例中,该升级响应信息包括页面数据,该装置还
包括:

第一显示模块,用于对单页面应用进行升级后,根据本地缓存
的单页面应用的静态资源和升级后的渲染脚本,对页面数据进行渲
染,显示升级后单页面应用的页面。

在本地已缓存了最新版本的渲染脚本时,升级响应信息包括用
于指示当前已缓存最新版本的指示信息和页面数据,该装置还包括:

第二显示模块,用于根据本地缓存的单页面应用的渲染脚本和
静态资源,渲染页面数据,显示单页面应用的页面。

在本发明实施例中,发送单页面应用对应的数据请求给服务
端,数据请求包括本地缓存的单页面应用的渲染脚本的版本号;接
收服务端根据版本号返回的升级响应信息;若升级响应信息包括差
分资源文件,则根据差分资源文件、本地缓存的单页面应用的渲染
脚本及静态资源,对单页面应用进行升级。本发明前端本地缓存了
单页面应用的静态资源和渲染脚本,每次升级时只从服务端获取渲
染脚本对应的差分资源文件,而差分资源文件的数据量非常小,如
此每次升级时服务端只需要下发差分资源文件,大大节省了数据流
量,且传输速度快,提高了单页面应用的升级效率。

实施例3

参见图3,本发明实施例提供了一种单页面应用升级装置,该
装置用于执行上述实施例1提供的单页面应用方法。该装置具体包
括:

接收模块301,用于接收前端发送的单页面应用对应的数据请
求,数据请求包括前端缓存的单页面应用的渲染脚本的版本号;

获取模块302,用于获取单页面应用的渲染脚本的最新版本号;

生成模块303,用于根据最新版本号和数据请求包括的版本号,
生成升级响应信息;

发送模块304,用于向前端发送升级响应信息,以使前端根据
升级响应信息确定缓存单页面应用的最新版本的资源文件。

上述生成模块303通过比较单元、第一生成单元和第二生成单
元来生成升级响应信息。

比较单元,用于比较最新版本号和数据请求包括的版本号是否
相同;第一生成单元,用于当比较单元比较出最新版本号和数据请
求包括的版本号相同时,生成用于指示当前已缓存最新版本的指示
信息,将指示信息确定为升级响应信息;第二生成单元,用于如果
当比较单元比较出最新版本号和数据请求包括的版本号不相同时,
根据最新版本号和数据请求包括的版本号,生成数据请求包括的版
本号对应的差分资源文件,将差分资源文件确定为升级响应信息。

在本发明实施例中可以直接对最新版本的渲染脚本与该数据请
求包括的版本号对应的渲染脚本进行差分运算来生成差分资源文
件,上述第二生成单元包括:

第一获取子单元,用于根据最新版本号获取最新版本的渲染脚
本;根据数据请求包括的版本号获取对应版本的渲染脚本;

差分运算子单元,用于对数据请求包括的版本号对应的渲染脚
本和最新版本的渲染脚本进行差分运算,得到数据请求包括的版本
号对应的差分资源文件。

在本发明实施例中,在生成最新版本的渲染脚本与该数据请求
包括的版本号对应的渲染脚本之间的差分资源文件时,可以获取最
新版本号与该数据请求包括的版本号之间对应的多个差分资源子文
件,将获取的多个差分资源子文件组成最终的差分资源文件,第二
生成单元包括:

第二获取子单元,用于根据最新版本号和数据请求包括的版本
号,从相邻版本号与差分资源子文件的对应关系中,获取从数据请
求包括的版本号到最新版本号之间各前后相邻的两个版本号对应的
差分资源子文件;组成子单元,用于将获取的各差分资源子文件组
成数据请求包括的版本号对应的差分资源文件。

在本发明实施例中,还可以通过添加模块在升级响应信息中添
加页面数据及最新版本的渲染脚本的长度值和md5值。

添加模块,用于获取最新版本号对应的最新版本的渲染脚本的
长度值;通过md5算法对最新版本的渲染脚本进行运算,得到最新
版本的渲染脚本的md5值;获取单页面应用的页面数据;将长度值、
md5值和页面数据添加到升级响应信息中。

在本发明实施例中,发送单页面应用对应的数据请求给服务
端,数据请求包括本地缓存的单页面应用的渲染脚本的版本号;接
收服务端根据版本号返回的升级响应信息;若升级响应信息包括差
分资源文件,则根据差分资源文件、本地缓存的单页面应用的渲染
脚本及静态资源,对单页面应用进行升级。本发明前端本地缓存了
单页面应用的静态资源和渲染脚本,每次升级时只从服务端获取渲
染脚本对应的差分资源文件,而差分资源文件的数据量非常小,如
此每次升级时服务端只需要下发差分资源文件,大大节省了数据流
量,且传输速度快,提高了单页面应用的升级效率。

本发明实施例所提供的单页面应用装置可以为设备上的特定硬
件或者安装于设备上的软件或固件等。所属领域的技术人员可以清
楚地了解到,为描述的方便和简洁,前述描述的模块、装置和单元
的具体工作过程,均可以参考上述方法实施例中的对应过程。

在本申请所提供的几个实施例中,应该理解到,所揭露装置和
方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是
示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实
际实现时可以有另外的划分方式,又例如,多个单元或组件可以结
合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可
以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以
是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分
开的,作为单元显示的部件可以是或者也可以不是物理单元,即可
以位于一个地方,或者也可以分布到多个网络单元上。可以根据实
际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处
理单元中,也可以是各个单元单独物理存在,也可以两个或两个以
上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销
售或使用时,可以存储在一个计算机可读取存储介质中。基于这样
的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部
分或者该技术方案的部分可以以软件产品的形式体现出来,该计算
机软件产品存储在一个存储介质中,包括若干指令用以使得一台计
算机设备(可以是个人计算机,服务器,或者网络设备等)执行本
发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包
括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、
随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘
等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围
并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技
术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围
之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

一种单页面应用升级方法及装置.pdf_第1页
第1页 / 共21页
一种单页面应用升级方法及装置.pdf_第2页
第2页 / 共21页
一种单页面应用升级方法及装置.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《一种单页面应用升级方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种单页面应用升级方法及装置.pdf(21页珍藏版)》请在专利查询网上搜索。

本发明提供了一种单页面应用升级方法及装置。其中,该方法包括:发送单页面应用对应的数据请求给服务端,数据请求包括本地缓存的单页面应用的渲染脚本的版本号;接收服务端根据版本号返回的升级响应信息;若升级响应信息包括差分资源文件,则根据差分资源文件、本地缓存的单页面应用的渲染脚本及静态资源,对单页面应用进行升级。本发明前端本地缓存了单页面应用的静态资源和渲染脚本,每次升级时只从服务端获取渲染脚本对应的差分。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1