CN108287836B - 一种资源缓存方法及装置 - Google Patents
一种资源缓存方法及装置 Download PDFInfo
- Publication number
- CN108287836B CN108287836B CN201710013349.2A CN201710013349A CN108287836B CN 108287836 B CN108287836 B CN 108287836B CN 201710013349 A CN201710013349 A CN 201710013349A CN 108287836 B CN108287836 B CN 108287836B
- Authority
- CN
- China
- Prior art keywords
- application
- host application
- service agent
- host
- target application
- 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
Images
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
Abstract
本发明实施例提供了一种资源缓存方法及装置,该资源缓存方法可以通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;从而,避免用户打开目标应用时再从网络中获取页面资源所造成的页面打开时间过长的问题,并且在缓存资源有更新时,只需修改脚本文件,就能够及时获取页面所需的缓存资源,提高页面的加载速度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源缓存方法及装置。
背景技术
随着互联网技术的发展,用户可以通过应用程序随时随地访问互联网,给人们的生活、工作及学习带来了极大便利。目前,应用程序可以有两种模式,一种是客户端/服务器模式,另一种是浏览器/服务器模式;采用后者的应用程序也可以简称为Web应用,用户可以通过浏览器访问Web应用,即用户只需要在自己的终端设备上安装浏览器即可,而不必安装其他软件。
然而,在实践中发现,用户在使用Web应用时,常常需要等待较久的时间才能将Web应用的页面加载完毕。
发明内容
本发明实施例提供了一种资源缓存方法及装置,能够及时获取页面所需的缓存资源,提高页面的加载速度。
本发明实施例第一方面提供了一种资源缓存方法,包括:
通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用。
本发明实施例第二方面提供了一种资源缓存装置,包括:
获取单元,用于在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
更新单元,用于在当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
所述更新单元,还用于利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用。
本发明实施例中,终端可以在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;利用更新的服务代理执行所述获取的脚本文件,从而,可以及时更新所述宿主应用中所述目标应用的静态缓存资源。可见,本发明实施例可以避免用户打开目标应用时再从网络中获取页面资源所造成的页面打开时间过长的问题,并且在缓存资源有更新时,只需修改脚本文件,就能够及时获取页面所需的缓存资源,提高页面的加载速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种资源缓存系统的结构示意图;
图2是本发明实施例公开的一种资源缓存方法的流程示意图;
图3是本发明实施例公开的另一种资源缓存方法的流程示意图;
图4是本发明实施例公开的一种服务代理安装方法的流程示意图;
图5是本发明实施例公开的另一种服务代理安装方法的流程示意图;
图6是本发明实施例公开的另一种资源缓存方法的流程示意图;
图7是本发明实施例公开的一种资源缓存装置的结构示意图;
图8是本发明实施例公开的另一种资源缓存装置的结构示意图;
图9是本发明实施例公开的一种终端的结构示意图。
具体实施方式
本发明实施例公开了一种资源缓存方法及装置,能够及时更新目标应用的缓存资源,缩短目标应用打开页面所需的时长。以下进行详细阐述。
请参阅图1,图1是本发明实施例公开的一种资源缓存系统的结构示意图,如图1所示,该资源缓存系统可以包括终端100和服务器200,其中,终端可以为手机、平板电脑、可穿戴设备等智能设备;终端100可以获取宿主应用的安装包,以安装宿主应用。宿主应用是指其他应用赖以存在的软件环境,或者为其他应用提供运行环境的应用,也可以称为宿主Host,如浏览器、微信、QQ等;目标应用是指可以通过宿主应用开启而不必单独下载安装包进行安装的应用,例如,基于浏览器的Web应用、基于微信的小程序应用等,针对基于微信开发的小程序应用,用户可以通过微信扫描小程序应用的二维码或者搜一下小程序应用的标识即可进入小程序应用中。
本发明实施例中,服务器200可以包括宿主应用的后台服务器,简称为宿主服务器210,也可以包括目标应用的应用服务器,简称为应用服务器220。宿主服务器210用于向宿主应用下发资源,例如宿主应用的更新包。
本发明实施例中,服务代理是指运行于宿主应用的后台,在不影响宿主应用的页面展示的情况下处理任务,例如,定时更新、消息通知推送等。本发明实施例中,服务代理可以为Service Worker,Service Worker不需要与宿主应用进行页面交互,在后台就可以执行任务。
本发明实施例中,目标应用的静态缓存资源可以包括图片、视频或者宿主应用可以识别的超级文本标记语言(Hyper Text Markup Language,HTML)、脚本(JavaScript,JS),层叠样式表(Cascading Style Sheets,CSS)等,本发明实施例不做限定。
下面结合图1所示的资源缓存系统对本发明实施例提供的资源缓存方法进行详细阐述。
请参阅图2,图2是本发明实施例公开的一种资源缓存方法的流程示意图,该资源缓存方法可以包括以下步骤:
S101、通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
S102、当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
S103、利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
本发明实施例中,宿主应用可以安装在终端中,终端通过宿主应用开启目标应用时,启动宿主应用中安装的服务代理,可以为,终端启动服务代理的检查更新线程,例如,Service Worker线程,去应用服务器(也可以称为业务服务器)上拉取服务代理脚本,即Service Worker脚本,当Service Worker脚本与本地(即终端)存储的Service Worker脚本有一个字节的不同时,就可以启动更新该Service Worker的线程,也可以称为激活服务代理的安装线程,安装该拉取的脚本文件。其中,脚本文件中包括所要拉取的静态缓存资源,从而使得终端可以执行该脚本文件来拉取目标应用的静态缓存资源。
而现有的宿主应用存储目标应用的资源缓存方法是通过将静态缓存资源永久缓存到宿主应用中,当网络流量有限、网速较慢或者没有网络的情况下,在打开目标应用的页面时,可以拦截页面请求,去缓存中查看是否有该目标应用的静态缓存资源,若有,则可以直接利用该静态缓存资源来提高首屏速度。在需要更新静态缓存资源时,还需要将更新的静态缓存资源提交到宿主应用的后台服务器,而本发明实施例提供的资源缓存方法,使得业务或者目标应用的发布者只需在自己的应用服务器中修改脚本文件,由宿主应用通过服务代理更新脚本文件,自动拉取静态缓存资源,避免将缓存资源还需提交给宿主应用的后台服务器的繁琐操作,大大提高了静态缓存资源更新效率,即能够及时获取页面所需的缓存资源,提高页面的加载速度。
请参阅图3,图3是本发明实施例公开的另一种资源缓存方法的流程示意图;其中,图3所示的资源缓存方法与图2所示的资源缓存方法相比,在执行步骤S101之前,可以执行以下步骤:
S200、在宿主应用中安装目标应用的服务代理;
S300、利用安装的服务代理,执行宿主应用中存储的脚本文件,下载目标应用的静态缓存资源。其中宿主应用中安装目标应用的服务代理。
在步骤S101中,利用步骤S200安装的服务代理从目标应用的应用服务器中获取脚本文件,及时利用获取的脚本文件更新服务代理,使得服务代理可以执行脚本文件,更新步骤S300下载的静态缓存资源。
作为一种可选的实施方式,请参阅图4,图4是本发明实施例公开的一种服务代理安装方法的流程示意图,即步骤S200,在宿主应用中安装目标应用的服务代理可以包括以下步骤:
S211、当安装宿主应用时,获取所述宿主应用的安装包中内置的目标应用的离线包,所述离线包为预先利用所述宿主应用访问采用了服务代理的应用服务器而生成的;
S212、将所述离线包拷贝到所述宿主应用的预设目录下;
S213、当所述宿主应用启动时,访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,离线包的生成可以通过以下步骤:研发人员待发布目标应用时,可以通过宿主应用打开离线包生成环境进行初始化,然后重启宿主应用并访问目标应用采用Service Worker脚本离线缓存的站点,生成与宿主应用相匹配的离线包。
举例来说,宿主应用为QQ浏览器,目标应用为Web游戏;通过QQ浏览器打开离线包生成环境(如swtools.qq.com)进行初始化后,重启QQ浏览器并访问Web游戏采用ServiceWorker脚本离线所缓存的站点,生成与QQ浏览器相匹配的该Web游戏的离线包。
其中,该离线包也可以称为缓存资源,如包括图片、超级文本标记语言(HyperTextMarkup Language,HTML)、脚本(JavaScript,JS),层叠样式表(Cascading Style Sheets,CSS)等压缩的离线zip包。其中,匹配是指宿主应用能够对离线包进行处理。
可选的,为了保证离线包的正确性,即能够被宿主应用识别,目标应用侧可以将上述生成的离线包上传给宿主应用的发布者,由宿主应用的发布者来检验该离线包是否有误,即是否能通过宿主应用来呈现该离线包的内容,若无误,则可以将该离线包打包到宿主应用的安装包进行一并发布。
针对检验过的离线包,终端可以在安装宿主应用时,执行步骤S212至S213,将目标应用的离线包拷贝到预设目录下;在启动宿主应用时,可以访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
举例来说,终端在安装QQ浏览器时,将Web应用的离线zip包拷贝到/data/data/com.*/tbs/data/Service Worker.zip位置;终端在初始化浏览器时,会自动读取Web应用的离线zip包,并将该离线zip包解压拷贝到浏览器内核的工作目录/data/data/com.*/app_webview/Service Worker中,激活宿主应用安装该Service Worker,激活之后,Service Worker将接管目标应用的更新或者资源缓存等操作。可见,该实施方式可以模仿用户第一次通过浏览器打开Web应用并获取Service Worker脚本对应的缓存资源,使得用户真正通过浏览器打开Web应用时,直接可以利用提前准备好的缓存资源显示页面,从而缩短了Web应用首次访问时页面呈现所需的时长。
作为另一种可选的实施方式,请参阅图5,图5是本发明实施例公开的另一种服务代理的安装方法的流程示意图,即步骤S210,在宿主应用中安装目标应用的服务代理可以包括以下步骤:
S221、当启动宿主应用时,获取所述宿主应用的后台服务器中配置的白名单,所述白名单包括采用了服务代理的目标应用的应用服务器网址;
S222、启动服务代理安装线程访问所述应用服务器网址,以使所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,应用服务器可以向后台服务器210提交预置申请,该预置申请用于向后台服务器210申请在其中配置白名单,该白名单包括采用了服务代理的站点或地址,如目标应用的后台服务器,即应用服务器220,例如,白名单的格式为{"url":"","scriptUrl":""}的格式;可选的,该预置申请可以包括目标应用的网址、目标应用的Service Worker脚本网址、目标应用的预置宿主名单、目标应用的预置有效期、目标应用的预置网络选择以及目标应用的预置时间段选择等。当宿主应用的后台服务器210对该预置申请审核通过后,可以在后台服务器中配置该白名单;当宿主应用启动时,后台服务器210将该白名单下发给宿主应用;宿主应用获取白名单并接收后台服务器下发的静默安装命令;响应该静默安装命令,访问白名单中各站点,安装服务代理,并在服务代理安装成功后,获取目标应用的静态缓存资源。
其中,静默安装命令是指宿主应用启动后台的安装线程,在不影响宿主应用的页面展示的情况下下,安装服务代理并存储静态缓存资源。
可见,该服务代理安装过程,可以独立于宿主应用的当前页面,不需要与宿主应用的当前页面进行交互,就可以在后台悄悄执行服务代理安装和静态资源缓存,从而,可以在用户打开目标应用时,从本地获取目标应用的缓存资源来优化目标应用的首次访问。
通过图1至图5的资源缓存,使得宿主应用开启目标应用时,可以拦截目标应用的页面请求,查询宿主应用中目标应用的缓存资源;当查询到目标应用的缓存资源时,获取该缓存资源;利用该缓存资源显示目标应用的页面。从而避免了用户打开目标应用时再从应用服务器获取页面资源,缩短了页面显示所需的时长。例如,通过浏览器打开重度业务,如Web游戏时,由于终端通过浏览器执行本发明实施例所述的操作提前缓存了Web游戏的页面资源,因此,可以快速打开该Web游戏,避免用户因为第一次打开较慢而直接放弃访问,造成用户的流失。
需要说明的是,图4所示的服务代理安装方法和图5所示的服务代理安装方法相当于一个黑盒,图4所示的服务代理安装方法中,事先利用黑盒运行一个结果,即生成离线包丢给宿主应用;而图5所示的服务代理安装方法,相当于利用白名单,这个黑盒源,在宿主应用中运行一遍黑盒,得到结果,即安装了服务代理,并利用服务代理缓存了静态缓存资源再交给宿主应用。可见,图5适用于宿主应用的安装包大小有限制的情况下,即图5所示的方法只需要宿主应用启动时从后台服务器拉取白名单来进行服务代理的安装;图4所示的方法适用于对网络流量有限制的情况下,可以直接从安装包中读取离线包的方式来安装服务代理,从而节省网络流量。
需要注意的是,图4所示的服务代理安装方法和图5所示的服务代理安装方法可以选择其一的方式在终端中实施,也可以两种实施方式并存。另外,无论是图4的离线包方式,还是图5的静默安装方式,目标应用侧,即应用服务器均需要提前使用离线包生成环境生成离线包,并在检测离线包无误,即宿主应用可以使用该离线包时,才可以将离线包打包到宿主应用,或者将离线包放置到应用服务器中,供宿主应用安装该服务代理。
请参阅图6,图6是本发明实施例公开的另一种资源缓存方法的流程示意图,其中,图6所示的资源缓存方法中,以宿主应用为QQ浏览器以及目标应用为Web应用为例进行阐述,具体的,可以包括以下步骤:
S401、Web应用侧通过QQ浏览器打开swtools.qq.com,点击离线包生成环境初始化;
S402、Web应用侧重启QQ浏览器,并访问使用了ServiceWorker离线缓存的站点,生成离线zip包;
其中,该离线zip包中包括图片、超级文本标记语言(HyperText MarkupLanguage,HTML)、脚本(JavaScript,JS),层叠样式表(Cascading Style Sheets,CSS)等用于显示Web应用首次访问页面的资源,简称为缓存资源。
S403、QQ浏览器的服务器检验该离线zip包是否有误,若无误,则执行步骤S404;若有误,则再次执行步骤S401;
S404、QQ浏览器的发布者确定是否将该离线zip包打包到QQ浏览器的安装包中,若确定将该离线zip包打包到QQ浏览器的安装包中,则执行步骤S405至S407;若确定不将该离线zip包打包到QQ浏览器的安装包中,则执行步骤S408至S411;
S405、QQ浏览器的发布者将该离线zip包放入宿主应用的安装包APK中;
S406、QQ浏览器在安装时,将离线zip包拷贝到预设文件夹/data/data/com.*/tbs/data/Service Worker.zip中;
S407、QQ浏览器在初始化时,读取该离线zip包,并将其解压拷贝到内核的工作目录/data/data/com.*/app_webview/Service Worker中。
本发明实施例中,步骤S405至S407所述的操作可以模仿用户第一次通过QQ浏览器打开Web应用并安装离线zip包的过程,从而,可以在用户真实打开Web应用,直接读取本地的缓存资源,优化了Web应用的首次访问效果。
S408、Web应用侧向QQ浏览器的后台服务器提交预置申请;
S409、后台服务器审核通过该预置申请时,将需要预置的Web应用配置成{"url":"","scriptUrl":""}格式白名单;
S410、QQ浏览器第一次启动时,拉取并存储后台服务器中配置的白名单;
S411、QQ浏览器启动静默安装程序,利用ServiceWorker线程安装白名单中各站点对应的离线zip包。
本发明实施例中,步骤S408至S411对于安装包大小有限制的宿主应用来说相当方便,不必在安装包中就打包各种Web应用的离线zip包。
进一步的,本发明实施例中,在Web应用的缓存资源有更新时,可以直接修改其ServiceWorker脚本即可,不必将更新的缓存资源提交到QQ浏览器的后台服务器,从而增加了Web应用的资源缓存的灵活性。
请参阅图7,图7是本发明实施例公开的一种资源缓存装置的结构示意图,如图7所示,该资源缓存装置可以包括以下单元:
获取单元510,用于通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
更新单元520,用于当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
所述更新单元520,还用于利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用,例如,宿主应用为浏览器时,所述目标应用为Web应用,Web应用可以基于浏览器提供的运行环境来运行;宿主应用为即时聊天应用时,目标应用为基于所述即时聊天应用来开发的应用,例如,宿主应用为微信,目标应用为基于微信的小程序应用等。
本发明实施例中,宿主应用可以安装在终端中,获取单元510通过宿主应用开启目标应用时,启动宿主应用中安装的服务代理,即启动服务代理的检查更新线程,例如,Service Worker线程,从应用服务器(也可以称为业务服务器)上拉取服务代理脚本,即Service Worker脚本,当Service Worker脚本与本地(即终端)存储的Service Worker脚本有一个字节的不同时,更新单元520就可以启动更新该Service Worker,也可以称为激活服务代理的安装线程,执行或安装拉取的脚本文件。其中,脚本文件中包括所要拉取的静态缓存资源,从而使得更新单元520可以执行该脚本文件来拉取目标应用的静态缓存资源。
而现有的宿主应用存储目标应用的资源缓存方法是通过将静态缓存资源永久缓存到宿主应用中,当网络流量有限、网速较慢或者没有网络的情况下,在打开目标应用的页面时,可以拦截页面请求,去缓存中查看是否有该目标应用的静态缓存资源,若有,则可以直接利用该静态缓存资源来提高首屏速度。在需要更新静态缓存资源时,还需要将更新的静态缓存资源提交到宿主应用的后台服务器,而本发明实施例提供的资源缓存方法,使得业务或者目标应用的发布者只需在自己的应用服务器中修改脚本文件,由宿主应用通过服务代理更新脚本文件,自动拉取静态缓存资源,避免将缓存资源还需提交给宿主应用的后台服务器的繁琐操作,大大提高了静态缓存资源更新效率,即能够及时获取页面所需的缓存资源,提高页面的加载速度。
本发明实施例中,图7所示的资源缓存装置还可以包括:
安装单元530,用于在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理之前,在宿主应用中安装目标应用的服务代理;
下载单元540,用于利用安装的服务代理执行所述宿主应用中存储的脚本文件,下载所述目标应用的静态缓存资源。
作为一种可选的实施方式,图7所示的资源缓存装置中,安装单元530可以包括:
第一获取子单元531,用于在安装宿主应用时,获取所述宿主应用的安装包中内置的目标应用的离线包,所述离线包为预先利用所述宿主应用访问采用了服务代理的应用服务器而生成的;
拷贝子单元532,用于将所述离线包拷贝到所述宿主应用的预设目录下;
所述拷贝子单元532,还用于在所述宿主应用启动时,访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,宿主应用的安装包中内置的离线包的生成过程可以包括以下操作:研发人员待发布目标应用时,可以通过宿主应用打开离线包生成环境进行初始化,然后重启宿主应用并访问目标应用采用Service Worker脚本离线缓存的站点,生成与宿主应用相匹配的离线包。
举例来说,宿主应用为QQ浏览器,目标应用为Web游戏;通过QQ浏览器打开离线包生成环境(如swtools.qq.com)进行初始化后,重启QQ浏览器并访问Web游戏采用ServiceWorker脚本离线所缓存的站点,生成与QQ浏览器相匹配的该Web游戏的离线包。
其中,该离线包也可以称为缓存资源,如包括图片、超级文本标记语言(HyperTextMarkup Language,HTML)、脚本(JavaScript,JS),层叠样式表(Cascading Style Sheets,CSS)等压缩的离线zip包。其中,匹配是指宿主应用能够对离线包进行处理。
可选的,为了保证离线包的正确性,即能够被宿主应用识别,目标应用侧可以将上述生成的离线包上传给宿主应用的发布者,由宿主应用的发布者来检验该离线包是否有误,即是否能通过宿主应用来呈现该离线包的内容,若无误,则可以将该离线包打包到宿主应用的安装包进行一并发布。
针对检验过的离线包,资源缓存装置可以在安装宿主应用时,由拷贝子单元532将目标应用的离线包拷贝到预设目录下;在启动宿主应用时,可以访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
举例来说,资源缓存装置在安装QQ浏览器时,拷贝子单元532将Web应用的离线zip包拷贝到/data/data/com.*/tbs/data/Service Worker.zip位置;在初始化浏览器时,拷贝子单元532会自动读取Web应用的离线zip包,并将该离线zip包解压拷贝到浏览器内核的工作目录/data/data/com.*/app_webview/Service Worker中,激活宿主应用安装该Service Worker,激活之后,Service Worker将接管目标应用的更新或者资源缓存等操作。可见,该实施方式可以模仿用户第一次通过浏览器打开Web应用并获取Service Worker脚本,安装Service Worker,拉取对应的缓存资源,使得用户真正通过浏览器打开Web应用时,直接可以利用提前准备好的缓存资源显示页面,从而缩短了Web应用首次访问时页面呈现所需的时长。
作为另一种可选的实施方式,请参阅图8,图8所示的资源缓存装置中,安装单元530可以包括:
第二获取子单元533,用于在启动宿主应用时,获取所述宿主应用的后台服务器中配置的白名单,所述白名单包括采用了服务代理的目标应用的应用服务器网址;
启动单元534,用于启动服务代理安装线程访问所述应用服务器网址,以使所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,应用服务器可以向后台服务器210提交预置申请,该预置申请用于向后台服务器210申请在其中配置白名单,该白名单包括采用了服务代理的站点或地址,如目标应用的后台服务器,即应用服务器220的站点或地址,例如,白名单的格式为{"url":"","scriptUrl":""}的格式;可选的,该预置申请可以包括目标应用的网址、目标应用的Service Worker脚本网址、目标应用的预置宿主名单、目标应用的预置有效期、目标应用的预置网络选择以及目标应用的预置时间段选择等。当宿主应用的后台服务器210对该预置申请审核通过后,可以在后台服务器中配置该白名单;当宿主应用启动时,后台服务器210将该白名单下发给宿主应用;第二获取子单元533获取白名单并接收后台服务器下发的静默安装命令;启动单元534,响应该静默安装命令,启动服务代理安装线程访问白名单中各站点,安装服务代理,并在服务代理安装成功后,获取目标应用的静态缓存资源。
其中,静默安装命令是指宿主应用启动后台的安装线程,在不影响宿主应用的页面展示的情况下下,安装服务代理并存储静态缓存资源。
可见,该服务代理安装过程,可以独立于宿主应用的当前页面,不需要与宿主应用的当前页面进行交互,就可以在后台悄悄执行服务代理安装和静态资源缓存,从而,可以在用户打开目标应用时,从本地获取目标应用的缓存资源来优化目标应用的首次访问。
通过图7所示的资源缓存装置来缓存目标应用的静态缓存资源,使得宿主应用开启目标应用时,可以拦截目标应用的页面请求,查询宿主应用中目标应用的缓存资源;当查询到目标应用的缓存资源时,获取该缓存资源;利用该缓存资源显示目标应用的页面。从而避免了用户打开目标应用时再从应用服务器获取页面资源,缩短了页面显示所需的时长。例如,通过浏览器打开重度业务,如Web游戏时,由于终端通过浏览器执行本发明实施例所述的操作提前缓存了Web游戏的页面资源,因此,可以快速打开该Web游戏,避免用户因为第一次打开较慢而直接放弃访问,造成用户的流失。
需要说明的是,图7所示的资源缓存装置中的安装单元和图8所示的资源缓存装置中的安装单元相当于一个黑盒,图7所示的资源缓存装置中的安装单元中,事先利用黑盒运行一个结果,即生成离线包丢给宿主应用;而图8所示的资源缓存装置中的安装单元,相当于利用白名单,这个黑盒的源,在宿主应用中运行一遍黑盒,得到结果,即安装了服务代理,并利用服务代理缓存了静态缓存资源再交给宿主应用。可见,图5适用于宿主应用的安装包大小有限制的情况下,即图8所示的资源缓存装置中的安装单元只需要宿主应用启动时从后台服务器拉取白名单来进行服务代理的安装;图7所示的资源缓存装置中的安装单元适用于对网络流量有限制的情况下,可以直接从安装包中读取离线包的方式来安装服务代理,从而节省网络流量。
需要注意的是,图7所示的资源缓存装置中的安装单元和图8所示的资源缓存装置中的安装单元可以选择其一的方式在终端中实施,也可以两种实施方式并存。另外,无论是图4的离线包方式,还是图8所示的资源缓存装置中的安装单元的静默安装方式,目标应用侧,即应用服务器均需要提前使用离线包生成环境生成离线包,并在检测离线包无误,即宿主应用可以使用该离线包时,才可以将离线包打包到宿主应用,或者将离线包放置到应用服务器中,供宿主应用安装该服务代理。
请参阅图9,图9是本发明实施例公开的一种终端的结构示意图,本发明实施例所述的终端的相关技术细节可以参照图1及图6所示的发明实施例内容,这里不再详述。该终端可以包括:包括处理器601、通信接口602、存储器603和通信总线604,其中,通信总线604用于实现这些组件之间的通信连接,通信接口602用于实现各机器之间的通信连接。存储器603可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器603可选的还可以是至少一个位于远离前述处理器601的存储装置。其中,处理器601可以结合图7或图8所示的资源缓存装置,存储器603中存储一组程序代码,且处理器601调用存储器603中存储的程序代码,用于执行以下操作:
通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用。
本发明实施例中,处理器601调用存储器603中存储的程序代码,所述通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理之前,还可以执行以下操作:
在宿主应用中安装目标应用的服务代理;
利用安装的服务代理执行所述宿主应用中存储的脚本文件,下载所述目标应用的静态缓存资源。
安装所述宿主应用时,将所述目标应用的缓存资源拷贝到预设文件夹中;其中,所述目标应用的缓存资源已预先集成到所述宿主应用的安装包中;
当所述宿主应用初始化时,将所述缓存资源拷贝到所述宿主应用的工作目录中。
本发明实施例中,处理器601调用存储器603中存储的程序代码,在宿主应用中安装目标应用的服务代理,可以执行以下操作:
当安装宿主应用时,获取所述宿主应用的安装包中内置的目标应用的离线包,所述离线包为预先利用所述宿主应用访问采用了服务代理的应用服务器而生成的;
将所述离线包拷贝到所述宿主应用的预设目录下;
当所述宿主应用启动时,访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,处理器601调用存储器603中存储的程序代码,所述在宿主应用中安装目标应用的服务代理,可以执行以下操作:
当启动宿主应用时,获取所述宿主应用的后台服务器中配置的白名单,所述白名单包括采用了服务代理的目标应用的应用服务器网址;
启动服务代理安装线程访问所述应用服务器网址,以使所述宿主应用安装所述目标应用的服务代理。
本发明实施例中,图9所示终端可以执行上述方法实施例中的全部或部分步骤,此处不再详述。
可见,本发明实施例中,终端可以在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;利用更新的服务代理执行所述获取的脚本文件,从而,可以及时更新所述宿主应用中所述目标应用的静态缓存资源。可见,本发明实施例可以避免用户打开目标应用时再从网络中获取页面资源所造成的页面打开时间过长的问题,能够及时获取页面所需的缓存资源,提高页面的加载速度。
以上对本发明实施例所提供的资源缓存方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种资源缓存方法,其特征在于,包括:
通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用;
其中,所述宿主应用安装所述服务代理是通过当所述宿主应用启动时访问所述宿主应用的预设目录下的离线包来触发的,并且在宿主应用中安装目标应用的服务代理包括:
当安装宿主应用时,获取所述宿主应用的安装包中内置的目标应用的离线包,所述离线包为预先利用所述宿主应用访问采用了服务代理的应用服务器而生成的,并且所述离线包中包括用于显示目标应用首次访问页面的资源;
将所述离线包拷贝到所述宿主应用的预设目录下;
当所述宿主应用启动时,访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
2.根据权利要求1所述的方法,其特征在于,所述通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理之前,所述方法还包括:
在宿主应用中安装目标应用的服务代理;
利用安装的服务代理执行所述宿主应用中存储的脚本文件,下载所述目标应用的静态缓存资源。
3.根据权利要求1或2所述的方法,其特征在于,当所述宿主应用为浏览器时,所述目标应用为Web应用;当所述宿主应用为即时聊天应用时,所述目标应用为基于所述即时聊天应用来开发的应用。
4.一种资源缓存装置,其特征在于,包括:
获取单元,用于在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理,利用所述服务代理从所述目标应用的应用服务器中获取脚本文件;
更新单元,用于在当获取的脚本文件与所述宿主应用中存储的脚本文件不同时,更新所述服务代理;
所述更新单元,还用于利用更新的服务代理执行所述获取的脚本文件,更新所述宿主应用中所述目标应用的静态缓存资源;
其中,所述宿主应用是指为所述目标应用提供运行环境的应用,并且
所述装置还包括安装单元,所述安装单元用于在通过宿主应用开启目标应用时,启动所述宿主应用中安装的服务代理之前,在宿主应用中安装目标应用的服务代理,所述安装单元包括:
第一获取子单元,用于在安装宿主应用时,获取所述宿主应用的安装包中内置的目标应用的离线包,所述离线包为预先利用所述宿主应用访问采用了服务代理的应用服务器而生成的,并且所述离线包中包括用于显示目标应用首次访问页面的资源;
拷贝子单元,用于将所述离线包拷贝到所述宿主应用的预设目录下;
所述拷贝子单元,还用于在所述宿主应用启动时,访问所述预设目录,将所述离线包解压并拷贝到所述宿主应用的内核工作目录中,以触发所述宿主应用安装所述目标应用的服务代理。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
下载单元,用于利用安装的服务代理执行所述宿主应用中存储的脚本文件,下载所述目标应用的静态缓存资源。
6.根据权利要求4或5所述的装置,其特征在于,当所述宿主应用为浏览器时,所述目标应用为Web应用;当所述宿主应用为即时聊天应用时,所述目标应用为基于所述即时聊天应用来开发的应用。
7.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序代码,该程序代码被处理器执行时,实现如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710013349.2A CN108287836B (zh) | 2017-01-09 | 2017-01-09 | 一种资源缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710013349.2A CN108287836B (zh) | 2017-01-09 | 2017-01-09 | 一种资源缓存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287836A CN108287836A (zh) | 2018-07-17 |
CN108287836B true CN108287836B (zh) | 2022-09-13 |
Family
ID=62819244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710013349.2A Active CN108287836B (zh) | 2017-01-09 | 2017-01-09 | 一种资源缓存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108287836B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284089B (zh) * | 2018-08-30 | 2022-04-05 | 上海艾融软件股份有限公司 | 一种基于微服务技术的电商平台的实现系统及方法 |
CN109298877B (zh) * | 2018-09-17 | 2021-10-19 | 北京智明星通科技股份有限公司 | 游戏更新方法及系统、终端和计算机可读存储介质 |
CN109491672A (zh) * | 2018-10-23 | 2019-03-19 | 平安普惠企业管理有限公司 | 金融小程序的实现方法、装置、计算机设备及存储介质 |
CN111125573A (zh) * | 2018-10-31 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 网页数据的处理方法、装置及电子设备 |
CN111382344B (zh) * | 2018-12-27 | 2023-04-28 | 阿里巴巴集团控股有限公司 | 为对象提供页面加载服务的方法、装置及客户端 |
CN109857430B (zh) * | 2019-01-09 | 2022-08-12 | 创新先进技术有限公司 | 跨容器离线包的数据处理方法、支付方法、装置及客户端 |
CN109995877B (zh) * | 2019-04-12 | 2021-10-12 | 上海连尚网络科技有限公司 | 信息推送方法和装置 |
CN110515631B (zh) * | 2019-08-23 | 2023-06-09 | 掌阅科技股份有限公司 | 应用安装数据包的生成方法、服务器及计算机存储介质 |
CN111913757A (zh) * | 2020-07-13 | 2020-11-10 | 西安即刻易用网络科技有限公司 | 一种单页面应用程序加载方法及系统 |
CN111859225B (zh) * | 2020-07-31 | 2023-08-22 | 中国工商银行股份有限公司 | 程序文件的访问方法、装置、计算设备和介质 |
CN113779458B (zh) * | 2021-07-27 | 2024-02-27 | 贝壳找房(北京)科技有限公司 | 应用加速加载的方法及装置、电子设备及存储介质 |
CN114064146B (zh) * | 2021-11-16 | 2024-04-09 | 珠海金山数字网络科技有限公司 | 资源加载方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984897A (zh) * | 2014-05-29 | 2014-08-13 | 北京奇虎科技有限公司 | 一种在软件安装过程中阻止病毒入侵的方法及装置 |
CN105335410A (zh) * | 2014-07-31 | 2016-02-17 | 优视科技有限公司 | 一种基于合成渲染加速的网页更新方法和装置 |
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN105824909A (zh) * | 2016-03-15 | 2016-08-03 | 腾讯科技(深圳)有限公司 | 页面生成方法和装置 |
CN105897902A (zh) * | 2016-05-05 | 2016-08-24 | 北京思特奇信息技术股份有限公司 | 一种通过浏览器启动本地应用的方法及系统 |
CN105912689A (zh) * | 2016-04-20 | 2016-08-31 | 郑州悉知信息科技股份有限公司 | 一种网站显示方法、装置及系统 |
CN106155723A (zh) * | 2015-04-13 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 业务应用程序的升级方法和装置 |
CN106294365A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种单页web应用的页面数据处理方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9819762B2 (en) * | 2015-06-26 | 2017-11-14 | Cloudflare, Inc. | Method and apparatus for reducing loading time of web pages |
-
2017
- 2017-01-09 CN CN201710013349.2A patent/CN108287836B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984897A (zh) * | 2014-05-29 | 2014-08-13 | 北京奇虎科技有限公司 | 一种在软件安装过程中阻止病毒入侵的方法及装置 |
CN105335410A (zh) * | 2014-07-31 | 2016-02-17 | 优视科技有限公司 | 一种基于合成渲染加速的网页更新方法和装置 |
CN106155723A (zh) * | 2015-04-13 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 业务应用程序的升级方法和装置 |
CN106294365A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种单页web应用的页面数据处理方法及设备 |
CN105577813A (zh) * | 2015-12-31 | 2016-05-11 | 北京奇艺世纪科技有限公司 | 一种web混合应用的更新方法和系统 |
CN105824909A (zh) * | 2016-03-15 | 2016-08-03 | 腾讯科技(深圳)有限公司 | 页面生成方法和装置 |
CN105912689A (zh) * | 2016-04-20 | 2016-08-31 | 郑州悉知信息科技股份有限公司 | 一种网站显示方法、装置及系统 |
CN105897902A (zh) * | 2016-05-05 | 2016-08-24 | 北京思特奇信息技术股份有限公司 | 一种通过浏览器启动本地应用的方法及系统 |
Non-Patent Citations (3)
Title |
---|
Service worker入门;苏州前端;《微信公众平台》;20160418;正文1-14页 * |
Service worker初体验;前端大全;《微信公众平台》;20160115;全文 * |
苏州前端.Service worker入门.《微信公众平台》.2016, * |
Also Published As
Publication number | Publication date |
---|---|
CN108287836A (zh) | 2018-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287836B (zh) | 一种资源缓存方法及装置 | |
US8924943B2 (en) | Browser emulator system | |
CN109634588B (zh) | 一种兼容多浏览器的Office文档在线编辑方法和系统 | |
JP4857349B2 (ja) | ポータル・システム内で非同期ポータル・ページを提供するための方法、システム、およびコンピュータ・プログラム | |
US20150301873A1 (en) | Method and system for expanding webapp application function | |
US20130219383A1 (en) | Using an Application Cache to Update Resources of Installed Applications | |
WO2003093990A2 (en) | Automated installation of an application | |
US8682964B1 (en) | Progressively loading network content | |
CN106557347B (zh) | 软件更新方法及装置 | |
JP5440252B2 (ja) | 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム | |
US8539506B2 (en) | Dynamic injection of code into running process | |
JP2015167014A (ja) | ウェブアプリケーションを実施する方法、装置、サーバ、及びシステム | |
WO2021164367A1 (zh) | 一种容器镜像的提供方法、加载方法及相关设备和系统 | |
AU2016202576B2 (en) | Techniques for evaluating applications through use of an auxiliary application | |
CN112131500B (zh) | 一种事件响应装置、方法、电子设备及存储介质 | |
WO2013091556A1 (zh) | 一种基于浏览器的应用程序的扩展方法及装置 | |
CN111880790A (zh) | 页面渲染方法、页面渲染系统和计算机可读存储介质 | |
CN112799663A (zh) | 页面显示方法、装置、计算机可读存储介质及电子设备 | |
WO2018149374A1 (zh) | 一种页面漏洞的修复方法及装置 | |
CN111079048A (zh) | 一种页面加载方法及装置 | |
CN114116443A (zh) | 一种页面数据传递方法、装置、系统及介质 | |
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
CN109101429B (zh) | 一种机顶盒的浏览器页面调试的方法及装置 | |
CN113761412A (zh) | 应用页面的显示方法、装置、电子设备、介质及应用系统 | |
CN112380469A (zh) | 一种页面显示方法、装置、系统、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |