WebAPP动态脱机存储系统及方法

文档序号:6444358阅读:252来源:国知局
专利名称:WebAPP动态脱机存储系统及方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种WebAPP动态脱机存储系统及方法。
背景技术
随着移动互联网的普及,手持设备被广泛使用,以及HTML5等Web技术的快速发展,各大公司都在推出自己的WebApp开发框架。WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能。从一个简单的帮助消费者计算汽车租借费用的网页,到为商业人员和度假者提供全套旅游服务的大型复杂的WEB站点,都是WebApp。它包括一些完整的WEB站点,WEB站点的专门功能以及在Internet、Intranet或ExtraNet上的信息处理应用。用户通常使用浏览器缓存在用户磁盘上存储web单页,在用户再次浏览的时候已节省带宽,但即便这样,依然无法在没有Internet的情况下访问Web应用程序。为了让web应用程序在离线状态也能被访问,HTML5通过ApplicationCache提供离线存储功能。Application Cache使用Manifest文件来指定当前WebApp所需的资源,浏览器根据manifest文件的内容来对不同的资源设置不同的策略。当用户再次浏览该网页时,如果Application Cache中存在该资源,贝U首先从Application Cache中加载,并通过对比本地manifest文件和服务器上的manifest文件来确定是否需要更新本地Cache的资源。Application Cache本质上是一种静态的Cache,需求用户首先在manifest中指定所有需要Cache的资源,而不能根据用户访问的情况来Cache资源。在一些情况,开发者可能并不知道其所有的资源,例如用户上传的文件,因此此时不能通过manifest来指定。另外,在IE、FireFox等主流浏览器中还存在脱机模式,在离线情况下可以使用Cache在本地的网页。但由于脱机模式是跟正常模式相对立的,因此在脱机模式下,即使网络是可用的,也不能正常显示没有被Cache的外部网页。

发明内容
本发明的目的在于提供一种WebAPP动态脱机存储系统及方法,支持离线应用的各类WebAPP,能将用户访问的WebAPP资源自动Cache到本地,以确保用户在离线情况下也能使用该WebAPP。为解决上述问题,本发明提供一种WebAPP动态脱机存储系统,包括:存储模块,用于将用户访问过的每个WebAPP的资源Cache到本地保存;加载模块,用于加载当前WebAPP的资源,加载前先判断当前WebAPP的资源是否已经被Cache到本地保存,若是,从所述存储模块保存的所有资源中加载当前WebAPP的资源;若否,网络加载当前WebAPP的资源,并调用所述存储模块,将当前WebAPP的资源Cache到本地保存;更新模块,用于在所述加载模块加载当前WebAPP的资源完毕后,后台更新所述当前WebAPP的资源到所述存储模块中。进一步的,所述存储模块包括数据库单元和缓存单元,所述缓存单元用于将用户访问过的每个WebAPP的资源Cache到本地并保存所述每个WebAPP的资源;所述数据库单元用于标识每个WebAPP的资源及其在所述缓存单元中的位置,建立每个WebAPP的索引信
肩、O进一步的,所述数据库单元采用SQLITE3数据库,将每个WebAPP的资源的URL作为关键词来标识每个WebAPP的资源及其在所述缓存单元中的位置。进一步的,所述缓存单元以文件方式保存所述每个WebAPP的资源,同时还保存所述每个WebAPP的http响应信息。进一步的,所述更新模块通过http协议逐个更新所述当前WebAPP的资源到所述存储模块中,并在更新完成后,以JavaScript事件的形式通知所述当前WebApp以切换到新的WebApp环境。相应的,本发明还提供一种WebAPP动态脱机存储方法,包括以下步骤:所述存储模块将用户访问过的每个WebAPP的资源Cache到本地保存;启动当前WebAPP,所述加载模块判断当前WebAPP的资源是否已经被Cache到本地保存,若是,从所述存储模块保存的所有资源中加载当前WebAPP的资源;若否,网络加载当前WebAPP的资源,并调用所述存储模块,将当前WebAPP的资源Cache到本地保存;当所述加载模块加载当前WebAPP的资源完毕后,所述更新模块后台更新所述当前WebAPP的资源到所述存储模块中。与现有技术相比,本发明提供的WebAPP动态脱机存储系统及方法,通过存储模块将用户访问过的每个WebAPP的资源Cache到本地保存,然后通过加载模块脱机加载存储模块中的已有WebAPP资源或者网络加载未Cache存储的WebAPP资源,再通过更新模块更新存储模块中的WebAPP的资源,能将用户访问的WebAPP资源自动Cache到本地,以确保用户在离线情况下也能使用该WebAPP,可以实现WebApp离线和在线方式的无痕切换,适用于支持离线应用的各类WebAPP。


