一种资源预下载的方法、装置以及设备制造方法及图纸

技术编号:33634618 阅读:47 留言:0更新日期:2022-06-02 01:44
本说明书实施例公开了一种资源预下载的方法、装置以及设备。方案包括:接收云端推送的资源预推信息;根据资源预推信息,向云端发送下载请求,以获取资源预推信息对应的资源包;对包含了多个子资源的资源包进行解析,得到描述信息;根据描述信息包含的各子资源分别的偏移位置,从资源包中解压得到对应的子资源;根据描述信息包含的各子资源分别的原始下载地址,将各子资源分别独立存储在终端本地,以便根据子资源与原始下载地址之间的对应关系,在终端本地访问存储的子资源。终端本地访问存储的子资源。终端本地访问存储的子资源。

【技术实现步骤摘要】
一种资源预下载的方法、装置以及设备


[0001]本说明书涉及互联网
,尤其涉及一种资源预下载的方法、装置以及设备。

技术介绍

[0002]随着计算机和互联网技术的发展,线上可以执行的业务越来越多。对于部分业务来说,在特定的时间段内会出现用户访问量激增的情况,一些高频资源(比如,图片、音视频等)的下载会对云端峰值产生很大压力,相应也带来了云端带宽成本的上升。对于大量用户访问的情况,如果云端限流会造成部分资源下载失败,有损用户体验。
[0003]因此,在空闲情况下,将业务对应的部分或全部资源提前下载到客户端,等业务上线时已下载的资源可直接从客户端本地命中,减小了云端的压力,也提升了用户即时体验。
[0004]目前传统的资源预下载有两种方式:1、将业务中需要预下载的各资源的资源列表通过云端下发到客户端,客户端拿到预下载的资源列表后逐个去下载存储。2、将静态资源打包成离线资源包,预下载离线资源包后,通过挂载离线资源包去访问包内资源。
[0005]基于此,需要一种能够在降低终端压力的同时提高通用性的资源预下载方案。

技术实现思路

[0006]本说明书一个或多个实施例提供一种资源预下载的方法、装置、设备以及存储介质,用以解决如下技术问题:需要一种能够在降低终端压力的同时提高通用性的资源预下载方案。
[0007]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
[0008]本说明书一个或多个实施例提供的一种资源预下载的方法,包括:
[0009]接收云端推送的资源预推信息;
[0010]根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
[0011]对包含了多个子资源的所述资源包进行解析,得到描述信息;
[0012]根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
[0013]根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
[0014]本说明书一个或多个实施例提供的一种资源预下载的装置,包括:
[0015]接收模块,接收云端推送的资源预推信息;
[0016]下载模块,根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
[0017]解析模块,对包含了多个子资源的所述资源包进行解析,得到描述信息;
[0018]解压模块,根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源
包中解压得到对应的子资源;
[0019]存储模块,根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
[0020]本说明书一个或多个实施例提供的一种资源预下载的设备,包括:
[0021]至少一个处理器;以及,
[0022]与所述至少一个处理器通信连接的存储器;其中,
[0023]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0024]接收云端推送的资源预推信息;
[0025]根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
[0026]对包含了多个子资源的所述资源包进行解析,得到描述信息;
[0027]根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
[0028]根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
[0029]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
[0030]接收云端推送的资源预推信息;
[0031]根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
[0032]对包含了多个子资源的所述资源包进行解析,得到描述信息;
[0033]根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
[0034]根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
[0035]本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0036]相比于方式1,本申请中的方案无需逐个下载资源量,减少了终端资源任务从而减少终端排队时间,资源下载的执行概率增大,提升了下载完成率。并且由于减少了终端下载任务数,尤其是预推资源很多时,只需要一次网络请求,减少了终端和云端的网络任务开销。本申请方案中的资源包可以采用压缩包的方式,(比如,对各子资源以gzip或zstd等不同的方式进行压缩)有效减少预推资源所消耗的流量,降低了终端压力。
[0037]相比于方式2,虽然将预下载的各子资源预先打包成一个自定义格式的资源包,但是在下载完成后按照资源包中各子资源与原始下载地址之间对应的关系进行解压时,对各子资源是分别独立存储的,解耦子资源跟资源包之间的关系,无需包挂载即可实现子资源
的读取,达到无包化的目录(不再是那种各项相互强关联的层级目录,而是各项相互独立的目录)。能够在提升下载完成率、减少终端和云端的网络任务开销的同时,解除子资源与资源包之间的强耦合关系,提高子资源的复用性和通用性。
附图说明
[0038]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本说明书一个或多个实施例提供的一种资源预下载的方法的流程示意图;
[0040]图2为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的整体示意图;
[0041]图3为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的终端和云端的分别示意图;
[0042]图4为本说明书一个或多个实施例提供的一种应用场景下的资源包自定义格式的示意图;
[0043]图5为本说明书一个或多个实施例提供的传统方案中资源包中各子资源的结构示意图;
[0044]图6为本说明书一个或多个实施例提供的本方案中资源包中各子资源的结构示意图;
[0045]图7本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种资源预下载的方法,包括:接收云端推送的资源预推信息;根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;对包含了多个子资源的所述资源包进行解析,得到描述信息;根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。2.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地,具体包括:在所述描述信息中获取所述子资源对应的第一摘要信息;对解压得到的所述子资源进行摘要提取,获取所述子资源对应的第二摘要信息;根据所述第一摘要信息和所述第二摘要信息,对所述子资源进行完整性校验;若通过所述完整性校验,则将所述子资源写入终端的统一缓存中,并对下一个子资源进行完整性校验。3.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地,具体包括:判断所述子资源是否在所述资源包内进行过二次处理;若是,则根据所述描述信息,相应地对所述子资源进行还原后再独立存储在终端本地。4.如权利要求1所述的方法,所述原始下载地址为网络地址;所述接收云端推送的资源预推信息之前,所述方法还包括:所述云端确定资源网络地址目录;根据所述资源网络地址目录,获取所述多个子资源;按照自定义的格式,对所述资源网络地址目录包含的各条目之间的关联关系进行解耦,根据所述解耦的结果对所述多个子资源打包,得到包含所述描述信息的所述资源包,以便所述终端预下载。5.如权利要求4所述的方法,所述云端确定资源网络地址目录,具体包括:所述云端确定尚未开始的指定线上活动的资源网络地址目录;所述根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源,具体包括:在所述指定线上活动开始后,确定生成所述指定线上活动的活动页面所需的子资源的原始下载地址;根据所述原始下载地址,在所述终端本地查询是否有对应的所述子资源存在;若是,从直接在所述终端本地读取所述子资源,用于生成所述活动页面。6.如权利要求1所述的方法,所述接收云端推送的资源预推信息之前,所述方法还包括:所述云端获取多个chunk资源,作为所述多个子资源;
按照自定义的格式或者指定的通用协议,对所述多个子资源打包,得到所述资源包,以便不支持chunk协议的所述终端预下载。7.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地之后,所述方法还包括:接收所述云端发送的针对所述资源包的更新信息,并根据所述更新信息获取携带有更新资源的更新包;对所述更新包进行解析,得到所述更新资源对应的描述信息;根据所述更新资源对应的描述信息,在已存储的各子资源中,确定与所述更新资源的关联指数最高的指定子资源;确定所述指定子资源的存储位置,并根据所述存储位置对所述更新资源进行存储。8.如权利要求1~7中任一项所述的方法,所述资源包包括签名文件、元文件、指示文件、资源文件;所述签名文件用于记录所述资源包的签名信息;所述元文件用于记录对应的业务扩展信息以及所述子资源对应的第一摘要信息;所述显示文件用于记录各所述子资源的原始下载地址以及在所述资源包中的偏移位置;所述资源文件用于携带所述子资源对应的压缩文件。9.一种资源预下载的装置,包括:接收模块,接收云端推送的资源预推信息;下载模块,根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;解析模块,对包含了多个子资源的所述资源包进行解析,得到描述信息;解...

【专利技术属性】
技术研发人员:冯显桂田鑫王勤中
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1