背景技术
随着通信技术的发展,为了满足日益增长和多种多样的业务需求,基于移动终端的互联网应用越来越多。
JavaScript是一种运行在浏览器的脚本,通常用于浏览器的前端编程。Node.js是基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,适合在分布式设备上运行数据密集型的实时应用。Node是Javascript运行环境(runtime)。
热部署是在应用正在运行的时候升级软件,却不需要重新启动应用。目前,基于服务器端javascript的热部署方法主要包括以下过程:(1)启动Node.js服务器,加载正常的js文件;(2)启动卸载js文件的服务;(3)js文件生命周期维护;(4)升级js文件;(5)监控程序运行。一个js文件用于实现一种功能,即可视为一个应用模块,一个js文件通常由多个程序(代码)片段组成。
可以看出,目前的互联网应用热部署方案中,以应用模块或文件作为更新或同步的最小资源单元。通常,应用模块或文件的数据量较大,因此导致更新或同步的资源粒度较大,因而更新或同步的时延较大,进而会导致互联网应用的客户端与服务器端无法及时同步。
申请内容
本申请实施例提供了一种应用热部署方法、装置及系统。
本申请实施例提供的应用热部署方法,包括:
检测是否有更新的数据资源;
若检测到有的更新的数据资源,则根据所述更新的数据资源更新浏览器显示的页面。
优选地,所述检测是否有更新的数据资源,包括:接收服务器推送的数据资源,若服务器推送的数据资源的版本高于所述客户端设备本地的数据资源的版本,则将所述服务器推送的数据资源确定为更新的数据资源。
其中,若根据所述更新的数据资源更新所述浏览器显示的页面时操作失败,则还包括:
向所述服务器反馈页面更新失败信息;
接收所述服务器返回的数据资源;其中,所述服务器返回的数据资源是所述服务器根据所述页面更新失败信息获取到的该服务器所备份的更新之前的数据资源;
根据所述服务器返回的数据资源更新浏览器显示的页面。
优选地,所述检测是否有更新的数据资源,包括:接收本地应用更新的数据资源,将本地应用更新的数据资源确定为更新的数据资源。
进一步,还包括:向服务器发送数据资源更新请求,所述数据资源更新请求中携带有所述本地应用更新的数据资源,所述数据资源更新请求用于请求所述服务器根据该请求中携带的数据资源更新该数据资源版本。
进一步地,所述将本地应用更新的数据资源发送给服务器之后,还包括:
接收所述服务器返回的更新成功响应,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功;或者,
接收所述服务器返回的恢复命令,并根据所述恢复命令中携带的数据资源更新浏览器显示的页面,其中,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的数据资源。
优选地,所述根据所述更新的数据资源更新所述浏览器显示的页面,包括:若接收到局部更新事件,则根据接收到的所述局部更新事件以及所述更新的数据资源,更新浏览器显示的页面的局部内容。
其中,所述更新浏览器显示的页面的局部内容,包括:根据接收到的局部更新事件,通过JavaScript操作DOM接口,使用所述更新的数据资源对该局部更新事件所指示的页面的局部内容进行页面的局部刷新。
其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
优选地,还包括:建立与所述服务器之间的连接并维护所述连接的有效性,所述连接用于传输与所述服务器之间交互的数据资源。
优选地,所述数据资源包括页面元素和/或代码片段。
本申请另一实施例提供的应用热部署方法,包括:
向客户端设备推送数据资源,以使所述客户端设备在检测到有更新的数据资源时,根据所述更新的数据资源更新浏览器显示的页面;
接收客户端设备发送的数据资源更新请求,根据所述数据资源更新请求向所述客户端设备返回更新成功响应或携带有数据资源的恢复命令;其中,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的数据资源。
进一步地,还包括:
接收客户端设备发送的页面更新失败信息;其中,所述页面更新失败信息是所述客户端设备根据所述更新的数据资源更新浏览器显示的页面时操作失败后向所述服务器反馈的;
根据所述页面更新失败信息获取该服务器所备份的更新之前的数据资源并发送给所述客户端设备。
进一步地,还包括:向客户端设备发送局部更新事件,以使所述客户端设备根据所述局部更新事件以及更新的数据资源,更新浏览器显示的页面的局部内容。
其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
进一步地,还包括:建立与所述客户端设备之间的连接并维护所述连接的有效性,所述连接用于传输与所述客户端设备之间交互的数据资源。
优选地,所述数据资源包括页面元素和/或代码片段。
本申请实施例提供的客户端设备,包括:
检测模块,用于检测是否有更新的数据资源;
部署模块,用于在检测到有更新的数据资源时,指示浏览器模块更新显示的页面;
浏览器模块,用于根据所述更新的数据资源更新显示的页面。
优选地,所述检测模块具体用于:接收服务器推送的数据资源,若服务器推送的数据资源的版本高于所述客户端设备本地的数据资源的版本,则将所述服务器推送的数据资源确定为更新的数据资源。
进一步地,所述部署模块还用于:
若根据所述更新的数据资源更新所述浏览器显示的页面时操作失败,则执行以下步骤:
向所述服务器反馈页面更新失败信息;
接收所述服务器返回的数据资源;其中,所述服务器返回的数据资源是所述服务器根据所述页面更新失败信息获取到的该服务器所备份的更新之前的数据资源;
根据所述服务器返回的数据资源更新浏览器显示的页面。
优选地,所述检测模块具体用于:接收本地应用更新的数据资源,将本地应用更新的数据资源确定为更新的数据资源。
进一步地,所述部署模块还用于:向服务器发送数据资源更新请求,所述数据资源更新请求中携带有所述本地应用更新的数据资源,所述数据资源更新请求用于请求所述服务器根据该请求中携带的数据资源更新数据资源版本。
进一步地,所述部署模块还用于:将本地应用更新的数据资源发送给服务器之后,执行以下步骤:
接收所述服务器返回的更新成功响应,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功;或者,
接收所述服务器返回的恢复命令,并根据所述恢复命令中携带的数据资源更新浏览器显示的页面,其中,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的数据资源。
优选地,所述浏览器模块具体用于:若接收到局部更新事件,则根据接收到的所述局部更新事件以及所述更新的数据资源,更新浏览器显示的页面的局部内容。
优选地,所述浏览器模块具体用于:根据接收到的局部更新事件,通过JavaScript操作DOM接口,使用所述更新的数据资源对该局部更新事件所指示的页面的局部内容进行页面的局部刷新。
其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
进一步地,还包括:连接管理模块,用于建立与所述服务器之间的连接并维护所述连接的有效性,所述连接用于传输与所述服务器之间交互的数据资源。
本申请实施例提供的服务器,包括:
部署模块,用于向客户端设备推送数据资源,以使所述客户端设备在检测到有更新的数据资源时,根据所述更新的数据资源更新浏览器显示的页面;
更新请求处理模块,用于接收客户端设备发送的数据资源更新请求,根据所述数据资源更新请求向所述客户端设备返回更新成功响应或携带有数据资源的恢复命令;其中,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的数据资源。
优选地,所述部署模块还用于:
接收客户端设备发送的页面更新失败信息;其中,所述页面更新失败信息是所述客户端设备根据所述更新的数据资源更新浏览器显示的页面时操作失败后向所述服务器反馈的;
根据所述页面更新失败信息获取该服务器所备份的版本更新之前的数据资源并发送给所述客户端设备。
进一步地,所述部署模块还用于:向客户端设备发送局部更新事件,以使所述客户端设备根据所述局部更新事件以及更新的数据资源,更新浏览器显示的页面的局部内容。
进一步地,所述部署模块还用于:向客户端设备发送局部更新事件,以使所述客户端设备根据所述局部更新事件以及更新的数据资源,更新浏览器显示的页面的局部内容。
其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
进一步地,还包括:连接管理模块,用于建立与所述客户端设备之间的连接并维护所述连接的有效性,所述连接用于传输与所述客户端设备之间交互的数据资源。
本申请实施例提供的应用热部署系统,包括:
客户端设备,用于检测是否有更新的数据资源,若检测到有更新的数据资源,则根据所述更新的数据资源更新浏览器显示的页面;
服务器,用于向所述客户端设备推送数据资源。
优选地,所述客户端设备具体用于:接收服务器推送的数据资源,若服务器推送的数据资源的版本高于所述客户端设备本地的数据资源的版本,则将所述服务器推送的数据资源确定为更新的数据资源。
进一步地,所述客户端设备还具体用于:若根据所述更新的数据资源更新浏览器显示的页面时操作失败,则向所述服务器反馈页面更新失败信息;以及,接收所述服务器返回的数据资源,并根据所述服务器返回的数据资源更新浏览器显示的页面;
所述服务器还用于:根据所述页面更新失败信息获取该服务器所备份的更新之前的数据资源并发送给所述客户端设备。
优选地,所述客户端设备具体用于:接收本地应用更新的数据资源,将本地应用更新的数据资源确定为更新的数据资源。
进一步地,所述客户端设备还用于:向服务器发送数据资源更新请求,所述数据资源更新请求中携带有所述本地应用更新的数据资源,所述数据资源更新请求用于请求所述服务器根据该请求中携带的数据资源更新所述数据资源版本;
所述服务器还用于:根据所述数据资源更新请求向所述客户端设备返回更新成功响应或携带有数据资源的恢复命令;其中,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的;
所述客户端设备还用于:接收所述服务器返回的更新成功响应,或者,接收所述服务器返回的恢复命令,并根据所述恢复命令中携带的数据资源更新浏览器显示的页面。
进一步地,所述服务器还用于:向所述客户端设备发送局部更新事件;
所述客户端设备还用于:根据接收到的局部更新事件以及更新的数据资源,更新浏览器显示的页面的局部内容。
本申请实施例提供的终端,包括:
显示器;
存储器,用于存储计算机程序指令;
处理器,耦合到所述存储器,用于读取所述存储器存储的计算机程序指令,并作为响应,执行如下操作:
检测是否有更新的数据资源;
在检测到有更新的数据资源时,指示浏览器模块更新显示的页面;
根据所述更新的数据资源更新显示的页面。
本申请的上述实施例中,当检测到有更新的数据资源时,可根据该更新的数据资源更新浏览器显示的页面。一方面,由于数据资源相对于应用模块或文件来说,其颗粒度更小,因此与现有技术相比,本申请实施例可以实现更细粒度的数据资源同步,进而可以降低资源同步时延;另一方面,当检测到有更新的数据资源时,可立即根据该更新的数据资源更新页面,因此更进一步地降低了资源同步的时延,提高用户感受。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
图1示例性地示出了本申请实施例适用的网络架构示意图。如图1所示,该网络架构中可包括客户端设备以及网络侧的服务器,客户端设备和服务器通过网络进行通信。
上述架构中的客户端设备上安装有互联网应用客户端程序,服务器上安装有互联网应用服务器端程序,客户端设备和服务器进行配合,客户端设备可从服务器获取互联网应用所需的数据资源,实现互联网应用所提供的服务。
上述网络架构中的客户端设备可以是移动终端或PC(个人电脑)或智能终端等设备,所述移动终端可以是手机、PDA(Personal Digital Assistant,掌上电脑)或智能穿戴设备等。
上述网络架构中,客户端设备和服务器可以通过网络进行信息交互,该网络可以是广域网、局域网或互联网,或者采用移动通信技术的互联网。客户端设备可通过无线方式接入互联网,服务器通常采用有线方式与互联网连接。
优选地,客户端设备和服务器可以采用云计算技术,以基于云计算技术的强大功能实现信息处理。服务器和客户端设备可采用基于云计算技术的操作系统,比如YunOS,从而可以整合云端和客户端的资源和服务。
本申请实施例中,数据资源是指互联网应用运行所需要的数据、程序代码等中的一种或多种组合,具体可以包括网页元素、代码片段等中的一种或组合。其中,网页元素具体可以包括:用于网页显示的文字、图片、音频、动画、视频中的一种或多种组合;代码片段具体可以包括JavaScript程序代码,CSS(Cascading Style Sheets,层叠样式表)代码,或者网页需要的用于实现特定功能(比如某些动态功能或者补丁功能)的程序代码。
参见图2,为本申请实施例提供的应用热部署系统架构示意图。
该应用热部署系统包括客户端设备10和服务器20。客户端设备可以有多个,图2中仅示例性地示出了一个。
客户端设备10与服务器20进行配合实现互联网功能之前,客户端设备10需要与服务器20建立连接,并保持该连接(比如通过心跳消息的方式维护该连接的有效性),通过该连接可实现客户端设备10与服务器20之间的信息交互(比如交互数据资源)。具体实施时,该连接可以是TCP(Transmission ControlProtocol,传输控制协议)连接。
客户端设备10主要用于检测是否有更新的数据资源,并当检测到有更新的数据资源时,根据该更新的数据资源更新浏览器显示的页面。客户端设备10可以由软件实现,比如具体可以是图1所示客户端设备中集成的功能模块。客户端设备10也可以由软件和硬件相结合的方式实现,具体可以是移动终端或智能终端等设备。
服务器20主要用于向客户端设备10推送更新的数据资源。服务器20也可接收客户端设备10发送的数据资源更新请求,该数据资源更新请求中携带有客户端设备10更新的数据资源,服务器20可对该数据资源更新请求进行响应,比如可以接受该请求以更新数据资源版本,也可以拒绝该请求。
上述客户端设备10中可以包括以下功能模块:检测模块101、部署模块102和浏览器模块103,其中:
检测模块101,用于检测是否有更新的数据资源;
部署模块102,用于在检测到有更新的数据资源时,指示浏览器模块更新显示的页面;
浏览器模块103,用于根据所述更新的数据资源更新浏览器显示的页面。具体地,浏览器模块可以是浏览器引擎,比如可以是根据Chromium改造的引擎,支持Node和Chromium的融合,支持H5直接访问node.js对象,负责数据资源的请求,页面布局渲染刷新显示。
上述服务器20中可包括部署模块201、更新请求处理模块202,其中:
部署模块201,用于向客户端设备推送数据资源,以使客户端设备在检测到有更新的数据资源时,根据更新的数据资源更新浏览器显示的页面;
更新请求处理模块202,用于接收客户端设备发送的数据资源更新请求,根据数据资源更新请求向所述客户端设备返回更新成功响应或携带有数据资源的恢复命令;其中,更新成功响应用于表明服务器根据数据资源更新请求对数据资源版本更新成功,恢复命令中携带的数据资源是服务器在拒绝数据资源更新请求的情况下获得的。
服务器20还可以访问数据资源库30,该数据资源库用于存储服务器20备份的数据资源。
上述系统架构可以基于Node.js以及MongoDB和WebSocket技术实现。
需要说明的是上述客户端设备10和服务器20的结构仅为一种示例,在能够实现本申请实施例的目的的情况下,不排除有其他结构划分形式。
以下实施例以上述系统架构为例,对本申请实施例提供的热部署流程进行详细描述。
基于上述应用热部署系统架构,本申请实施例提供的应用热部署流程可如图3所示,包括以下步骤:
步骤301:客户端设备检测是否有更新的数据资源;
步骤302:若检测到有更新的数据资源,则转入步骤303,否则,返回步骤301;
步骤303:客户端设备根据所述更新的数据资源更新浏览器显示的页面。
其中,本申请实施例支持由服务器推送的数据资源实现互联网应用热部署,也可支持客户端设备本地对数据资源进行更新来实现互联网应用热部署,也就是说,上述流程的步骤301中,客户端设备所进行的检测操作既可以针对服务器推送的数据资源,也可以针对本地互联网应用所更新的数据资源。为了更清楚地对本申请实施例进行说明,下面结合图4描述由服务器推送实现的应用热部署方案,结合图5描述由客户端设备本地的数据资源更新操作实现的应用热部署方案。
参见图4,为本申请实施例提供的应用热部署流程的示意图,如图所示,该流程可包括如下步骤:
步骤401:服务器向客户端设备推送的数据资源。
其中,服务器在将更新的数据资源推送给客户端设备之前,可将该数据资源进行拷贝并将拷贝的数据资源存储到数据资源库中,用以在客户端设备的页面更新操作失败时,将更新之前所备份的数据资源发送给客户端设备进行页面恢复。
优选地,客户端设备预先向服务器发起应用热部署服务的订阅请求,以订阅该服务。上述步骤401中,当服务器端有数据资源变化(比如页面使用的JavaScript代码更新)时,向订阅了应用热部署服务的客户端设备推送更新的数据资源。
服务器所推送的信息中可包括数据资源,以及数据资源的时间戳和/或版本信息。
上述步骤401可由图2所示系统架构中的服务器20中的部署模块201执行。
步骤402:客户端设备接收到服务器推送的数据资源后,判断该服务器推送的数据资源的版本是否高于客户端设备本地的数据资源的版本,若判断为是,则转入步骤403;否则可返回步骤401以继续等待服务器推送的数据资源。
该步骤中,客户端设备中可预先设置守护进程,该守护进程可一直监听服务器推送的数据资源。在检测到服务器推送的数据资源后,可获得该数据资源的时间戳和/或版本信息,并根据接收到的数据资源的时间戳和/或版本信息判断服务器推送的数据资源的版本是否高于客户端设备本地的数据资源的版本。
上述步骤402可由图2所示系统架构中的客户端设备10的检测模块101执行。
步骤403:客户端设备根据服务器推送的数据资源更新浏览器显示的页面。
上述步骤403可由图2所示系统架构中的客户端设备10的部署模块102和浏览器模块103执行。具体地,部署模块102可指示浏览器模块103更新显示的页面,相应地,浏览器模块103根据更新的数据资源更新显示的页面。
作为一个例子,部署模块102调用浏览器模块103中的CacheReload方法来更新页面布局以及进行页面渲染。
本申请实施例可支持对整个页面的更新,也可支持对页面的局部更新。具体地,可预先注册局部更新事件,这样,客户端设备接收到服务器发送的事件后且该事件为预先注册的局部更新事件,则该客户端设备可根据更新的数据资源,更新页面的局部内容。上述这种页面局部刷新方案可适用于nodejs、js或http页面开发。其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。比如局部更新事件1用于指示对页面中的导航栏进行更新,局部更新事件2用于指示对页面所使用的CSS代码进行更新。
作为一个例子,如果部署模块102中注册有局部更新事件,则当检测模块101检测到服务器推送的局部更新事件后,则发送局部更新消息给客户端设备本地应用,该应用通过JS操作DOM(Document Object Model,文档对象模型)接口的方式调用浏览器模块103使用更新的数据资源对该局部更新事件所指示的页面的局部内容进行局部布局渲染从而刷新页面。其中,用户通过客户端设备本地的该应用可以用来开发互联网应用页面。
其中,DOM是W3C组织推荐的处理可扩展标志语言的标准编程接口,是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。可以把DOM认为是页面上数据和结构的一个树形表示。DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。DOM技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等。比如,通过JavaScript调用DOM接口可以重构整个HTML文档。可以添加、移除、改变或重排页面上的项目。
进一步地,客户端设备可根据步骤403中页面更新操作的情况向应用服务器反馈响应,比如,如果页面更新成功则可反馈页面更新成功信息,如果页面更新失败则可反馈页面更新失败信息,该页面更新失败信息中可携带数据资源的相关信息(比如页面元素的标识或者代码片段文件名称,也可以是数据资源的具体内容)。服务器接收到该页面更新失败信息后,可根据该页面更新失败信息获取该服务器所备份的更新之前的数据资源并发送给该客户端设备。客户端设备接收服务器返回的数据资源后,根据服务器返回的数据资源更新浏览器显示的页面。上述过程中,服务器端的处理操作具体可由图2所示系统架构中的服务器20的部署模块201执行。
参见图5,为本申请实施例提供的用热部署流程的示意图,如图所示,该流程可包括如下步骤:
步骤501:客户端设备本地应用更新数据资源。
其中,所述客户端设备本地应用,可以是互联网应用开发程序,可以用来对互联网应用的数据资源进行更新,比如,用户可以通过该本地应用更新某个互联网应用页面使用的JavaScript程序代码,或者更新某个互联网应用页面的布局,在此不再一一列举。
步骤502:客户端设备根据本地应用更新的数据资源,更新浏览器显示的页面。
比如,如果客户端设备本地应用更新了页面使用的JavaScrip程序代码或者页面布局,则步骤502中,客户端设备的部署模块102可调用浏览器模块103进行页面重载。作为一个例子,部署模块102可调用浏览器模块103的页面重载(Reload)方法以发起资源请求,从而加载、布局和渲染页面。
进一步地,上述图5所示的流程中还可包括以下步骤:
步骤503:客户端设备向服务器发送数据资源更新请求,该数据资源更新请求中携带有该客户端设备本地更新的数据资源,该数据资源更新请求用于请求服务器根据该请求中携带的数据资源更新该数据资源的版本。
进一步地,上述图5所示的流程中还可包括以下步骤:
步骤504:服务器接收客户端设备发送的数据资源更新请求,对该请求进行响应,并向该客户端设备返回处理结果。
其中,如果服务器根据接收到的数据资源更新请求对该数据资源版本更新成功,则向客户端设备返回更新成功响应;如果服务器拒绝所述数据资源更新请求,则获取更新前的数据资源,并将该数据资源携带于恢复命令返回给该客户端设备。如果服务器拒绝所述数据资源更新请求,也可发送恢复命令,该恢复命令中不用携带数据资源,该命令可指示客户端设备恢复数据资源更新前的页面(客户端设备本地应用更新数据资源之前,更新前的数据资源可备份在客户端设备本地)。
作为一个例子,服务器中的部署模块201收到客户端设备发送的数据资源更新请求后,根据预先设置的检测规则检查是否需要合入到最新版本,如果需要合入,则向客户端设备返回更新成功响应。其中,所述“合入最新版本”是指:可以根据预先设置的检测规则,对多个客户端设备或客户端设备多次提交的数据资源更新请求所请求的更新内容进行取舍,针对可接受的更新,生成数据资源的最新版本。进一步地,可将该最新版本的数据资源推送给客户端设备。
步骤505:客户端设备接收服务器返回的针对该数据资源更新请求的处理结果,并进行相应处理。
其中,如果客户端设备接收到服务器返回的更新成功响应,则保持浏览器中显示的页面;如果客户端设备接收到服务器返回的恢复命令,则根据该恢复命令中携带的数据资源更新浏览器显示的页面,该页面恢复为更新前的页面。
通过上述步骤504和步骤505,实现了延迟补偿,即,当客户端设备进行一个操作时,该页面可直接得到更新,无需等待服务器响应。进一步地,针对该操作,在服务器的响应与客户端设备的响应不同的情况下,可根据服务器返回的数据资源对该页面进行刷新,也就是对客户端设备之前刷新页面的操作进行补偿。
本申请实施例可支持对整个页面的更新,也可支持对页面的局部更新。具体地,可预先注册局部更新事件,这样,客户端设备接收到本地应用发送的事件后且该事件为预先注册的局部更新事件,则该客户端设备可根据更新的数据资源,更新页面的局部内容。其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
作为一个例子,如果部署模块102中注册有局部更新事件,则当检测模块101检测到本地应用发送的局部更新事件后,则指示本地应用通过JS操作DOM接口的方式调用浏览器模块103使用更新的数据资源对该局部更新事件所指示的页面的局部内容进行局部布局渲染从而刷新页面。
通过以上描述可以看出,本申请的上述实施例中,当检测到有更新的数据资源时,可根据该更新的数据资源更新浏览器显示的页面。一方面,由于数据资源相对于应用模块或文件来说,其颗粒度更小,因此与现有技术相比,本申请实施例可以实现更细粒度的数据资源同步,进而可以降低资源同步时延;另一方面,当检测到有更新的数据资源时,可立即根据该更新的数据资源更新浏览器显示的页面,因此更进一步地降低了资源同步的时延,提高用户感受。
基于相同的技术构思,本申请实施例提供了一种客户端设备。该客户端设备的结构可参见图2中的客户端设备结构,其各模块的功能可参见前述实施例的描述,在此不再重复。
基于相同的技术构思,本申请实施例提供了一种服务器。该客户端设备的结构可参见图2中的服务器结构,其各模块的功能可参见前述实施例的描述,在此不再重复。
基于相同的技术构思,本申请实施例还提供了一种客户端设备。
参见图6,为本申请实施例提供的快客户端设备的结构示意图。该客户端设备总体来说可包括:处理器601,存储器602、显示器603。
其中,处理器601可以是通用处理器(比如微处理器或者任何常规的处理器等)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。存储器602具体可包括内部存储器和/或外部存储器,比如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。显示器603可包括触摸屏控制电路。
处理器601与其他各模块之间存在数据通信连接,比如可基于总线架构进行数据通信。总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器602代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
本申请实施例揭示的数据资源管理流程,可以应用于处理器601中,或者由处理器601实现。在实现过程中,图片搜索流程的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
具体地,处理器601,耦合到存储器602,用于读取存储器602存储的计算机程序指令,并作为响应,执行如下操作:
检测是否有更新的数据资源;其中,所述数据资源可以包括页面元素和/或代码片段;
若检测到有的更新的数据资源,则根据所述更新的数据资源更新浏览器显示的页面。
优选地,处理器601可具体用于:接收服务器推送的数据资源,若服务器推送的数据资源的版本高于所述客户端设备本地的数据资源的版本,则将所述服务器推送的数据资源确定为更新的数据资源。
进一步地,处理器601还可用于:若根据所述更新的数据资源更新所述浏览器显示的页面时操作失败,则向所述服务器反馈页面更新失败信息;以及,接收所述服务器返回的数据资源,其中,所述服务器返回的数据资源是所述服务器根据所述页面更新失败信息获取到的该服务器所备份的版本更新之前的数据资源;根据所述服务器返回的数据资源更新浏览器显示的页面。
优选地,处理器601检测是否有更新的数据资源时,可接收本地应用更新的数据资源,将本地应用更新的数据资源确定为更新的数据资源。
进一步地,处理器601,还可用于:向服务器发送数据资源更新请求,所述数据资源更新请求中携带有所述本地应用更新的数据资源,所述数据资源更新请求用于请求所述服务器根据该请求中携带的数据资源更新该数据资源版本。
进一步地,处理器601将本地应用更新的数据资源发送给服务器之后,还可接收所述服务器返回的更新成功响应,所述更新成功响应用于表明所述服务器根据所述数据资源更新请求对数据资源版本更新成功;或者,接收所述服务器返回的恢复命令,并根据所述恢复命令中携带的数据资源更新浏览器显示的页面,其中,所述恢复命令中携带的数据资源是所述服务器在拒绝所述数据资源更新请求的情况下所获得的数据资源。
优选地,处理器601在根据所述更新的数据资源更新所述浏览器显示的页面时,若接收到局部更新事件,则根据接收到的所述局部更新事件以及所述更新的数据资源,更新浏览器显示的页面的局部内容。
其中,处理器601在更新浏览器显示的页面的局部内容时,可根据接收到的局部更新事件,通过JavaScript操作DOM接口,使用所述更新的数据资源对该局部更新事件所指示的页面的局部内容进行页面的局部刷新。
其中,所述局部更新事件的数量为一个或多个,一个局部更新事件用于指示对页面中的特定局部内容进行刷新。
进一步地,处理器601还可建立与所述服务器之间的连接并维护所述连接的有效性,所述连接用于传输与所述服务器之间交互的数据资源。
综上所述,本申请实施例可最大化提升运行性能,尤其针对无网络连接情况下,互联网应用可使用缓存的数据资源,避免了该中情况下无法使用互联网应用的问题。此外,本申请实施例支持多种资源缓存策略(全缓存、部分缓存等),并支持根据网络状态、设备内存/CPU状态等动态调整缓存(比如释放缓存的数据资源),从而可最大化平衡性能和内存使用。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。