图1是本发明一实施例的WebAPP动态脱机存储系统的架构示意图;图2是本发明一实施例的WebAPP动态脱机存储方法的流程图。
具体实施例方式本发明中,URL (统一资源定位符,UniformResourceLocator)也被称为网页地址,是因特网上标准的资源的地址;以下结合附图和具体实施例对本发明提出的WebAPP管理系统及其应用方法作进一步详细说明。如图1所示,本发明提供一种WebAPP动态脱机存储系统,包括存储模块11、加载模块12和更新模块13。存储模块11包括数据库单元111和缓存单元112,所述缓存单元112用于将用户访问过的每个WebAPP的资源Cache到本地并以文件方式保存所述每个WebAPP的资源,同时还保存所述每个WebAPP的http响应信息;所述数据库单元111用于标识每个WebAPP的资源及其在所述缓存单元中的位置,建立每个WebAPP的索引信息。其中,HTTP响应与HTTP请求相似,由3部分构成,分别是协议和状态码、响应头和响应正文。HTTP响应的第I行表示通信使用的协议及其版本、状态码和状态描述。其中的状态码是规定好的;HTTP响应头中包含了很多关于服务器端的有用信息,如服务器的类型、内容类型和长度等信息;响应正文就是用户在浏览网页时看到的内容,可以包含各种信息,包括文字、图片和动画等。在Web框架(Web Frameffork)中,用于标识WebApp的方法有很多,包括使用name、类似域名的ID方式、以及URL等。经过试验,使用URL方式比较简洁、方便,故本实施中数据库单元111采用URL来标识WebApp。在计算机技术中,实现索引查询的方法很多,有基于文件的,基于数据库的。其中基于数据库的比较常见,本实施例中数据库单元111采用SQLITE3数据库来保存缓存单元112中存在的WebApp索引以及每个WebApp所包含的资源,并以WebApp的主资源URL作为关键词来标识WebApp,每个WebApp内部使用的资源使用其对应的URL来加以区分,同时还保存了所有资源在缓存单元112中的位置。因此,缓存单元112完成将WebApp资源Cache到本地后,通过数据库单元111来加以索引,用于加载单元12加载WebApp时查询需要的资源。加载模块12用于加载当前WebAPP的资源,加载前先判断当前WebAPP的资源是否已经被Cache到本地保存,若是,从所述存储模块11保存的所有资源中加载当前WebAPP的资源;若否,网络加载当前WebAPP的资源,并调用所述存储模块11,将当前WebAPP的资源Cache到本地保存。本实施例中,加载模块12加载已经被Cache到本地保存的当前WebAPP的资源时,将当前WebApp主资源的URL作为关键词,从数据库单元111中找出当前WebApp缓存在缓存单元112的所有资源的位置,接着依照HTML解析过程中按需加载缓存单元112中的资源;加载模块12通过网络HTTP加载当前WebAPP的资源时,调用存储模块11存储当前WebApp已经下载的所有资源到缓存单元112中,并随着HTML解析的进行,继续存储后续资源到缓存单元112中,数据库单元111为存储到缓存单元112中的当前WebApp资源加以标识和索引。更新模块13在所述加载模块加载当前WebAPP的资源完毕后,后台更新所述当前WebAPP的资源到所述存储模块中。本实施例中,所述更新模块13根据WebApp主资源的URL获取其所有资源的URL,通过http协议逐个与缓存单元112中的资源对比,如果存在更新则替换当前资源,并在所有资源都更新完成后,以JavaScript事件的形式通知所述当前WebApp用户可以选择切换到新的WebApp环境。相应的,如图2所示,本发明还提供一种WebAPP动态脱机存储方法,包括以下步骤。S21,所述存储模块11将用户访问过的每个WebAPP的资源Cache到本地保存;S22,启动当前 WebAPP ;S23,所述加载模块判断当前WebAPP的资源是否已经被Cache到本地保存,若是,执行S24 ;若否,执行S25至S26 ;S24,从所述存储模块保存的所有资源中加载当前WebAPP的资源;S25,网络加载当前WebAPP的资源;S26,调用所述存储模块,将当前WebAPP的资源Cache到本地保存;S27,所述加载模块加载当前WebAPP的资源完毕;S28,所述更新模块后台更新所述当前WebAPP的资源到所述存储模块中。本实施步骤S21中,存储模块11包括数据库单元111和缓存单元112,所述缓存单元112将用户访问过的每个WebAPP的资源Cache到本地,并以文件方式保存所述每个WebAPP的资源,同时还保存所述每个WebAPP的http响应信息;所述数据库单元111采用URL标识每个WebAPP的资源及其在所述缓存单元中的位置,建立每个WebAPP的索引信息。本实施步骤S24中,加载模块12加载将当前WebApp主资源的URL作为关键词,从数据库单元111中找出当前WebApp缓存在缓存单元112的所有资源的位置,接着依照HTML解析过程中按需加载缓存单元112中的资源。本实施步骤S25中,加载模块12通过网络HTTP加载当前WebAPP的资源,步骤S26中调用存储模块11存储当前WebApp已经下载的所有资源到缓存单元112中,并随着HTML解析的进行,继续存储后续资源到缓存单元112中,数据库单元111为存储到缓存单元112中的当前WebApp资源加以标识和索引。综上所述,本发明提供的WebAPP动态脱机存储系统及方法,通过存储模块将用户访问过的每个WebAPP的资源Cache到本地保存,然后通过加载模块脱机加载存储模块中的已有WebAPP资源或者网络加载未Cache存储的WebAPP资源,再通过更新模块更新存储模块中的WebAPP的资源,能将用户访问的WebAPP资源自动Cache到本地,以确保用户在离线情况下也能使用该WebAPP,可以实现WebApp离线和在线方式的无痕切换,适用于支持离线应用的各类WebAPP。显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种WebAPP动态脱机存储系统,其特征在于,包括: 存储模块,用于将用户访问过的每个WebAPP的资源Cache到本地保存; 加载模块,用于加载当前WebAPP的资源,加载前先判断当前WebAPP的资源是否已经被Cache到本地保存,若是,从所述存储模块保存的所有资源中加载当前WebAPP的资源;若否,网络加载当前WebAPP的资源,并调用所述存储模块,将当前WebAPP的资源Cache到本地保存; 更新模块,用于在所述加载模块加载当前WebAPP的资源完毕后,后台更新所述当前WebAPP的资源到所述存储模块中。
2.如权利要求1所述的WebAPP动态脱机存储系统,其特征在于,所述存储模块包括数据库单元和缓存单元,所述缓存单元用于将用户访问过的每个WebAPP的资源Cache到本地并保存所述每个WebAPP的资源;所述数据库单元用于标识每个WebAPP的资源及其在所述缓存单元中的位置,建立每个WebAPP的索引信息。
3.如权利要求2所述的WebAPP动态脱机存储系统,其特征在于,所述数据库单元采用SQLITE3数据库,将每个WebAPP的资源的URL作为关键词来标识每个WebAPP的资源及其在所述缓存单元中的位置。
4.如权利要求2所述的WebAPP动态脱机存储系统,其特征在于,所述缓存单元以文件方式保存所述每个WebAPP的资源,同时还保存所述每个WebAPP的http响应信息。
5.如权利要求1所述的WebAPP动态脱机存储系统,其特征在于,所述更新模块通过http协议逐个更新所述当前WebAPP的资源到所述存储模块中,并在更新完成后,以JavaScript事件的形式通知所述当前WebApp以切换到新的WebApp环境。
6.一种WebAPP动态脱机存储方法,其特征在于,包括: 所述存储模块将用户访问过的每个WebAPP的资源Cache到本地保存; 启动当前WebAPP,所述加载模块判断当前WebAPP的资源是否已经被Cache到本地保存,若是,从所述存储模块保存的所有资源中加载当前WebAPP的资源;若否,网络加载当前WebAPP的资源,并调用所述存储模块,将当前WebAPP的资源Cache到本地保存; 当所述加载模块加载当前WebAPP的资源完毕后,所述更新模块后台更新所述当前WebAPP的资源到所述存储模块中。
7.如权利要求6所述的WebAPP动态脱机存储方法,其特征在于,所述存储模块包括数据库单元和缓存单元,所述缓存单元用于将用户访问过的每个WebAPP的资源Cache到本地并保存所述每个WebAPP的资源;所述数据库单元用于标识每个WebAPP的资源及其在所述缓存单元中的位置,建立每个WebAPP的索引信息。
8.如权利要求7所述的WebAPP动态脱机存储方法,其特征在于,所述数据库单元采用SQLITE3数据库,将每个WebAPP的资源的URL作为关键词来标识每个WebAPP的资源及其在所述缓存单元中的位置。
9.如权利要求7所述的WebAPP动态脱机存储方法,其特征在于,所述缓存单元以文件方式保存所述每个WebAPP的资源,同时还保存所述每个WebAPP的http响应信息。
10.如权利要求6所述的WebAPP动态脱机存储方法,其特征在于,所述更新模块通过http协议逐个更新所述当前WebAPP的资源到所述存储模块中,并在更新完成后,以JavaScript事件的形式通知所述当前WebApp以切换到新的WebApp环境。
全文摘要
本发明提供一种WebAPP动态脱机存储系统及方法,通过存储模块将用户访问过的每个WebAPP的资源Cache到本地保存,然后通过加载模块脱机加载存储模块中的已有WebAPP资源或者网络加载未Cache存储的WebAPP资源,再通过更新模块更新存储模块中的WebAPP的资源,能将用户访问的WebAPP资源自动Cache到本地,以确保用户在离线情况下也能使用该WebAPP,可以实现WebApp离线和在线方式的无痕切换,适用于支持离线应用的各类WebAPP。
文档编号G06F17/30GK103186594SQ20111045413
公开日2013年7月3日 申请日期2011年12月29日 优先权日2011年12月29日
发明者吕磊 申请人:盛乐信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1