著录项信息
专利名称 | 一种实现离线应用的方法及装置 |
申请号 | CN201310090189.3 | 申请日期 | 2013-03-20 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-09-24 | 公开/公告号 | CN104063269A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/46 | IPC分类号 | G;0;6;F;9;/;4;6查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 龙海建 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 赵囡囡 |
摘要
本发明适用于计算机技术领域,提供了一种实现离线应用的方法及装置,所述方法包括:当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存,获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据,根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。本发明通过将HTML5离线应用与Ajax缓存结合使用,使得离线应用的缓存空间无限大,可以缓存更多的应用数据,从而提供更流畅的离线服务。
1.一种实现离线应用的方法,其特征在于,所述方法包括:
当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;
获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;
根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当浏览器为在线状态时,通过js程序从WEB服务器预读运行所述HTML5应用程序所需的数据,并通过Ajax缓存存储所述数据。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当浏览器为在线状态时,对Ajax缓存存储的所述HTML5应用程序的数据与WEB服务器存储的所述HTML5应用程序的数据进行MD5校验;
当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据不同时,则更新Ajax缓存存储的所述HTML5应用程序的数据;
当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据相同时,则结束。
4.如权利要求3所述的方法,其特征在于,所述更新Ajax缓存存储的所述HTML5应用程序的数据包括:
接收对所述HTML5应用程序对应的数据的更新请求;
根据所述更新请求,修改所述HTML5应用程序对应的URL地址;
发送修改后的URL地址至WEB服务器,以使所述WEB服务器根据所述修改后的URL地址返回所述HTML5应用程序对应的数据;
根据WEB服务器返回的所述HTML5应用程序对应的数据,更新Ajax缓存存储的所述HTML5应用程序对应的数据。
5.如权利要求4所述的方法,其特征在于,所述根据所述更新请求,修改所述HTML5应用程序对应的URL地址具体为:
根据所述更新请求,在所述HTML5应用程序对应的URL地址的参数中增加随机数。
6.一种实现离线应用的装置,其特征在于,所述装置包括:
发送单元,用于当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;
获取单元,用于获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;
运行单元,用于根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
预读单元,用于当浏览器为在线状态时,通过js程序从WEB服务器预读运行所述HTML5应用程序所需的数据,并通过Ajax缓存存储所述数据。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
校验单元,用于当浏览器为在线状态时,对Ajax缓存存储的所述HTML5应用程序的数据与WEB服务器存储的所述HTML5应用程序的数据进行MD5校验;
更新单元,用于当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据不同时,则更新Ajax缓存存储的所述HTML5应用程序的数据;
结束单元,用于当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据相同时,则结束。
9.如权利要求8所述的装置,其特征在于,所述更新单元包括:
更新请求接收模块,用于接收对所述HTML5应用程序对应的数据的更新请求;
URL地址修改模块,用于根据所述更新请求,修改所述HTML5应用程序对应的URL地址;
发送模块,用于发送修改后的URL地址至WEB服务器,以使所述WEB服务器根据所述修改后的URL地址返回所述HTML5应用程序对应的数据;
更新执行模块,用于根据WEB服务器返回的所述HTML5应用程序对应的数据,更新Ajax缓存存储的所述HTML5应用程序对应的数据。
10.如权利要求9所述的装置,其特征在于,所述URL地址修改模块,具体用于根据所述更新请求,在所述HTML5应用程序对应的URL地址的参数中增加随机数。
一种实现离线应用的方法及装置\n技术领域\n[0001] 本发明属于计算机技术领域,尤其涉及一种实现离线应用的方法及装置。\n背景技术\n[0002] 随着移动终端的日益普及,及HTML5技术的不断发展,通过移动终端浏览网络变得更加方便,因此,移动终端的使用频率也在不断增加,但当前的移动网络本身还是不能随时满足用户需要,尤其是在移动的场景中,在移动终端遇到网络较弱或网络终端的情况后,网络将无法为用户提供完整的服务,或者无法使用,从而导致用户体验被切断,不流畅。\n[0003] 现有技术方案对上述网络较弱或网络中断的情况处理方案是预先缓存需要访问的应用程序的数据,当网络较弱或网络中断时,调用缓存的数据,维持应用程序的正常使用,然而,现有技术的处理方案中的缓存容量有限,无法缓存更多的应用数据,从而无法提供持续的离线服务。\n发明内容\n[0004] 本发明实施例的目的在于提供一种实现离线应用的方法及装置,旨在解决现有技术网络较弱或网络中断时的缓存容量有限,无法缓存更多的应用数据,从而无法提供持续的离线服务问题。\n[0005] 为了实现上述目的,本发明实施例提供如下技术方案:\n[0006] 本发明实施例提供了一种实现离线应用的方法,所述方法包括:\n[0007] 当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;\n[0008] 获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;\n[0009] 根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。\n[0010] 本发明实施例还提供了一种实现离线应用的装置,所述装置包括:\n[0011] 发送单元,用于当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;\n[0012] 获取单元,用于获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;\n[0013] 运行单元,用于根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。\n[0014] 本发明实施例与现有技术相比,有益效果在于:当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存,获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据,根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。通过将HTML5离线应用与Ajax缓存结合使用,使得离线应用的缓存空间无限大,可以缓存更多的应用数据,从而提供更流畅的离线服务。\n附图说明\n[0015] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0016] 图1是本发明实施例一提供的实现离线应用的方法的实现的流程图;\n[0017] 图2是本发明实施例一提供的实现离线应用的过程的示意图;\n[0018] 图3是本发明实施例一提供的Ajax缓存更新的方法的实现流程图;\n[0019] 图4是本发明实施例二提供的实现离线应用的装置的结构图;\n[0020] 图5是本发明实施例二提供的实现离线应用的装置中更新单元的结构图。\n具体实施方式\n[0021] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0022] 本实施例中,当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存,获取Ajax缓存根据返回的运行所述HTML5应用程序所需的数据,根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。\n[0023] 以下结合具体实施例对本发明的实现进行详细描述:\n[0024] 实施例一\n[0025] 图1是本发明实施例一提供的实现离线应用的方法的实现的流程图,详述如下:\n[0026] 在S101中,当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;\n[0027] 在S102中,获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;\n[0028] 本实施例中,本地Ajax缓存存储的所述HTML5应用程序对应的数据的可以采用如下方式:当浏览器为在线状态时,通过js程序从WEB服务器预读运行所述HTML5应用程序所需的数据,并通过Ajax缓存存储所述数据,即,根据用户当前使用的HTML5应用程序,由js程序判断运行所述HTML5应用程序需要使用的数据,根据判断结果,js程序从WEB服务器预读所述HTML5应用程序所需的数据,并通过Ajax缓存存储所述数据,当然,js程序也可以根据用户设置缓存应用程序的数据。\n[0029] 本实施例中,本地Ajax缓存根据所述Ajax请求,向浏览器返回运行所述HTML5应用程序所需的数据,由于Ajax缓存是放在磁盘上,因此可以有更多的缓存空间。\n[0030] 在S103中,根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。\n[0031] 为了便于理解,以下以一个具体的实现示例对本实施例中实现离线应用的方法进行说明,但不以本实现示例的情况为限:假设当前用户在线阅读小说,浏览器获取阅读内容的流程,请参阅图2,其流程为:1->2->3->4->5->6->7->8,即,浏览器接收用户的阅读请求,通过js事件,判断需要预读的内容为前N章的内容,则发送Ajax请求至Ajax缓存,Ajax缓存存储通过http请求,获取前N章的内容,并在Ajax缓存存储所述获取的前N章的内容,并通过响应消息展示给用户阅读;此时,若网络较弱或网络中断,则仍然可以从Ajax缓存获取阅读数据,其获取数据的流程为:1->2->3->6->7->8。\n[0032] 本实施例中,当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存,获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据,根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。通过将HTML5离线应用与Ajax缓存结合使用,使得离线应用的缓存空间无限大,可以缓存更多的应用数据,从而提供更流畅的离线服务。\n[0033] 作为本发明的一个实施例,为了使Ajax缓存的数据可以向用户提供及时准确的信息,可以对缓存的数据进行校验,对校验通过的数据进行及时更新,校验过程如下:\n[0034] 当浏览器为在线状态时,对Ajax缓存存储的所述HTML5应用程序的数据与WEB服务器存储的所述HTML5应用程序的数据进行MD5校验;\n[0035] 当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据相同时,说明Ajax缓存存储的所述HTML5应用程序的数据为最新的数据,此时,不需要更新Ajax缓存存储的所述HTML5应用程序的数据,则结束;\n[0036] 当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据不同时,说明Ajax缓存存储的所述HTML5应用程序的数据为不是最新更新的数据,则更新Ajax缓存存储的所述HTML5应用程序的数据。\n[0037] 本实施例中,通过MD5校验,可以及时了解Ajax缓存存储的所述HTML5应用程序的数据是否是最新更新的数据,避免缓存错误的应用程序数据。\n[0038] 作为本发明的一个实施例,当浏览器为在线状态时,当对同一个应用程序进行访问时,对于Ajax缓存,仍然是在本地浏览器中获取之前缓存的数据,而此时浏览器的数据可能已经发生了更新,而本地存储的内容并未发生更新,为了及时对本地服务器中的数据进行更新,可以采用如下方式更新Ajax缓存中的数据,请参阅图3示出了本发明实施例一提供的Ajax缓存更新的方法的实现流程图,详述如下:\n[0039] 在S301中,接收对所述HTML5应用程序对应的数据的更新请求。\n[0040] 本实施例中,所述更新请求可以为对所述HTML5应用程序刷新的请求。\n[0041] 在S302中,根据所述更新请求,修改所述HTML5应用程序对应的URL地址;\n[0042] 本实施例中,强制修改应用程序对应的URL地址后,此时,无法从Ajax缓存获取所述修改后URL地址对应的数据,值得说明的是,所述修改并不修改URL地址的访问路径,因此,其获取的数据仍然是所述HTML5应用程序对应的数据。\n[0043] 优选的,S302具体可以采用如下方式实现:根据所述刷新请求,在所述HTML5应用程序对应的URL地址的参数中增加随机数,通过在URL地址的参数中增加随机数,可以方便的对URL地址实现修改,简单,方便。\n[0044] 在S303中,发送修改后的URL地址至WEB服务器,以使所述WEB服务器根据所述修改后的URL地址返回所述HTML5应用程序对应的数据;\n[0045] 在S304中,根据WEB服务器返回的所述HTML5应用程序对应的数据,更新Ajax缓存存储的所述HTML5应用程序对应的数据;\n[0046] 根据更新的Ajax缓存存储的所述HTML5应用程序对应的数据,运行所述HTML5应用程序。\n[0047] 本实施例中,当浏览器为在线状态时,如果接收到用户的刷新请求,通过修改所述HTML5应用程序对应的URL地址,可以及时对Ajax缓存的数据进行更新,避免服务器的数据已经更新,而Ajax缓存存储的数据的还未进行更新。\n[0048] 实施例二\n[0049] 图4示出了本发明实施例二提供的实现离线应用的装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分,该装置可以是内置于移动终端中的软件单元、硬件单元或者软硬结合单元。\n[0050] 所述装置包括:\n[0051] 发送单元41,用于当浏览器为离线状态时,根据HTML5应用程序访问请求,发送Ajax请求至Ajax缓存;\n[0052] 获取单元42,用于获取Ajax缓存根据所述Ajax请求返回的运行所述HTML5应用程序所需的数据;\n[0053] 运行单元43,用于根据所述运行所述HTML5应用程序所需的数据,运行所述HTML5应用程序。\n[0054] 可选的,述装置还包括:\n[0055] 预读单元44,用于当浏览器为在线状态时,通过js程序从WEB服务器预读运行所述HTML5应用程序所需的数据,并通过Ajax缓存存储所述数据。\n[0056] 可选的,所述装置还包括:\n[0057] 校验单元46,用于当浏览器为在线状态时,对Ajax缓存存储的所述HTML5应用程序的数据与WEB服务器存储的所述HTML5应用程序的数据进行MD5校验;\n[0058] 更新单元47,用于当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据不同时,则更新Ajax缓存存储的所述HTML5应用程序的数据;\n[0059] 结束单元48,用于当所述Ajax缓存存储的所述HTML5应用程序的数据的MD5值与WEB服务器存储的所述HTML5应用程序的数据相同时,则结束。\n[0060] 请参阅图5为本发明实施例二提供的实现离线应用的装置中更新单元的结构图,所述更新单元包括:更新请求接收模块51、URL地址修改模块52、发送模块53及更新执行模块54,\n[0061] 更新请求接收模块51,用于接收对所述HTML5应用程序对应的数据的更新请求;\n[0062] URL地址修改模块52,用于根据所述更新请求,修改所述HTML5应用程序对应的URL地址;\n[0063] 发送模块53,用于发送修改后的URL地址至WEB服务器,以使所述WEB服务器根据所述修改后的URL地址返回所述HTML5应用程序对应的数据;\n[0064] 更新执行模块54,用于根据WEB服务器返回的所述HTML5应用程序对应的数据,更新Ajax缓存存储的所述HTML5应用程序对应的数据。\n[0065] 可选的,所述URL地址修改模块52,具体用于根据所述刷新请求,在所述HTML5应用程序对应的URL地址的参数中增加随机数。\n[0066] 本发明实施例提供的实现离线应用的装置可以使用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。\n[0067] 值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。\n[0068] 另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。\n[0069] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-01-08
- 2015-09-23
实质审查的生效
IPC(主分类): G06F 9/46
专利申请号: 201310090189.3
申请日: 2013.03.20
- 2014-09-24
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-06-13
|
2011-12-12
| | |
2
| |
2011-12-28
|
2010-06-28
| | |
3
| |
2012-10-03
|
2012-05-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |