CN113779458B - 应用加速加载的方法及装置、电子设备及存储介质 - Google Patents
应用加速加载的方法及装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113779458B CN113779458B CN202110851960.9A CN202110851960A CN113779458B CN 113779458 B CN113779458 B CN 113779458B CN 202110851960 A CN202110851960 A CN 202110851960A CN 113779458 B CN113779458 B CN 113779458B
- Authority
- CN
- China
- Prior art keywords
- latest version
- html file
- version
- acquiring
- accessed page
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000011068 loading method Methods 0.000 title claims abstract description 59
- 230000003068 static effect Effects 0.000 claims abstract description 129
- 230000008569 process Effects 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000003993 interaction Effects 0.000 claims description 18
- 238000009877 rendering Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000007547 defect Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种应用加速加载的方法及装置、电子设备及存储介质,该方法包括:响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程,响应于浏览器内核版本支持服务进程,则通过服务进程获取被访问页面最新版本的HTML文件,响应于浏览器内核版本不支持服务进程,则通过应用缓存获取被访问页面最新版本的HTML文件;通过静态资源缓存获取被访问页面最新版本的其他静态资源文件;基于最新版本的HTML文件以及最新版本的其他静态资源文件渲染被访问页面。本发明解决现有技术中混合型移动应用程序更新不及时的缺陷,实现及时更新前端静态资源并保证更新的可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用加速加载的方法及装置、电子设备及存储介质。
背景技术
原生手机应用Native APP开发更新需要发版并让用户手动下载安装,速度较慢,为此出现了一系列H5与Native混合的移动应用即混合型移动APP,用来即时更新前端H5资源以实现APP的实时更新,比较常用更新方式的有以下两种,一种是前端离线包方案,将前端所需的静态资源(HTML、css、js、图片等)预置在APP中,打开页面时由WebView控件打开本地的静态资源,当需要更新静态资源时,由客户端向服务端发起更新包请求,下载新的静态资源包并在本地解压后覆盖本地文件。另一种是使用PWA(Progressive Web App,渐进式网页应用)缓存技术,将静态资源存储在浏览器缓存中,由浏览器内核厂商根据标准提供缓存技术。
上述两种方式都存在一些缺陷,比如前端离线包方案会一次请求整个离线包,如果离线包太大将影响更新下载速率,而且存在少数用户无法及时下载到更新包的情况。而PWA缓存技术存在更新不及时的问题,需要用户刷新一次页面才能更新得到最新资源,而且低版本浏览器可能不支持PWA缓存技术。
发明内容
本发明提供一种应用加速加载的方法及装置,用以解决现有技术中混合型移动APP更新不及时的缺陷,实现及时更新前端静态资源并保证更新的可靠性。
本发明提供一种应用加速加载的方法,包括:
响应于接收到页面访问请求,,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;
通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;
基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
根据本发明提供的一种应用加速加载的方法,所述通过ServiceWorker获取被访问页面最新版本的HTML文件包括:
基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ServiceWorker缓存中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWork缓存中更新后的HTML文件。
根据本发明提供的一种应用加速加载的方法,所述通过httpCache获取所述被访问页面最新版本的其他静态资源文件包括:
基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本;
若是最新版本,获取所述httpCache中的所述其他静态资源文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的其他静态资源文件并更新所述httpCache中的其他静态资源文件,获取所述httpCache中更新后的其他静态资源文件。
根据本发明提供的一种应用加速加载的方法,所述基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本,包括:
基于所述最新版本的HTML文件获取所述最新版本的其他静态资源文件的第一文件摘要;
将所述第一文件摘要与所述httpCache中对应所述被访问页面的其他静态资源文件的第二文件摘要进行比较;
若所述第一文件摘要与第二文件摘要相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件是最新版本;
若所述第一文件摘要与第二文件摘要不相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件不是最新版本。
根据本发明提供的一种应用加速加载的方法,所述响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件包括:
基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ApplicationCache中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache中的HTML文件,获取所述ApplicationCache中更新后的HTML文件。
本发明还提供一种应用加速加载的装置,包括:
获取HTML文件单元,用于响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;
获取其他静态资源文件单元,用于通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;
页面渲染单元,用于基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
根据本发明提供的一种应用加速加载的装置,所述获取HTML文件单元还用于:
基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ServiceWorker缓存中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWorker缓存中更新后的HTML文件。
根据本发明提供的一种应用加速加载的装置,所述获取其他静态资源文件单元还用于:
基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本;
若是最新版本,获取所述httpCache中的所述其他静态资源文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的其他静态资源文件并更新所述httpCache缓存中的其他静态资源文件,获取所述httpCache缓存中更新后的其他静态资源文件。
根据本发明提供的一种应用加速加载的装置,所述获取其他静态资源文件单元还用于:
基于所述最新版本的HTML文件获取所述最新版本的其他静态资源文件的第一文件摘要;
将所述第一文件摘要与所述httpCache中对应所述被访问页面的其他静态资源文件的第二文件摘要进行比较;
若所述第一文件摘要与第二文件摘要相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件是最新版本;
若所述第一文件摘要与第二文件摘要不相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件不是最新版本。
根据本发明提供的一种应用加速加载的装置,所述获取HTML文件单元还用于:
基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ApplicationCache中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache中的HTML文件,获取所述ApplicationCache中更新后的HTML文件。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述应用加速加载的方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述应用加速加载的方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述应用加速加载的方法的步骤。
本发明提供的应用加速加载的方法及装置、电子设备及存储介质,通过利用ServiceWorker和httpCache分别存储HTML文件和其他静态资源文件并提供更新机制,以解决现有技术中混合型移动APP更新不及时的缺陷,同时考虑到浏览器内核版本不支持所述ServiceWorker的情况,通过ApplicationCache获取页面最新版本的HTML文件,进而实现及时更新前端静态资源并保证更新的可靠性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的应用加速加载的方法的流程示意图之一;
图2是本发明一实施例提供的应用加速加载的方法的流程示意图之二;
图3是本发明一实施例提供的应用加速加载的方法的流程示意图之三;
图4是本发明一实施例提供的应用加速加载的方法的流程示意图之四;
图5是本发明一实施例提供的应用加速加载的方法的流程示意图之五;
图6是本发明一实施例提供的应用加速加载的方法的流程示意图之六;
图7是本发明一实施例提供的应用加速加载的装置的结构示意图;
图8是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图8描述本发明各实施例提供的技术方案。
图1为本发明一实施例提供的应用加速加载的方法的流程示意图,如图1所示,所述方法包括:
步骤110、响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件。
具体来说,用于显示网页的Webview控件通过ServiceWorker获取被访问页面的HTML文件,其中,ServiceWorker是独立于被访问页面运行在浏览器后台的脚本,相当于介于浏览器与服务器之间的一个代理服务器,提供拦截页面访问请求、向服务器发送请求等服务,并提供更新机制以保证其存储最新版本的资源文件。
需要说明的是,降级使用ApplicationCache缓存HTML文件并提供更新机制可以解决ServiceWorker不能覆盖所有浏览器的缺陷,保证前端资源更新的全覆盖可行性,进而提高应用加载的性能。
步骤120、通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件。
具体来说,httpCache中缓存HTML文件引用的包括js、css以及图片等前端静态资源,Webview控件通过httpCache获取被访问页面除HTML文件外的其他静态资源文件,并保证当前的静态资源文件与其对应的HTML文件版本相同。
步骤130、基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
本发明提供的应用加速加载的方法,通过利用ServiceWorker和httpCache分别存储HTML文件和其他静态资源文件并提供更新机制,以解决现有技术中混合型移动APP更新不及时的缺陷,同时考虑到浏览器内核版本不支持所述ServiceWorker的情况,通过ApplicationCache获取页面最新版本的HTML文件,进而实现及时更新前端静态资源并保证更新的可靠性。
进一步地,在本发明一实施例中,通过ServiceWorker获取被访问页面最新版本的HTML文件具体包括:
步骤210、基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本,若是最新版本,执行步骤220;若不是最新版本,执行步骤230。
步骤220、获取所述ServiceWorker缓存中的所述HTML文件。
步骤230、获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWork缓存中更新后的HTML文件。
需要说明的是,ServiceWorker的更新是由浏览器触发并在独立进程中进行的,ServiceWorker通过与服务器的通信可以及时获取第一交互信息,其中,第一交互信息包括服务器更新HTML文件版本的情况,以获知本地存储的HTML版本是否为最新版本,保证了被访问页面的HTML文件的及时更新,使得浏览器在用户访问页面时就加载最新版本的HTML文件,而不存在现有技术中需要用户刷新页面才能更新最新资源的问题。
对于首次下载并访问页面的用户,由于下载的应用程序包中即包含全部前端静态资源的最新版本,将访问页面所需的HTMl文件预置在ServiceWorker缓存或ApplicationCache,将其他静态资源文件预置在httpCache中,可以实现用户首次访问秒开页面的效果,加速应用加载,进而提升用户体验。
进一步地,在本发明一实施例中,步骤120具体包括:
步骤310、基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本,若是最新版本,执行步骤320;若不是最新版本,执行步骤330。
进一步地,步骤310包括:
步骤410、基于所述最新版本的HTML文件获取所述最新版本的其他静态资源文件的第一文件摘要。
步骤420、将所述第一文件摘要与所述httpCache中对应所述被访问页面的其他静态资源文件的第二文件摘要进行比较。
步骤430、若所述第一文件摘要与第二文件摘要相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件是最新版本。
步骤440、若所述第一文件摘要与第二文件摘要不相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件不是最新版本。
具体来说,Webview控件加载最新版本的HTML文件,通过HTML中引用的包括js、css、图片等前端静态资源后缀MD5戳即其他静态文件的文件摘要判断是否有文件更新,即比较MD5戳与之前缓存的其他静态资源文件是否一致,如果二者一致则是最新版本,如果不一致则不是最新版本。其中,MD5是一种使用密码散列函数的加密方式,MD5戳为一个128位的散列值,作为消息摘要可以确保消息传输的完整性,因此能够基于MD5戳判断其他静态资源文件的版本是否一致。
步骤320、获取所述httpCache中的所述其他静态资源文件。
步骤330、获取服务端对应所述被访问页面的最新版本的其他静态资源文件并更新所述httpCache中的其他静态资源文件,获取所述httpCache中更新后的其他静态资源文件。
需要说明的是,httpCache缓存除HTML文件外的其他静态资源文件并提供更新机制,通过MD5戳判断是否为最新版本资源,保证其他静态资源能够根据HTML文件进行同步更新。
进一步地,考虑到少数浏览器内核版本不支持ServiceWorker的情况,提供了替代ServiceWorker的ApplicationCache,在本发明一实施例中,通过ApplicationCache获取被访问页面最新版本的HTML文件,如图5所示,具体包括:
步骤510、基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;若是最新版本,执行步骤520;若不是最新版本,执行步骤530。
步骤520、获取所述ApplicationCache中的所述HTML文件。
步骤530、获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache中的HTML文件,获取所述ApplicationCache中更新后的HTML文件。
需要说明的是,ApplicationCache通过与服务器的通信可以及时获取第二交互信息,其中,第二交互信息包括服务器更新HTML文件版本的情况,以获知本地存储的HTML版本是否为最新版本,保证了被访问页面的HTML文件的及时更新,使得浏览器在用户访问页面时就加载最新版本的HTML文件,而不存在现有技术中需要用户刷新页面才能更新最新资源的问题。
图6为本发明一实施例提供的应用加速加载的方法的流程示意图,如图6所示,所述方法包括:
步骤601、判断ServiceWorker与用于加载被访问页面的浏览器内核版本是否适配,若是,执行步骤602;若否,执行步骤605。
步骤602、基于ServiceWorker与服务端的第一交互信息判断ServiceWorker缓存中对应被访问页面的HTML文件是否为最新版本,若是最新版本,执行步骤603;若不是最新版本,执行步骤604。
步骤603、获取ServiceWorker缓存中的HTML文件。
步骤604、获取服务端对应被访问页面的最新版本的HTML文件并更新ServiceWorker缓存中的HTML文件,获取ServiceWork缓存中更新后的HTML文件。
需要说明的是,ServiceWorker的更新是由浏览器触发并在独立进程中进行的,ServiceWorker通过与服务器的通信可以及时获取服务器更新HTML文件版本的情况,以获知本地存储的HTML版本是否为最新版本,保证了被访问页面的HTML文件的及时更新,使得浏览器在用户访问页面时就加载最新版本的HTML文件,而不存在现有技术中需要用户刷新页面才能更新最新资源的问题。
步骤605、基于ApplicationCache与服务器的第二交互信息判断ApplicationCache中对应被访问页面的HTML文件是否为最新版本;若是最新版本,执行步骤606;若不是最新版本,执行步骤607。
步骤606、获取ApplicationCache中的HTML文件。
步骤607、获取服务端对应被访问页面的最新版本的HTML文件并更新ApplicationCache中的HTML文件,获取ApplicationCache中更新后的HTML文件。
需要说明的是,降级使用ApplicationCache缓存HTML文件并提供其更新机制可以解决ServiceWorker不能覆盖所有浏览器的缺陷,保证前端资源更新的全覆盖可行性,进而提高应用加载的性能。
步骤608、基于最新版本的HTML文件判断httpCache中对应被访问页面的其他静态资源文件是否为最新版本,若是最新版本,执行步骤609;若不是最新版本,执行步骤610。
步骤609、获取httpCache中的其他静态资源文件。
步骤610、获取服务端对应被访问页面的最新版本的其他静态资源文件并更新httpCache中的其他静态资源文件,获取httpCache中更新后的其他静态资源文件。
具体来说,Webview控件加载最新版本的HTML文件,通过HTML中引用的包括js、css、图片等前端静态资源后缀MD5戳判断是否有文件更新,即比较MD5戳与之前缓存的其他静态资源文件是否一致,如果二者一致则是最新版本,如果不一致则不是最新版本。其中,MD5是一种使用密码散列函数的加密方式,MD5戳为一个128位的散列值,作为消息摘要可以确保消息传输的完整性,因此能够基于MD5戳判断其他静态资源文件的版本是否一致。
步骤611、基于最新版本的HTML文件以及最新版本的其他静态资源文件渲染被访问页面。
本发明提供的应用加速加载的方法,通过利用ServiceWorker和httpCache分别存储HTML文件和其他静态资源文件并提供更新机制,以解决现有技术中混合型移动APP更新不及时、不能覆盖所有浏览器的缺陷,同时考虑到浏览器内核版本不支持所述ServiceWorker的情况,通过ApplicationCache获取页面最新版本的HTML文件,进而实现及时更新前端静态资源并保证更新的可靠性和全覆盖可行性,进而提高应用加载的性能。
下面对本发明提供的应用加速加载的装置进行描述,下文描述的应用加速加载的装置与上文描述的应用加速加载的方法可相互对应参照。
图7为本发明一实施例提供的应用加速加载装置,如图7所示,该装置包括:
获取HTML文件单元710,用于响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;
获取其他静态资源文件单元720,用于通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;
页面渲染单元730,用于基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
本发明提供的应用加速加载的装置,通过利用ServiceWorker和httpCache分别存储HTML文件和其他静态资源文件并提供更新机制,以解决现有技术中混合型移动APP更新不及时的缺陷,同时考虑到浏览器内核版本不支持所述ServiceWorker的情况,通过ApplicationCache获取页面最新版本的HTML文件,进而实现及时更新前端静态资源并保证更新的可靠性。
进一步地,在本发明一实施例中,所述获取HTML文件单元710还用于:
基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ServiceWorker缓存中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWorker缓存中更新后的HTML文件。
进一步地,在本发明一实施例中,所述获取其他静态资源文件单元720还用于:
基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本;
若是最新版本,获取所述httpCache中的所述其他静态资源文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的其他静态资源文件并更新所述httpCache缓存中的其他静态资源文件,获取所述httpCache缓存中更新后的其他静态资源文件。
进一步地,在本发明一实施例中,所述获取其他静态资源文件单元720还用于:
基于所述最新版本的HTML文件获取所述最新版本的其他静态资源文件的第一文件摘要;
将所述第一文件摘要与所述httpCache中对应所述被访问页面的其他静态资源文件的第二文件摘要进行比较;
若所述第一文件摘要与第二文件摘要相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件是最新版本;
若所述第一文件摘要与第二文件摘要不相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件不是最新版本。
进一步地,在本发明一实施例中,所述获取HTML文件单元710还用于:
基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;
若是最新版本,获取所述ApplicationCache中的所述HTML文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache中的HTML文件,获取所述ApplicationCache中更新后的HTML文件。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行应用加速加载的方法,该方法包括:响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例所提供的应用加速加载的方法,该方法包括:响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的应用加速加载的方法,该方法包括:响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件;通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种应用加速加载的方法,其特征在于,包括:
响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件,其中,所述通过ServiceWorker获取被访问页面最新版本的HTML文件包括:
基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本;若是最新版本,获取所述ServiceWorker缓存中的所述HTML文件;若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWork缓存中更新后的HTML文件;
所述响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件包括:
基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;若是最新版本,获取所述ApplicationCache中的所述HTML文件;若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache中的HTML文件,获取所述ApplicationCache中更新后的HTML文件;
通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;
基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
2.根据权利要求1所述的应用加速加载的方法,其特征在于,所述通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件包括:
基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本;
若是最新版本,获取所述httpCache中的所述其他静态资源文件;
若不是最新版本,获取服务端对应所述被访问页面的最新版本的其他静态资源文件并更新所述httpCache中的其他静态资源文件,获取所述httpCache中更新后的其他静态资源文件。
3.根据权利要求2所述的应用加速加载的方法,其特征在于,所述基于所述最新版本的HTML文件判断所述httpCache中对应所述被访问页面的其他静态资源文件是否为最新版本,包括:
基于所述最新版本的HTML文件获取所述最新版本的其他静态资源文件的第一文件摘要;
将所述第一文件摘要与所述httpCache中对应所述被访问页面的其他静态资源文件的第二文件摘要进行比较;
若所述第一文件摘要与第二文件摘要相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件是最新版本;
若所述第一文件摘要与第二文件摘要不相同,确定所述httpCache中对应所述被访问页面的其他静态资源文件不是最新版本。
4.一种应用加速加载的装置,其特征在于,包括:
获取HTML文件单元,用于响应于接收到页面访问请求,判断用于加载被访问页面的浏览器内核版本是否支持服务进程ServiceWorker,响应于所述浏览器内核版本支持所述ServiceWorker,则通过所述 ServiceWorker获取被访问页面最新版本的HTML文件,响应于所述浏览器内核版本不支持所述ServiceWorker,则通过应用缓存ApplicationCache获取被访问页面最新版本的HTML文件,所述获取HTML文件单元还用于:
基于所述ServiceWorker与服务端的第一交互信息判断所述ServiceWorker缓存中对应所述被访问页面的HTML文件是否为最新版本;若是最新版本,获取所述ServiceWorker缓存中的所述HTML文件;若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ServiceWorker缓存中的HTML文件,获取所述ServiceWorker缓存中更新后的HTML文件,
所述获取HTML文件单元还用于:
基于ApplicationCache与服务器的第二交互信息判断所述ApplicationCache中对应所述被访问页面的HTML文件是否为最新版本;若是最新版本,获取所述ApplicationCache中的所述HTML文件;若不是最新版本,获取服务端对应所述被访问页面的最新版本的HTML文件并更新所述ApplicationCache 中的HTML文件,获取所述ApplicationCache 中更新后的HTML文件;
获取其他静态资源文件单元,用于通过静态资源缓存httpCache获取所述被访问页面最新版本的其他静态资源文件;
页面渲染单元,用于基于所述最新版本的HTML文件以及所述最新版本的其他静态资源文件渲染所述被访问页面。
5.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述应用加速加载的方法的步骤。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述应用加速加载的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851960.9A CN113779458B (zh) | 2021-07-27 | 2021-07-27 | 应用加速加载的方法及装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851960.9A CN113779458B (zh) | 2021-07-27 | 2021-07-27 | 应用加速加载的方法及装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779458A CN113779458A (zh) | 2021-12-10 |
CN113779458B true CN113779458B (zh) | 2024-02-27 |
Family
ID=78836340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110851960.9A Active CN113779458B (zh) | 2021-07-27 | 2021-07-27 | 应用加速加载的方法及装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779458B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995861B (zh) * | 2022-08-02 | 2022-09-30 | 中航信移动科技有限公司 | 一种基于weex的应用程序更新方法、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN108287836A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种资源缓存方法及装置 |
CN110244962A (zh) * | 2019-04-29 | 2019-09-17 | 北京辰森世纪科技股份有限公司 | 加载应用文件的及装置、系统、存储介质、电子装置 |
CN110287432A (zh) * | 2019-06-28 | 2019-09-27 | 北京金山安全软件有限公司 | 网络信息处理方法、装置和电子设备 |
CN110347949A (zh) * | 2019-06-20 | 2019-10-18 | 中信百信银行股份有限公司 | 网页加载方法、装置、电子设备及计算机可读存储介质 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和系统 |
CN111859211A (zh) * | 2019-12-31 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 网页离线访问方法、装置、终端及存储介质 |
CN112149016A (zh) * | 2019-06-28 | 2020-12-29 | 北京京东尚科信息技术有限公司 | 页面处理方法、装置、设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176844B (zh) * | 2011-09-28 | 2016-03-30 | 北京奇虎科技有限公司 | 一种ie6内核与新型ie内核的切换方法和系统 |
US9819762B2 (en) * | 2015-06-26 | 2017-11-14 | Cloudflare, Inc. | Method and apparatus for reducing loading time of web pages |
US10416992B2 (en) * | 2017-09-27 | 2019-09-17 | Whatsapp Inc. | Techniques for web application updates |
US11386214B2 (en) * | 2018-12-13 | 2022-07-12 | Sap Se | Web application execution with secure element extension |
-
2021
- 2021-07-27 CN CN202110851960.9A patent/CN113779458B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN108287836A (zh) * | 2017-01-09 | 2018-07-17 | 腾讯科技(深圳)有限公司 | 一种资源缓存方法及装置 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和系统 |
CN110244962A (zh) * | 2019-04-29 | 2019-09-17 | 北京辰森世纪科技股份有限公司 | 加载应用文件的及装置、系统、存储介质、电子装置 |
CN110347949A (zh) * | 2019-06-20 | 2019-10-18 | 中信百信银行股份有限公司 | 网页加载方法、装置、电子设备及计算机可读存储介质 |
CN110287432A (zh) * | 2019-06-28 | 2019-09-27 | 北京金山安全软件有限公司 | 网络信息处理方法、装置和电子设备 |
CN112149016A (zh) * | 2019-06-28 | 2020-12-29 | 北京京东尚科信息技术有限公司 | 页面处理方法、装置、设备和存储介质 |
CN111859211A (zh) * | 2019-12-31 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 网页离线访问方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
"Implementing Dynamic Web Page Interactions with a Java Processor Core on FPGA";X. Shen;《2011 2nd International Conference on Engineering and Industries (ICEI)》;第1-6页 * |
"边缘计算:现状与展望";施巍松 等;《计算机研究与发展》;第69-89页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113779458A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445583B (zh) | 一种页面显示方法、设备及系统 | |
CN105022750B (zh) | 资源文件加载方法和装置 | |
CN107547629B (zh) | 客户端静态资源下载的方法、装置、电子设备和可读介质 | |
CN112559927B (zh) | 一种网页加载方法及装置 | |
US9088461B2 (en) | Common web accessible data store for client side page processing | |
WO2013174237A1 (en) | Method and apparatus for speeding up web page access | |
CN107463613A (zh) | 页面加载方法及装置 | |
US9503541B2 (en) | Fast mobile web applications using cloud caching | |
CN111294372B (zh) | 一种在代理服务器实现缓存的方法、装置及系统 | |
CN113779458B (zh) | 应用加速加载的方法及装置、电子设备及存储介质 | |
CA2813339C (en) | Methods, apparatus, and systems for electronic device recovery | |
US9160804B2 (en) | Web storage optimization | |
CN110874445A (zh) | 网页加载方法、客户端及业务服务中心 | |
US20150113093A1 (en) | Application-aware browser | |
CN112637339A (zh) | 网络加速方法及装置、电子设备及存储介质 | |
CN112751917A (zh) | 资源文件加载方法、网络设备、电子设备及存储介质 | |
US9378178B1 (en) | Enhancing HTTP caching by allowing content sharing of data blocks across resources identified by different uniform resource locators | |
CN112380469A (zh) | 一种页面显示方法、装置、系统、电子设备及存储介质 | |
CN107343042B (zh) | 浏览器流量劫持方法、装置及移动终端 | |
CN107423367B (zh) | Web页面加载方法及装置 | |
CN116010740A (zh) | 浏览器的数据文件更新方法、装置、电子设备及存储介质 | |
CN112203158B (zh) | 一种图像展示方法、装置、系统、设备及介质 | |
CN110286936B (zh) | 热修复方法、装置、电子设备以及存储介质 | |
US10657312B2 (en) | Deploying new font technologies to legacy operating systems | |
CN111078257A (zh) | 一种h5应用包的加载方法及相关装置 |
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: 20231127 Address after: Room 102, 1st Floor, Building 1, No. 2 Chuangye Road, Haidian District, Beijing, 100080 Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd. Address before: 101309 room 24, 62 Farm Road, Erjie village, Yangzhen, Shunyi District, Beijing Applicant before: Beijing fangjianghu Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |