当前位置: 首页 > 专利查询>彭志勇专利>正文

基于Appcache 的文件缓存方法技术

技术编号:16755680 阅读:56 留言:0更新日期:2017-12-09 02:09
本发明专利技术涉及一种基于Appcache的文件缓存方法,该文件缓存方法包括:浏览器访问系统的一个网址,预先指定该网页使用某一个manifest文件;服务器端使用动态网页技术响应所述manifest文件请求时,先通过cookie判断浏览器是否缓存了所述manifest文件的指定资源,然后根据判断结果对所述manifest文件进行相应操作后发送至浏览器端,浏览器端接收所述manifest文件并进行文件缓存。本发明专利技术通过动态的manifest文件配合前端的JavaScript响应Appcache的事件,可以做出针对性控制指令,达到通过固定的URL和manifest文件地址来具化缓存指定某一部分的资源,简化网站管理,加快资源缓存下载速度。

File caching based on Appcache

The invention relates to a file cache method based on Appcache, including the file cache method: a web browser to access the system, the pre specified page using a manifest file; the use of server-side dynamic web technology in response to the manifest file request, through the cookie first determine whether the browser cache is specified by the manifest resource the file, and then according to the judgment result for the corresponding operation is sent to the browser to the manifest file, the browser receives the manifest file and the file cache. The present invention through the dynamic manifest file with the front end of the JavaScript response to Appcache events can make specific control instructions, achieved by fixed URL and manifest file address out of the cache to specify a part of the resources, simplify the management of the site to speed up resource buffer download speed.

