CN110069729B - 一种应用的离线缓存方法和系统 - Google Patents

一种应用的离线缓存方法和系统 Download PDF

Info

Publication number
CN110069729B
CN110069729B CN201711128645.3A CN201711128645A CN110069729B CN 110069729 B CN110069729 B CN 110069729B CN 201711128645 A CN201711128645 A CN 201711128645A CN 110069729 B CN110069729 B CN 110069729B
Authority
CN
China
Prior art keywords
offline
package
file
server
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711128645.3A
Other languages
English (en)
Other versions
CN110069729A (zh
Inventor
韩振
田征绿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Youyang New Media Information Technology Co ltd
Original Assignee
Shanghai Youyang New Media Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Youyang New Media Information Technology Co ltd filed Critical Shanghai Youyang New Media Information Technology Co ltd
Priority to CN201711128645.3A priority Critical patent/CN110069729B/zh
Publication of CN110069729A publication Critical patent/CN110069729A/zh
Application granted granted Critical
Publication of CN110069729B publication Critical patent/CN110069729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本申请提供一种应用的离线缓存方法和系统,所述方法包括:从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;对所述离线包进行校验,利用校验通过的离线包更新缓存;当所述应用加载统一资源定位符URL时,查找所述摘要文件并进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源。可以实现离线缓存的及时更新,保证其完整性。

Description

一种应用的离线缓存方法和系统
【技术领域】
本申请涉及通信技术领域,尤其涉及一种应用的离线缓存方法和系统。
【背景技术】
现在App内部嵌入HTML5页面已经是很常见的,HTML5加入了很多新的特性,例如离线缓存,这意味着应用可以进行缓存,可在没有因特网连接时进行访问。
HTML5应用程序离线缓存为应用带来三个优势:
1.离线浏览用户可在应用离线时使用它们;
2.速度已缓存资源加载得更快;
3.减少服务器负载浏览器将只从服务器下载更新过或更改过的资源。
HTML应用程序离线缓存主要采用浏览器缓存机制,适合对静态文件,如 JS、CSS、字体、图片等进行缓存,通过缓存文件可大幅提升Web的加载速度,且节省流量。但也有一些不足:缓存文件需要首次加载后才会产生;浏览器缓存的存储空间有限,缓存有被清除的可能;缓存的文件的完整性无法保证。
【发明内容】
本申请的多个方面提供一种应用的离线缓存方法和系统,用以实现应用的离线缓存的更新和完整性校验。
本申请的一方面,提供一种应用的离线缓存方法,包括:
从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
对所述离线包进行校验,利用校验通过的离线包更新缓存;
当所述应用加载统一资源定位符URL时,查找所述摘要文件并进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在应用启动时、定时或根据用户操作从服务器获取离线包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述从服务器获取离线包包括:
向服务器发送离线包的版本号,由服务器对版本号进行对比,判断当前版本是否需要更新,如果需要返回相应版本;或,
当缓存中不存在离线包时,从服务器获取离线包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述离线包进行校验包括:
对所述摘要文件进行校验,校验成功后对配置文件和离线资源文件进行校验。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,利用校验通过的离线包的信息更新缓存包括:
将校验通过的离线包的摘要文件写入内存,将校验通过的离线包的配置文件和离线资源文件写入本地缓存。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,从缓存中查找获取与所述URL匹配的资源包括:
在所述配置文件中根据所述URL进行正则匹配,根据匹配得到的加载地址获取离线资源。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,从缓存中查找获取与所述URL匹配的资源还包括:
对获取的离线资源进行校验。
根据本发明的另一方面,提供一种应用的离线缓存系统,包括:
获取模块,用于从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
更新模块,用于对所述离线包进行校验,利用校验通过的离线包更新缓存;
查找模块,用于当所述应用加载统一资源定位符URL时,查找所述摘要文件并进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取模块在应用启动时、定时或根据用户操作从服务器获取离线包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取模块具体用于:
向服务器发送离线包的版本号,由服务器对版本号进行对比,判断当前版本是否需要更新,如果需要返回相应版本;或,
当缓存中不存在离线包时,从服务器获取离线包。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述系统还包括校验模块,用于对所述摘要文件进行校验,校验成功后对配置文件和离线资源文件进行校验。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述更新模块具体用于:
将校验通过的离线包的摘要文件写入内存,将校验通过的离线包的配置文件和离线资源文件写入本地缓存。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述查找模块具体用于:
在所述配置文件中根据所述URL进行正则匹配,根据匹配得到的加载地址获取离线资源。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述校验模块还用于:对获取的离线资源进行校验。
本发明的另一方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
本发明的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
由所述技术方案可知,本申请实施例,可以实现离线缓存的及时更新,保证其完整性。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的应用的离线缓存方法的流程示意图;
图2为本申请一实施例提供的应用的离线缓存系统的结构示意图;
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器 012的框图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
图1为本申请一实施例提供的应用的离线缓存方法的流程示意图,如图1 所示,包括以下步骤:
步骤S11、从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
步骤S12、对所述离线包进行校验,利用校验通过的离线包更新缓存;
步骤S13、当所述应用加载统一资源定位符URL时,查找所述摘要文件并进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源。
在步骤S11的一种优选实现方式中,
在本实施例中,终端内存空间中划分出了本地缓存空间,用于存储应用的离线包。具体地,从终端内存空间中划分出一定大小的本地缓存空间,用来存储终端上应用缓存到本地的离线包。可以理解的是,在该本地缓存空间中,存储有不止一个应用的离线包,各应用与其对应的离线包之间可以通过映射表记录,当需要获取或检测某一应用对应的离线包时,可以从映射表得到其对应的离线包的存储位置从而找到对应的离线包。
当应用程序启动时,检测终端是否存在离线包。
如果终端内存空间中不存在应用的离线包,则该应用可能是首次使用或用户执行了清空缓存操作,因此,需要向服务器获取离线包,此时,终端通过应用程序接口API向服务器发出离线包获取请求。
优选地,如果终端内存空间中存在应用的离线包,则从离线包的配置文件中获得所述离线包的version版本号。终端通过应用程序接口API向服务器发出离线包获取请求,所述离线包获取请求中包括终端内存空间中存储的离线包的版本号;服务器将接收的版本号与服务器的离线包的版本号进行对比,判断终端中的离线包是否需要更新;如果需要,则向终端返回相应版本;如果不需要,则向终端返回指示终端中已经是新版本离线包的指示消息。
优选地,如果终端内存空间中存在应用的离线包,则从离线包的配置文件中获得所述离线包的version版本号。终端通过应用程序接口API向服务器发出离线包版本号获取请求,并接受返回的该应用对应的离线包的版本号,与终端内存空间中缓存的离线包的版本号进行对比,判断服务器中是否存在新版本离线包,如果存在,则通过应用程序接口API向服务器发出离线包获取请求。
优选地,当应用程序启动后,可以定时或根据用户操作,检测终端是否存在离线包,并向服务器获取新版本离线包。
所述离线包包括:摘要文件fileList、配置文件offline.Config.json和离线资源文件。
所述摘要文件fileList中包含有离线包中所有文件的sha1值记录。
所述配置文件offline.Config.json如下表1,包括离线包业务名称(name)、离线包版本号(version)、离线包匹配页面(pageUrls)和离线包匹配资源 (prefix).
Figure DEST_PATH_IMAGE001
表1
所述离线资源文件包括:HTML页面和其他静态资源(js,css,png…)。
在步骤S12的一种优选实现方式中,
包括以下子步骤:
子步骤S121、对摘要文件进行校验。
终端采用rsa算法校验摘要文件fileList的安全性,对从服务器接收到的摘要文件fileList编码后的加密结果进行解码并解密后,获取到相应的sha1 值,与本地对摘要文件fileList采用sha1算法进行hash运算得到的sha1值进行比较,以保证摘要文件fileList的可靠性且未被篡改。
其中,服务器采用ras算法,通过私钥对摘要文件fileList的sha1值进行加密,对加密结果进行base64编码,将编码后的加密结果发送给终端。所述 sha1值为采用sha1算法得到的摘要文件fileList的hash值
在本实施例的一种可选实现方式中,可以首先从服务器下载离线包,所述离线包可以是zip压缩包、rar压缩包形式;对所述离线包进行解压;再对离线包进行校验。
在本实施例的另一种可选实现方式中,可以在确定摘要文件fileList的可靠性且未被篡改之后,从服务器下载离线包,所述离线包可以是zip压缩包、 rar压缩包形式。对所述离线包进行解压。
子步骤S122、对配置文件和离线资源文件进行校验。
采用sha1算法计算解压得到的所有文件的sha1值,与摘要文件fileList 中包含的离线包所有文件的sha1值进行校验。对于文件摘要,尤其是大文件的摘要,sha1算法所用时间明显小于md5算法,性能优于md5算法。
子步骤S123、更新缓存。
如果sha1值校验成功,则更新缓存,将离线包信息写入内存列表 list<packageInfo>中,所述离线包信息包括摘要文件fileList;将配置文件offline.Config.json和离线资源文件保存在本地缓存作为本地资源。
由于是将配置文件offline.Config.json和离线资源文件保存在本地缓存,其容量大小可以设置或控制,不会像浏览器缓存一样因为存储空间限制或过期被清除。
在本实施例中,如果校验失败,则清除从服务器获取的离线包及其解压文件,包括从内存列表list<packageInfo>中清除所述摘要文件fileList,从本地缓存中清除配置文件offline.Config.json和离线资源文件。
在步骤S13的一种优选实现方式中,
包括以下子步骤:
子步骤S131、校验摘要文件fileList的安全性。
当应用加载统一资源定位符URL时,首先获取所述应用对应的内存列表 list<packageInfo>,校验摘要文件fileList的安全性;
如果校验通过,则进一步从本地缓存中存储的所述应用对应的配置文件offline.config.json中根据所述URL进行正则匹配;
如果校验失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
具体地,采用rsa算法校验摘要文件fileList的安全性,对其进行解码并解密后,获取到相应的hash值,所述hash值为采用sha1算法得到的摘要文件 fileList的hash值,以保证摘要文件fileList的可靠性且未被篡改。
子步骤S132、从缓存中查找获取与所述URL匹配的资源。
从配置文件offline.config.json中根据所述URL进行正则匹配;
如果匹配成功,则根据所述URL对应的路径,在本地资源包中获取本地资源;
如果匹配失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
具体地,URL所请求的资源包括HTML页面和其他静态资源(js,css,png…)。针对所请求的HTML页面,使用配置文件offline.config.json中的离线包匹配页面pageUrls字段进行匹配,匹配到对应page后,根据其路径在本地资源中进行获取。针对所请求的其他静态资源,使用配置文件offline.config.json中的离线包匹配资源prefix字段进行匹配,匹配到对应page后,根据其路径在本地资源中进行获取。
子步骤S133、对获取的离线资源进行校验。
根据所述URL对应的路径,在本地资源包中获取本地资源后,根据摘要文件fileList中存储的所述本地资源的sha1值对所述本地资源进行校验;
如果校验通过,证明所述本地资源的完整性没有问题,则利用所述本地资源渲染页面,呈现给用户;
如果校验失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
通过上述对摘要文件以及本地资源的两次校验,确保了缓存文件的完整性,不会使用被修改过的缓存文件。
在本实施例中,如果获取本地资源失败,则使用网络资源渲染所述URL对应的页面,可以将所述网络资源保存在本地缓存中。但是,为了保证缓存文件的完整性,所述网络资源与离线包的离线资源文件相互独立。
可以在完成本次渲染之后,清空本地缓存的所述网络资源。也可以继续保存所述网络资源,当应用再次请求同一URL,且未从离线资源文件中查找到匹配资源和/或校验失败的情况,可以根据所保存的网络资源渲染所述URL。
图2为本申请一实施例提供的应用的离线缓存系统的结构示意图,如图2 所示,包括:
获取模块21,用于从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
更新模块22,用于对所述离线包进行校验,利用校验通过的离线包更新缓存;
查找模块23,用于当所述应用加载统一资源定位符URL时,查找所述摘要文件并进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源。
在获取模块21的一种优选实现方式中,
在本实施例中,终端内存空间中划分出了本地缓存空间,用于存储应用的离线包。具体地,从终端内存空间中划分出一定大小的本地缓存空间,用来存储终端上应用缓存到本地的离线包。可以理解的是,在该本地缓存空间中,存储有不止一个应用的离线包,各应用与其对应的离线包之间可以通过映射表记录,当需要获取或检测某一应用对应的离线包时,可以从映射表得到其对应的离线包的存储位置从而找到对应的离线包。
当应用程序启动时,获取模块21检测终端缓存中是否存在离线包。
如果终端内存空间中不存在应用的离线包,则该应用可能是首次使用或用户执行了清空缓存操作,因此,需要向服务器获取离线包,此时,获取模块21 通过应用程序接口API向服务器发出离线包获取请求。
优选地,如果终端内存空间中存在应用的离线包,则从离线包的配置文件中获得所述离线包的version版本号。获取模块21通过应用程序接口API向服务器发出离线包获取请求,所述离线包获取请求中包括终端内存空间中存储的离线包的版本号;服务器将接收的版本号与服务器的离线包的版本号进行对比,判断终端中的离线包是否需要更新;如果需要,则向终端返回相应版本;如果不需要,则向终端返回指示终端中已经是新版本离线包的指示消息。
优选地,如果终端内存空间中存在应用的离线包,则从离线包的配置文件中获得所述离线包的version版本号。获取模块21通过应用程序接口API向服务器发出离线包版本号获取请求,并接受返回的该应用对应的离线包的版本号,与终端内存空间中缓存的离线包的版本号进行对比,判断服务器中是否存在新版本离线包,如果存在,则通过应用程序接口API向服务器发出离线包获取请求。
优选地,当应用程序启动后,可以定时或根据用户操作,检测终端是否存在离线包,并向服务器获取新版本离线包。
所述离线包包括:摘要文件fileList、配置文件offline.Config.json和离线资源文件。
所述摘要文件fileList中包含有离线包中所有文件的sha1值记录。
所述配置文件offline.Config.json如下表1,包括离线包业务名称(name)、离线包版本号(version)、离线包匹配页面(pageUrls)和离线包匹配资源 (prefix).
Figure DEST_PATH_IMAGE002
表1
所述离线资源文件包括:HTML页面和其他静态资源(js,css,png…)。
在更新模块22的一种优选实现方式中,
更新模块22调用校验模块24对摘要文件进行校验。
校验模块24采用rsa算法校验摘要文件fileList的安全性,对从服务器接收到的摘要文件fileList编码后的加密结果进行解码并解密后,获取到相应的sha1值,与本地对摘要文件fileList采用sha1算法进行hash运算得到的 sha1值进行比较,以保证摘要文件fileList的可靠性且未被篡改。
其中,服务器采用ras算法,通过私钥对摘要文件fileList的sha1值进行加密,对加密结果进行base64编码,将编码后的加密结果发送给终端。所述 sha1值为采用sha1算法得到的摘要文件fileList的hash值
在本实施例的一种可选实现方式中,可以由获取模块21首先从服务器下载离线包,所述离线包可以是zip压缩包、rar压缩包形式;对所述离线包进行解压;再由更新模块22调用校验模块24对离线包进行校验。
在本实施例的另一种可选实现方式中,可以在确定摘要文件fileList的可靠性且未被篡改之后,由更新模块22从服务器下载离线包,所述离线包可以是 zip压缩包、rar压缩包形式;对所述离线包进行解压。
更新模块22调用校验模块24对配置文件和离线资源文件进行校验。
校验模块24采用sha1算法计算解压得到的所有文件的sha1值,与摘要文件fileList中包含的离线包所有文件的sha1值进行校验。对于文件摘要,尤其是大文件的摘要,sha1算法所用时间明显小于md5算法,性能优于md5算法。
更新模块22更新缓存。
如果sha1值校验成功,则更新模块22更新缓存,将离线包信息写入内存列表list<packageInfo>中,所述离线包信息包括摘要文件fileList;将配置文件offline.Config.json和离线资源文件保存在本地缓存作为本地资源。
由于是将配置文件offline.Config.json和离线资源文件保存在本地缓存,其容量大小可以设置或控制,不会像浏览器缓存一样因为存储空间限制或过期被清除。
在本实施例中,如果校验失败,则更新模块22清除从服务器获取的离线包及其解压文件,包括从内存列表list<packageInfo>中清除所述摘要文件 fileList,从本地缓存中清除配置文件offline.Config.json和离线资源文件。
在查找模块23的一种优选实现方式中,
调用校验模块24校验摘要文件fileList的安全性。
当应用加载统一资源定位符URL时,查找模块23首先获取所述应用对应的内存列表list<packageInfo>,调用校验模块24校验摘要文件fileList的安全性;
如果校验通过,则进一步从本地缓存中存储的所述应用对应的配置文件offline.config.json中根据所述URL进行正则匹配;
如果校验失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
具体地,采用rsa算法校验摘要文件fileList的安全性,对其进行解码并解密后,获取到相应的hash值,所述hash值为采用sha1算法得到的摘要文件 fileList的hash值,以保证摘要文件fileList的可靠性且未被篡改。
查找模块23从缓存中查找获取与所述URL匹配的资源。
从配置文件offline.config.json中根据所述URL进行正则匹配;
如果匹配成功,则根据所述URL对应的路径,在本地资源包中获取本地资源;
如果匹配失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
具体地,URL所请求的资源包括HTML页面和其他静态资源(js,css,png…)。针对所请求的HTML页面,使用配置文件offline.config.json中的离线包匹配页面pageUrls字段进行匹配,匹配到对应page后,根据其路径在本地资源中进行获取。针对所请求的其他静态资源,使用配置文件offline.config.json中的离线包匹配资源prefix字段进行匹配,匹配到对应page后,根据其路径在本地资源中进行获取。
调用校验模块24对获取的离线资源进行校验。
查找模块23根据所述URL对应的路径,在本地资源包中获取本地资源后,调用校验模块24根据摘要文件fileList中存储的所述本地资源的sha1值对所述本地资源进行校验;
如果校验通过,证明所述本地资源的完整性没有问题,则利用所述本地资源渲染页面,呈现给用户;
如果校验失败,则使用网络资源渲染页面,同时向服务器重新获取离线包。
通过上述对摘要文件以及本地资源的两次校验,确保了缓存文件的完整性,不会使用被修改过的缓存文件。
在本实施例中,如果获取本地资源失败,则使用网络资源渲染所述URL对应的页面,可以将所述网络资源保存在本地缓存中。但是,为了保证缓存文件的完整性,所述网络资源与离线包的离线资源文件相互独立。
可以在完成本次渲染之后,清空本地缓存的所述网络资源。也可以继续保存所述网络资源,当应用再次请求同一URL,且未从离线资源文件中查找到匹配资源和/或校验失败的情况,可以根据所保存的网络资源渲染所述URL。
采用上述实施例提供的技术方案,可以实现离线缓存的及时更新,保证其完整性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在所述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器 012的框图。图3显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器 012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线 018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图3所示,网络适配器 020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行本发明所描述的实施例中的功能和/或方法。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种应用的离线缓存方法,其特征在于,包括:
从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
对所述离线包进行校验,利用校验通过的离线包更新缓存;
当所述应用加载统一资源定位符URL时,查找所述摘要文件并对所述摘要文件进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源;其中,
对所述离线包进行校验包括:
对所述摘要文件进行校验,校验成功后对配置文件和离线资源文件进行校验。
2.根据权利要求1所述的方法,其特征在于,
在应用启动时、定时或根据用户操作从服务器获取离线包。
3.根据权利要求1所述的方法,其特征在于,所述从服务器获取离线包包括:
向服务器发送离线包的版本号,由服务器对版本号进行对比,判断当前版本是否需要更新,如果需要返回相应版本;或,
当缓存中不存在离线包时,从服务器获取离线包。
4.根据权利要求1所述的方法,其特征在于,利用校验通过的离线包的信息更新缓存包括:
将校验通过的离线包的摘要文件写入内存,将校验通过的离线包的配置文件和离线资源文件写入本地缓存。
5.根据权利要求4所述的方法,其特征在于,从缓存中查找获取与所述URL匹配的资源包括:
在所述配置文件中根据所述URL进行正则匹配,根据匹配得到的加载地址获取离线资源。
6.根据权利要求5所述的方法,其特征在于,从缓存中查找获取与所述URL匹配的资源还包括:
对获取的离线资源进行校验。
7.一种应用的离线缓存系统,其特征在于,包括:
获取模块,用于从服务器获取应用的离线包;所述离线包包括:摘要文件、配置文件和离线资源文件;
更新模块,用于对所述离线包进行校验,利用校验通过的离线包更新缓存;
查找模块,用于当所述应用加载统一资源定位符URL时,查找所述摘要文件并对所述摘要文件进行校验,校验通过后,从缓存中查找获取与所述URL匹配的资源;其中,
所述系统还包括校验模块,用于对所述摘要文件进行校验,校验成功后对配置文件和离线资源文件进行校验。
8.根据权利要求7所述的系统,其特征在于,
所述获取模块在应用启动时、定时或根据用户操作从服务器获取离线包。
9.根据权利要求7所述的系统,其特征在于,所述获取模块具体用于:
向服务器发送离线包的版本号,由服务器对版本号进行对比,判断当前版本是否需要更新,如果需要返回相应版本;或,
当缓存中不存在离线包时,从服务器获取离线包。
10.根据权利要求7所述的系统,其特征在于,所述更新模块具体用于:
将校验通过的离线包的摘要文件写入内存,将校验通过的离线包的配置文件和离线资源文件写入本地缓存。
11.根据权利要求10所述的系统,其特征在于,所述查找模块具体用于:
在所述配置文件中根据所述URL进行正则匹配,根据匹配得到的加载地址获取离线资源。
12.根据权利要求11所述的系统,其特征在于,所述校验模块还用于:
对获取的离线资源进行校验。
13.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~6中任一项所述的方法。
CN201711128645.3A 2017-11-15 2017-11-15 一种应用的离线缓存方法和系统 Active CN110069729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711128645.3A CN110069729B (zh) 2017-11-15 2017-11-15 一种应用的离线缓存方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711128645.3A CN110069729B (zh) 2017-11-15 2017-11-15 一种应用的离线缓存方法和系统

Publications (2)

Publication Number Publication Date
CN110069729A CN110069729A (zh) 2019-07-30
CN110069729B true CN110069729B (zh) 2022-07-01

Family

ID=67364586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711128645.3A Active CN110069729B (zh) 2017-11-15 2017-11-15 一种应用的离线缓存方法和系统

Country Status (1)

Country Link
CN (1) CN110069729B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968365B (zh) * 2019-11-29 2023-08-29 中国银行股份有限公司 一种加载方法及装置
CN113407213B (zh) * 2021-06-21 2022-12-23 平安银行股份有限公司 资源包更新方法、装置、设备及存储介质
CN113821244A (zh) * 2021-07-30 2021-12-21 北京达佳互联信息技术有限公司 离线包更新方法、装置、系统、电子设备及存储介质
CN114363301B (zh) * 2021-12-08 2022-08-23 慧之安信息技术股份有限公司 基于localStorage的多媒体数据离线加载方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082784A (zh) * 2010-11-11 2011-06-01 广东欧珀电子工业有限公司 一种软件在线升级方法
CN106131612A (zh) * 2016-06-30 2016-11-16 武汉斗鱼网络科技有限公司 安卓app动态加载资源功能模块的方法及系统
CN106331049A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 缓存资源、更新缓存资源的方法、客户端、服务器及系统
CN107391107A (zh) * 2017-06-12 2017-11-24 北京明朝万达科技股份有限公司 一种应用程序的修复方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002069172A1 (en) * 2001-02-22 2002-09-06 Didera, Inc. Systems and methods for managing distributed database resources
JP5032210B2 (ja) * 2007-06-08 2012-09-26 株式会社日立製作所 制御計算機、計算機システム及びアクセス制御方法
CN103473169B (zh) * 2013-09-24 2016-04-06 北京京东尚科信息技术有限公司 一种日志文件收集方法及装置
CN105337735B (zh) * 2014-05-26 2019-06-07 阿里巴巴集团控股有限公司 数字证书处理及校验的方法和装置
CN107346252B (zh) * 2016-05-07 2021-05-25 腾讯科技(深圳)有限公司 应用更新方法和装置
CN106096388B (zh) * 2016-05-31 2019-04-16 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN107315791A (zh) * 2017-06-14 2017-11-03 广州酷狗计算机科技有限公司 静态资源缓存方法、装置及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082784A (zh) * 2010-11-11 2011-06-01 广东欧珀电子工业有限公司 一种软件在线升级方法
CN106331049A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 缓存资源、更新缓存资源的方法、客户端、服务器及系统
CN106131612A (zh) * 2016-06-30 2016-11-16 武汉斗鱼网络科技有限公司 安卓app动态加载资源功能模块的方法及系统
CN107391107A (zh) * 2017-06-12 2017-11-24 北京明朝万达科技股份有限公司 一种应用程序的修复方法和装置

Also Published As

Publication number Publication date
CN110069729A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110069729B (zh) 一种应用的离线缓存方法和系统
US10958416B2 (en) Encrypted and compressed data transmission with padding
US9582513B2 (en) Accessing data in a compressed container through dynamic redirection
JP5975501B2 (ja) コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム
US20130238574A1 (en) Cloud system and file compression and transmission method in a cloud system
US8433906B2 (en) Method and system for microlocking web content
CN110825479A (zh) 页面处理方法、装置、终端设备、服务器和存储介质
US20190005031A1 (en) Accessing cloud based document libraries over unreliable networks
CN114365099B (zh) 防止计算环境中的历史模式不一致的推测性访问
CN112947981A (zh) 应用程序资源更新方法、装置、终端设备及服务器
CN115248919A (zh) 一种函数接口的调用方法、装置、电子设备及存储介质
CN113886825A (zh) 代码检测方法、装置、系统、设备及存储介质
CN112948164A (zh) 输入数据的条件性保存
US10776271B2 (en) Method, device and computer program product for validating cache file
CN110928571A (zh) 业务程序开发方法和装置
US11477158B2 (en) Method and apparatus for advertisement anti-blocking
US9449194B2 (en) Secure access to running client application features from a browser application
CN111783005B (zh) 显示网页的方法、装置和系统、计算机系统和介质
CN110719499B (zh) 视频下载方法、系统、介质和电子设备
CN106569841B (zh) 一种文件加载方法和装置
CN113076175B (zh) 用于虚拟机的内存共享方法及装置
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN109462604B (zh) 一种数据传输方法、装置、设备及存储介质
CN108959405B (zh) 数据的强一致性读取方法及终端设备
US10944785B2 (en) Systems and methods for detecting the injection of malicious elements into benign content

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191206

Address after: 201210 room j1328, floor 3, building 8, No. 55, Huiyuan Road, Jiading District, Shanghai

Applicant after: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100085 Baidu building, No. 10, ten Street, Haidian District, Beijing

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190730

Assignee: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Assignor: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2019110000009

Denomination of invention: Off-line caching method and system for application

License type: Exclusive License

Record date: 20191218

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant
GR01 Patent grant