【技术实现步骤摘要】
基于Appcache的文件缓存方法
本专利技术涉及一种缓存技术,具体地说是一种基于Appcache的文件缓存方法。
技术介绍
在计算机和网络迅速发展的现代社会,每个人生活、学习和工作都离不开web应用和数据存储,大量文档和资料数据的缓存是需要重点解决的问题。起初,HTML页面只能通过向服务器访问从而获得页面并展示出来。在W3C的HTML5标准中(https://www.w3.org/TR/html5/),提出了一个新的叫Appcache的机制(又叫OfflineWebApplications:https://www.w3.org/TR/html5/browsers.html#offline),具体的原理就是通过一个manifest文件声明页面有哪些内容需要缓存到浏览器本地,从而当下次浏览器访问到此页面网址的时候,就可以直接使用缓存到浏览器本地的文件,而不用再次请求服务器。并且在浏览器所在的电脑未联网的时候,也可以保证访问声明了manifest文件的网址。Manifest文件的内容分为如下几个区域:CACHE(缓存),此区域中列出所有需要缓存到本地的文件;FALLBACK(回调区域),当浏览器处于离线状态的时候,调用某些文件(网址)时应转而调用其他网址;NETWORK(不缓存区域),列出不应缓存到本地的文件;SETTINGS(设置),列出一些影响Appcache工作的配置项,一般不设置。除此之外,HTML5标准中还引入Appcache对象,用于暴露一些事件和方法,用于通知用户在缓存过程中发生的一系列的动作。从Appcache的引入的机制来看,Appcache主要通过在manifest文件中声明的方式,将服务器端的资源(如网页,CascadingStyleSheets,JavaScript等)缓存到浏览器中,从而达到离线访问或加速访问速度的目的。一般来说,manifest文件都是一个内容固定的文本文件,只有当网站版本更新的时候才会更新manifest文件,如此就存在一些使用场景的问题:1、当访问数据资源量比较大的功能性网站时,比如很多图片的相册网站(一个网站有很多个相册,每个相册有很多的图片)或医学影像调阅网站(一个检查有很多的图片),无法实现只缓存网站当前的相册或图片来加快响应速度,若缓存全部的相册或图片资源到浏览器亦不可行,因为总的图片量太大;2、一个网站缓存的磁盘空间是有限的,若每个相册或者每个检查都生成一个特定的manifest文件,则当用户访问了多个相册或者多个检查时,浏览器会自动的清除一部分已经缓存的资源以控制缓存空间,而用户不知道当前在磁盘缓存的是哪个相册或者检查的图像,也无法用于那种通过参数来指定需要缓存的资源,实用性有限,由于系统中生成了很多的manifest文件,实现起来也较复杂。
技术实现思路
本专利技术的目的在于提供一种基于Appcache的文件缓存方法,该文件缓存方法可以只缓存某一个资源的指定文件,且明确知道在浏览器中缓存了这些资源,加快了资源缓存下载的速度,可以显示具体资源的缓存进度指示,提高了用户的体验,并减轻了浏览器管理manifest文件的负担。本专利技术为解决上述技术问题,所采用的技术方案如下:基于Appcache的文件缓存方法,其特征在于,包括:浏览器访问系统的一个网址,预先指定该网页使用某一个manifest文件;服务器端使用动态网页技术响应所述manifest文件请求时,先通过cookie判断浏览器是否缓存了所述manifest文件的指定资源,然后根据判断结果对所述manifest文件进行相应操作后发送至浏览器端,浏览器端接收所述manifest文件并进行文件缓存。优选的是,所述相应操作包括:当所述浏览器未缓存过本网站的任何资源时,所述manifest文件直接在cache缓存区列出需要缓存的指定资源的全部文件的URL,浏览器端收到所述manifest文件后,自动开始下载并缓存指定资源,并在cookie中写入缓存资源的ID。优选的是,所述相应操作还包括:当所述浏览器缓存过本网站的其他资源时,所述manifest文件先是直接返回HTTPcode404的响应,并清空cookie中写入资源的ID,浏览器端触发一个error事件并删除原来通过所述manifest文件缓存到本地的资源,程序通过JavaScript部署Appcache的error事件后,通过JavaScript使用iframe再次请求一个引用了所述manifest文件的网页,之后,所述manifest文件直接在cache缓存区列出需要缓存的指定资源的全部文件的URL,浏览器端收到所述manifest文件后,自动开始下载并缓存指定资源,并在cookie中写入缓存资源的ID。优选的是,所述相应操作还包括:当所述浏览器缓存过当前访问的资源时,manifest文件返回第一次访问特定manifest文件的相同内容,浏览器收到所述manifest文件后,认为已经缓存过,不再下载缓存所述资源。优选的是,浏览器访问系统的一个网址时,可以通过使用iframe加载多个指定的相应网页,多个所述相应网页分别缓存指定资源,从而加快缓存文件下载的速度。优选的是,在文件缓存过程中,利用JavaScript程序通过捕捉downloading和progress事件,得出当前所述浏览器下载的文件个数,所述JavaScript程序结合已下载文件个数和文件总数计算并显示缓存进度百分比。优选的是,当程序进行多网页缓存时,所述JavaScript程序结合所有已缓存的文件数和文件总数计算并显示缓存进度百分比。优选的是,所述资源为一个文件包中的全部文件。本专利技术具有以下技术效益:本专利技术可以实现浏览器只缓存某一个资源的指定文件,更灵活,兼容性更广;配合cookie中的值,程序可明确知道在浏览器中缓存了哪些资源;多网页同时下载缓存同一资源,加快了资源缓存下载的速度;网页界面为用户提供具体资源的缓存进度百分比,提高了用户的体验;网站针对一类资源时,只需要提供固定的几个manifest文件网址,简化了网站的管理,并减轻了浏览器管理manifest文件的负担。本专利技术的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本专利技术的研究和实践而为本领域的技术人员所理解。附图说明图1为本专利技术文件缓存方法流程图。具体实施方式下面结合附图对本专利技术做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。如图1所示,本专利技术提供一种基于Appcache的文件缓存方法,包括:浏览器访问系统的一个网址,预先指定该网页使用某一个manifest文件S1;服务器端使用动态网页技术响应所述manifest文件请求S2时,先通过cookie判断浏览器是否缓存了该manifest文件的指定资源S201;然后根据判断结果对所述manifest文件进行相应操作后发送至浏览器端S202,浏览器端接收该manifest文件并进行文件缓存S203。所述相应操作包括:当所述浏览器未缓存过本网站的任何资源时,所述manifest文件直接在cache缓存区列出需要缓存的指定资源的全部文件的URL,浏览器端收到所述manifest文件后,自动开始下载并缓存指定资源,并在cookie中写入缓存资源的ID。本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201710452144.html" title="基于Appcache 的文件缓存方法原文来自X技术">基于Appcache 的文件缓存方法</a>

【技术保护点】
一种基于Appcache的文件缓存方法,其特征在于,包括:浏览器访问系统的一个网址,预先指定该网页使用某一个manifest文件;服务器端使用动态网页技术响应所述manifest文件请求时,先通过cookie判断浏览器是否缓存了所述manifest文件的指定资源,然后根据判断结果对所述manifest文件进行相应操作后发送至浏览器端,浏览器端接收所述manifest文件并进行文件缓存。

【技术特征摘要】
1.一种基于Appcache的文件缓存方法,其特征在于,包括:浏览器访问系统的一个网址,预先指定该网页使用某一个manifest文件;服务器端使用动态网页技术响应所述manifest文件请求时,先通过cookie判断浏览器是否缓存了所述manifest文件的指定资源,然后根据判断结果对所述manifest文件进行相应操作后发送至浏览器端,浏览器端接收所述manifest文件并进行文件缓存。2.如权利要求1所述的基于Appcache的文件缓存方法,其特征在于,所述相应操作包括:当所述浏览器未缓存过本网站的任何资源时,所述manifest文件直接在cache缓存区列出需要缓存的指定资源的全部文件的URL,浏览器端收到所述manifest文件后,自动开始下载并缓存指定资源,并在cookie中写入缓存资源的ID。3.如权利要求2所述的基于Appcache的文件缓存方法,其特征在于,所述相应操作还包括:当所述浏览器缓存过本网站的其他资源时,所述manifest文件先是直接返回HTTPcode404的响应,并清空cookie中写入资源的ID,浏览器端触发一个error事件并删除原来通过所述manifest文件缓存到本地的资源,程序通过JavaScript部署Appcache的error事件后,通过JavaScript使用iframe再次请求一个引用了所述manifest文件的网页,之后,所述manifest文件直接在c...

【专利技术属性】
技术研发人员:彭志勇刘志鹏
申请(专利权)人:彭志勇
类型:发明
国别省市:北京,11

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

1