一种客户端页面生成方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种客户端页面生成方法和装置。
背景技术
客户端(Client),通常与服务器相对应,安装在用户终端设备中,可以为用户提供服务的应用程序。当应用程序进行了应用功能更新之后,需要对用户终端设备中的客户端进行升级更新,以显示与更新后的功能相匹配的显示界面。在实际应用中,更新客户端的方式一般通过在应用商店中发布新版本来实现。但是,为了满足不同的业务需求,可能会经常需要对客户端用户界面UI(User Interface)或业务逻辑进行更新,如果每次更新用户界面UI(User Interface)或业务逻辑都需要开发者进行新版本开发并在应用商店中发布新版本,导致客户端更新效率较低。
发明内容
本申请实施例提供一种客户端页面生成方法和装置,能够有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
本申请实施例提供一种客户端页面生成方法,包括:
客户端向服务器发送页面数据请求,所述页面数据请求中包括页面标识;
所述客户端接收所述服务器返回的至少一个页面模块,所述页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个页面模块是根据所述页面标识确定的;
针对任一页面模块,所述客户端根据所述页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;
所述客户端根据所述至少一个页面模块中包括的模块数据和所述模块模板脚本,生成客户端页面。
可选地,针对任一页面模块,所述客户端根据所述页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本,包括:
若所述客户端中存储有与所述模块模板标识对应的模块模板脚本,则所述客户端确定所述模块模板脚本在所述客户端中对应的第二版本参数;
若第二版本参数小于第一版本参数,则所述客户端确定所述模块模板标识为待更新模块模板标识;
所述客户端根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
可选地,针对任一页面模块,所述客户端根据所述页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本,包括:
若所述客户端中未存储有与所述模块模板标识对应的模块模板脚本,则所述客户端确定所述模块模板标识为待更新模块模板标识;
所述客户端根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
可选地,所述客户端根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本,包括:
所述客户端向所述服务器发送模块模板脚本获取请求,所述模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数;
所述客户端接收所述服务器返回的与所述待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;
所述客户端将与所述待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与所述待更新模块模板标识对应的模块模板脚本。
可选地,若所述客户端中存储有与所述模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本,则所述客户端将所述客户端中存储的所述模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与所述模块模板标识对应的模块模板脚本。
可选地,所述客户端根据所述至少一个页面模块中包括的模块数据和所述模块模板脚本,生成客户端页面,包括:
针对任一页面模块,所述客户端通过脚本引擎解析与所述页面模块中包括的模块模板标识对应的模块模板脚本,得到所述页面模块对应的模块模板;
所述客户端将任一页面模块中包括的模块数据绑定到所述页面模块对应的模块模板中,得到所述页面模块对应的页面模块数据模型;
所述客户端通过对所述至少一个页面模块对应的页面模块数据模型进行视图渲染,生成客户端页面。
可选地,在所述客户端接收所述服务器返回的页面模块为至少两个时,任一页面模块中还包括模块位置数据;
所述方法还包括:
所述客户端根据任一页面模块中的模块位置数据,对所述页面模块对应的页面模块数据模型进行布局。
可选地,不同页面模块中包括相同的模块模板标识;
和/或,
不同页面标识确定相同的页面模块。
可选地,所述模块模板脚本中包括下述至少一种:页面配置、用户界面UI、业务逻辑和页面资源。
本申请实施例还提供一种客户端页面生成方法,包括:
客户端向服务器发送第一页面数据请求,所述第一页面数据请求中包括第一页面标识;所述客户端接收所述服务器返回的至少一个第一页面模块,所述第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第一页面模块是根据所述第一页面标识确定的;
针对任一第一页面模块,所述客户端根据所述第一页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;所述客户端根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
所述客户端向所述服务器发送第二页面数据请求,所述第二页面数据请求中包括第二页面标识;所述客户端接收所述服务器返回的至少一个第二页面模块,所述第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第二页面模块是根据所述第二页面标识确定的;
针对任一第二页面模块,所述客户端根据所述第二页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;所述客户端根据所述至少一个第二页面模块中包括的模块数据和所述模块模板脚本,生成第二户端页面;
其中,所述第一页面标识确定的所述至少一个第一页面模块和所述第二页面标识确定的所述至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
本申请实施例还提供一种客户端页面生成装置,包括:
发送单元,向服务器发送页面数据请求,所述页面数据请求中包括页面标识;
接收单元,接收所述服务器返回的至少一个页面模块,所述页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个页面模块是根据所述页面标识确定的;
确定单元,针对任一页面模块,根据所述页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;
生成单元,根据所述至少一个页面模块中包括的模块数据和所述模块模板脚本,生成客户端页面。
可选地,所述确定单元具体用于:
若所述客户端中存储有与所述模块模板标识对应的模块模板脚本,则确定所述模块模板脚本在所述客户端中对应的第二版本参数;
若第二版本参数小于第一版本参数,则确定所述模块模板标识为待更新模块模板标识;
根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
可选地,所述确定单元具体用于:
若所述客户端中未存储有与所述模块模板标识对应的模块模板脚本,则确定所述模块模板标识为待更新模块模板标识;
根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
可选地,所述确定单元还具体用于:
向所述服务器发送模块模板脚本获取请求,所述模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数;
接收所述服务器返回的与所述待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;
将与所述待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与所述待更新模块模板标识对应的模块模板脚本。
可选地,所述确定单元具体用于:
若所述客户端中存储有与所述模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本,则将所述客户端中存储的所述模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与所述模块模板标识对应的模块模板脚本。
可选地,所述生成单元进一步包括:
脚本解析子单元,针对任一页面模块,通过脚本引擎解析与所述页面模块中包括的模块模板标识对应的模块模板脚本,得到所述页面模块对应的模块模板;
数据绑定子单元,将任一页面模块中包括的模块数据绑定到所述页面模块对应的模块模板中,得到所述页面模块对应的页面模块数据模型;
生成子单元,通过对所述至少一个页面模块对应的页面模块数据模型进行视图渲染,生成客户端页面。
可选地,在所述接收单元接收所述服务器返回的页面模块为至少两个时,任一页面模块中还包括模块位置数据;
所述装置还包括:
布局单元,根据任一页面模块中的模块位置数据,对所述页面模块对应的页面模块数据模型进行布局。
可选地,不同页面模块中包括相同的模块模板标识;
和/或,
不同页面标识确定相同的页面模块。
可选地,所述模块模板脚本中包括下述至少一种:页面配置、用户界面UI、业务逻辑和页面资源。
本申请实施例还提供一种客户端页面生成装置,包括:
存储器,存放程序;
处理器,执行所述存储器存储的程序,并具体执行:
向服务器发送页面数据请求,所述页面数据请求中包括页面标识;
接收所述服务器返回的至少一个页面模块,所述页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个页面模块是根据所述页面标识确定的;
针对任一页面模块,根据所述页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;
根据所述至少一个页面模块中包括的模块数据和所述模块模板脚本,生成客户端页面。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
向服务器发送页面数据请求,所述页面数据请求中包括页面标识;
接收所述服务器返回的至少一个页面模块,所述页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个页面模块是根据所述页面标识确定的;
针对任一页面模块,根据所述页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;
根据所述至少一个页面模块中包括的模块数据和所述模块模板脚本,生成客户端页面。
本申请实施例还提供一种客户端页面生成装置,包括:
第一发送单元,向服务器发送第一页面数据请求,所述第一页面数据请求中包括第一页面标识;
第一接收单元,接收所述服务器返回的至少一个第一页面模块,所述第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第一页面模块是根据所述第一页面标识确定的;
第一确定单元,针对任一第一页面模块,根据所述第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;
第一生成单元,根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
第二发送单元,向所述服务器发送第二页面数据请求,所述第二页面数据请求中包括第二页面标识;
第二接收单元,接收所述服务器返回的至少一个第二页面模块,所述第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第二页面模块是根据所述第二页面标识确定的;
第二确定单元,针对任一第二页面模块,根据所述第二页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;
第二生成单元,根据所述至少一个第二页面模块中包括的模块数据和所述模块模板脚本,生成第二户端页面;
其中,所述第一页面标识确定的所述至少一个第一页面模块和所述第二页面标识确定的所述至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
本申请实施例还提供一种客户端页面生成装置,包括:
存储器,存放程序;
处理器,执行所述存储器存储的程序,并具体执行:
向服务器发送第一页面数据请求,所述第一页面数据请求中包括第一页面标识;接收所述服务器返回的至少一个第一页面模块,所述第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第一页面模块是根据所述第一页面标识确定的;
针对任一第一页面模块,根据所述第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
向所述服务器发送第二页面数据请求,所述第二页面数据请求中包括第二页面标识;接收所述服务器返回的至少一个第二页面模块,所述第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第二页面模块是根据所述第二页面标识确定的;
针对任一第二页面模块,根据所述第二页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;根据所述至少一个第二页面模块中包括的模块数据和所述模块模板脚本,生成第二户端页面;
其中,所述第一页面标识确定的所述至少一个第一页面模块和所述第二页面标识确定的所述至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
向服务器发送第一页面数据请求,所述第一页面数据请求中包括第一页面标识;接收所述服务器返回的至少一个第一页面模块,所述第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第一页面模块是根据所述第一页面标识确定的;
针对任一第一页面模块,根据所述第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与所述模块模板标识对应的模块模板脚本;根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
向所述服务器发送第二页面数据请求,所述第二页面数据请求中包括第二页面标识;接收所述服务器返回的至少一个第二页面模块,所述第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,所述至少一个第二页面模块是根据所述第二页面标识确定的;
针对任一第二页面模块,根据所述第二页面模块中包括的模块模板标识和第一版本参数,确定所述客户端中与所述模块模板标识对应的模块模板脚本;根据所述至少一个第二页面模块中包括的模块数据和所述模块模板脚本,生成第二户端页面;
其中,所述第一页面标识确定的所述至少一个第一页面模块和所述第二页面标识确定的所述至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
客户端向服务器发送包括页面标识的页面数据请求,并接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,针对任一页面模块,客户端根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本,进而根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,从而使得无需开发客户端新版本,仅需通过为页面配置模块模板脚本,实现客户端页面显示的更新,有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种客户端页面生成方法的流程示意图;
图2为本申请实施例提供的生成模块模板脚本的示意图;
图3为本申请实施例提供的模板引擎的示意图;
图4为本申请实施例提供的客户端页面的示意图;
图5为本申请实施例提供的客户端页面的示意图;
图6为本申请实施例提供的一种客户端页面生成方法的流程示意图;
图7为本申请实施例提供的一种电子设备的结构示意图;
图8为本申请实施例提供的一种客户端页面生成装置的结构示意图。
具体实施方式
为了实现本申请的目的,本申请实施例提供了一种客户端页面生成方法和装置,该方法包括:客户端向服务器发送包括页面标识的页面数据请求,并接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,针对任一页面模块,客户端根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本,进而根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,从而使得无需开发客户端新版本,仅需通过为页面配置模块模板脚本,实现客户端页面显示的更新,有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为本申请实施例提供的一种客户端页面生成方法的流程示意图。所述方法可以如下所示。
步骤102:客户端向服务器发送页面数据请求,页面数据请求中包括页面标识。
当用户打开客户端或者使用客户端时,用户不同的操作行为可以使得客户端向用户展示不同的客户端页面。在显示客户端页面之前,客户端首先需要向服务器获取页面数据。
客户端根据用户的操作行为向服务器发送页面数据请求,该页面数据请求中包括页面标识。
例如,客户端接收到用户打开客户端的操作行为时,向服务器发送页面数据请求,该页面数据请求中包括用于表示客户端主页的页面标识。
步骤104:客户端接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数。
其中,至少一个页面模块是根据页面标识确定的。
实际应用中,当需要更新用户界面UI(User Interface)或业务逻辑时,开发人员对单独页面进行更新之后打包得到新版本的客户端安装包,并在应用商店中发布新版本的客户端安装包。
当用户通过在应用商店中下载新版本的客户端安装包完成客户端更新之后,客户端向服务器发送包含页面标识的页面数据请求之后,服务器向客户端返回页面数据,并根据该页面数据生成客户端页面进行展示,使得客户端更新效率低且客户端页面的展示不够灵活。
本申请实施例中,在客户端开发过程中,开发人员根据业务需求,为客户端开发多个模块模板脚本,每个模块模板脚本的开发过程仅与该模块模板脚本对应的页面模块相关,各个模块模板脚本之间没有数据关联。开发人员将在开发平台开发完成的多个模块模板脚本上传至与客户端对应的服务器中的模板服务器进行存储。
实际应用中,根据不同业务需求,开发人员可以开发新的模块模板脚本上传至模板服务器,和/或,对模板服务器中存储的模块模板脚本进行版本更新。
例如,模板服务器中包括模块模板A1.0脚本,随着业务需求的变更,开发人员在开发平台上开发完成模块模板A2.0脚本,并将该模块模板A2.0脚本上传至模板服务器,使得模板服务器中的模块模板A脚本从版本1.0更新为版本2.0。
再例如,模板服务器中包括模块模板A1.0脚本,随着业务需求的变更,开发人员在开发平台上开发完成模块模板B 1.0脚本,并将该模块模板B 1.0脚本上传至模板服务器,使得模板服务器中的增加版本1.0的模块模板B脚本。
本申请实施例中,模板服务器中除了包括模块模板脚本之外,还包括不同页面标识对应的模块模板标识列表,该模块模板标识列表中包括至少一个模块模板标识以及任一模块模板标识对应的版本参数。
通过为不同页面标识配置不同的模块模板标识列表,使得在实际应用中,可以在客户端中生成各种不同的客户端页面,实现客户端实现灵活地动态化运营效果。
例如,用于表示客户端主页的页面标识对应的模块模板标识列表为:模块模板A1.0、模块模板B 2.0、模块模板C 1.0,表示客户端可以通过模块模板A 1.0脚本、模块模板B2.0脚本、模块模板C 1.0脚本搭建客户端主页对应的用户界面UI。
本申请实施例中,模块模板脚本中包括下述至少一种:页面配置、用户界面UI、业务逻辑和页面资源。
图2为本申请实施例提供的生成模块模板脚本的示意图。
如图2所示,根据业务需求,通过XML语言编写模块模板的用户界面XML UI描述文件A.xml和B.xml,进而将用户界面XML UI描述文件,业务逻辑、页面配置和页面资源相关js文件等进行预编译,最终生成模块模板脚本。
由于每个模块模板脚本的开发与其他模块模板脚本的开发没有依赖关联,使得每个模块模板脚本都可以灵活复用组合,而不受其他模块模板脚本的影响。
本申请实施例中,客户端向服务器发送页面数据请求,可以是客户端向服务器中的业务服务器发送页面数据请求。
业务服务器根据页面数据请求中的页面标识,从模板服务器中确定与该页面标识对应的模块模板标识列表,进而业务服务器根据该模块模板标识列表确定与任一模块模板标识对应的模块数据。
例如,业务服务器接收到客户端发送的用于表示客户端主页的页面标识,根据该用于表示客户端主页的页面标识,从模板服务器中确定的模块模板标识列表为:模块模板A1.0、模块模板B 2.0、模块模板C 1.0,进而业务服务器确定模块模板A对应的模块数据、模块模板B对应的模块数据、模块模板C对应的模块数据。
业务服务器根据确定的模块模板标识、第一版本参数以及模块数据,确定与页面标识对应的至少一个页面模块。
本申请实施例中,不同页面模块中包括相同的模块模板标识;
和/或,
不同页面标识确定相同的页面模块。
由于每个模块模板脚本的开发与其他模块模板脚本的开发没有依赖关联,使得每个模块模板脚本可以在页面内部或者页面之间灵活复用。
例如,根据页面标识确定与页面标识对应的三个页面模块:页面模块一,模块模板A1.0和模块数据;页面模块二,模块模板B 2.0模块数据;页面模块三,模块模板A1.0和模块数据。也即页面模块一和页面模块三复用模块模板A。
再例如,根据页面标识一确定与页面标识一对应的两个页面模块:页面模块一,模块模板A1.0和模块数据;页面模块二,模块模板B 2.0模块数据。根据页面标识二确定与页面标识二对应的三个页面模块:页面模块一,模块模板A1.0和模块数据;页面模块二,模块模板B 2.0模块数据;页面模块三,模块模板A1.0和模块数据。也即页面标识一对应的页面和页面标识二对应的页面复用页面模块一和页面模块二。
业务服务器向客户端返回与页面标识对应的至少一个页面模块,使得客户端接收到与页面标识对应的至少一个页面模块,页面模块中包括:模块数据、模块模板标识,模块模板对应的第一版本参数。
例如,业务服务器确定与用于表示客户端主页的页面标识对应的三个页面模块:页面模块一中包括模块模板A1.0和模块数据;页面模块二中包括模块模板B 2.0和模块数据;页面模块三中包括模块模板C 1.0和模块数据。其中,模块模板A对应的第一版本参数为1.0,模块模板B对应的第一版本参数为2.0,模块模板C对应的第一版本参数为1.0。
步骤106:针对任一页面模块,客户端根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本。
客户端本地存储有部分模块模板脚本,在客户端接收到服务器返回的与页面标识对应的至少一个页面模块之后,根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本。
确定客户端中与模块模板标识对应的模块模板脚本的方式可以包括下述三种:
第一种:
若客户端中存储有与模块模板标识对应的模块模板脚本,则客户端确定模块模板脚本在客户端中对应的第二版本参数;
若第二版本参数小于第一版本参数,则客户端确定模块模板标识为待更新模块模板标识;
客户端根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
具体地,客户端向服务器发送模块模板脚本获取请求,模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数;
客户端接收服务器返回的与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;
客户端将与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与待更新模块模板标识对应的模块模板脚本。
例如,客户端接收到的页面模块二中包括:模块模板B 2.0和模块数据,即模块模板标识为模块模板B,第一版本参数为2.0。
若客户端中存储有模块模板B 1.0脚本,即客户端中存储有模块模板B对应的模块模板脚本,且第二版本参数为1.0。
第二版本参数为1.0小于第一版本参数为2.0,则客户端向服务器中的模板服务器获取模块模板B 2.0脚本,并将获取到的模块模板B 2.0脚本确定为模块模板B对应的模块模板脚本。
第二种:
若客户端中未存储有与模块模板标识对应的模块模板脚本,则客户端确定模块模板标识为待更新模块模板标识;
客户端根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
具体地,客户端向服务器发送模块模板脚本获取请求,模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数;
客户端接收服务器返回的与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;
客户端将与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与待更新模块模板标识对应的模块模板脚本。
例如,客户端接收到的页面模块二中包括:模块模板B 2.0和模块数据,即模块模板标识为模块模板B,第一版本参数为2.0。
若客户端中未存储有模块模板B对应的模块模板脚本,则客户端向服务器中的模板服务器获取模块模板B 2.0脚本,并将获取到的模块模板B 2.0脚本确定为模块模板B对应的模块模板脚本。
第三种:
若客户端中存储有与模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本,则客户端将客户端中存储的模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与模块模板标识对应的模块模板脚本。
例如,客户端接收到的页面模块二中包括:模块模板B 2.0和模块数据,即模块模板标识为模块模板B,第一版本参数为2.0。
若客户端中存储有模块模板B 2.0脚本,则无需对该模块模板脚本进行更新,直接将该模块模板B 2.0脚本确定为模块模板B对应的模块模板脚本。
步骤108:客户端根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面。
客户端根据至少一个页面模块中包括的模块数据和与页面模块中包括的模块模板标识对应的模块模板脚本,通过模板引擎进行脚本解析、数据绑定、视图渲染,最终生成客户端页面,并向用户展示客户端页面。
本申请实施例中,客户端根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,包括:
针对任一页面模块,客户端通过脚本引擎解析与页面模块中包括的模块模板标识对应的模块模板脚本,得到页面模块对应的模块模板;
客户端将任一页面模块中包括的模块数据绑定到页面模块对应的模块模板中,得到页面模块对应的页面模块数据模型;
客户端通过对至少一个页面模块对应的页面模块数据模型进行视图渲染,生成客户端页面。
图3为本申请实施例提供的模板引擎的示意图。
如图3所示,模板引擎包括四个数据处理层,数据处理层31包括脚本引擎,数据处理层32包括模块/桥接注册中心,数据处理层33包括模块模板脚本文件中的模块/类/视图,数据处理层34包括模板加载器/视图渲染器。
通过数据处理层32包括的模块/桥接注册中心将数据处理层33包括的模块模板脚本文件中的模块/类/视图导入数据处理层31包括的脚本引擎,通过脚本引擎的脚本解析,得到任一页面模块对应的模块模板;数据处理层34包括的模板加载器将任一页面模块中包括的模块数据绑定到页面模块中包括的模块模板标识对应的模块模板中,得到页面模块对应的页面模块数据模型,进而数据处理层34包括的视图渲染器对至少一个页面模块对应的页面模块数据模型进行视图渲染,生成客户端页面。
图4为本申请实施例提供的客户端页面的示意图。
如图4所示,客户端页面包括三个页面模块:页面模块41、页面模块42和页面模块43。
本申请实施例中,针对任一页面模块,与该页面模块中包括的模块模板标识对应的模块模板脚本,可以为一个,也可以为多个,不做具体限定。
本申请实施例中,在客户端接收服务器返回的页面模块为至少两个时,任一页面模块中还包括模块位置数据;
所述方法还包括:
客户端根据任一页面模块中的模块位置数据,对页面模块对应的页面模块数据模型进行布局。
通过为不同页面模块设置不同的模块位置数据,使得在实际应用中,可以在客户端中对不同页面模块进行不同的布局,进而生成不同的客户端页面,使得客户端实现灵活地动态化运营效果。
图5为本申请实施例提供的客户端页面的示意图。
如图5所示,通过对构成客户端页面的页面模块51、页面模块52和页面模块53进行不同的模块位置数据设置,生成了两个不同的客户端页面。
本申请实施例记载的技术方案,客户端向服务器发送包括页面标识的页面数据请求,并接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,针对任一页面模块,客户端根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本,进而根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,从而使得无需开发客户端新版本,仅需通过为页面配置模块模板脚本,实现客户端页面显示的更新,有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
本申请实施例还提供一种客户端页面生成方法,包括:客户端向服务器发送第一页面数据请求,第一页面数据请求中包括第一页面标识;客户端接收服务器返回的至少一个第一页面模块,第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第一页面模块是根据第一页面标识确定的;针对任一第一页面模块,客户端根据第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;客户端根据至少一个第一页面模块中包括的模块数据和模块模板脚本,生成第一客户端页面;客户端向服务器发送第二页面数据请求,第二页面数据请求中包括第二页面标识;客户端接收服务器返回的至少一个第二页面模块,第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第二页面模块是根据第二页面标识确定的;针对任一第二页面模块,客户端根据第二页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;客户端根据至少一个第二页面模块中包括的模块数据和模块模板脚本,生成第二户端页面;其中,第一页面标识确定的至少一个第一页面模块和第二页面标识确定的至少一个第二页面模块中包括相同的页面模块;和/或,不同第一页面模块中包括相同的模块模板标识;和/或;不同第二页面模块中包括相同的模块模板标识,通过可以在不同页面之间灵活复用的模块模板脚本,有效提高了客户端更新效率,进而提高客户端页面展示的灵活性。
实施例2
基于前述实施例1详细叙述了本申请的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对本申请的客户端页面显示方法做进一步说明,从而形成本申请的又一个实施例。
本申请实施例2中客户端页面显示过程与实施例1中客户端页面显示过程相似,实施例2中没有介绍到的其他一些步骤可以参见实施例1中的相关描述,此处不再赘述。
图6为本申请实施例提供的一种客户端页面生成方法的流程示意图。所述方法可以如下所示。
步骤601:客户端向业务服务器发送页面数据请求,页面数据请求中包括页面标识。
步骤602:业务服务器向模板服务器发送模板信息获取请求,模板信息获取请求中包括页面标识。
步骤603:模板服务器根据页面标识,确定与页面标识对应的至少一个页面模块,页面模块中包括模块模板标识和模块模板对应的第一版本参数;并向业务服务器返回与页面标识对应的至少一个页面模块。
其中,模板服务器中存储有多个模块模板脚本,以及不同页面标识对应的页面模块中包括的模块模板标识。
步骤604:业务服务器确定与任一页面模块对应的模块数据,进而向客户端返回与页面标识对应的至少一个页面模块,页面模块中包括:模块数据、模块模板标识,模块模板对应的第一版本参数。
步骤605:客户端中的模板引擎根据任一页面模块中包括的模块模板标识和第一版本参数,确定模块模板标识中的待更新模块模板标识。
步骤606:客户端中的模板引擎向模板服务器发送模块模板脚本获取请求,模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数。
步骤607:客户端中的模板引擎接收模板服务器返回的与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;进而针对任一页面模块中包括的模块模板标识,将与该模块模板标识对应的并且版本参数为第一版本参数的模块模板脚本,确定为该模块模板标识对应的模块模板脚本。
步骤608:客户端中的模板引擎根据至少一个页面模块中包括的模块数据和模块模板脚本,通过模板引擎进行脚本解析、数据绑定、视图渲染,最终生成客户端页面,并向用户展示客户端页面。
本申请实施例记载的技术方案,客户端向服务器发送包括页面标识的页面数据请求,并接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,针对任一页面模块,客户端根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本,进而根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,从而使得无需开发客户端新版本,仅需通过为页面配置模块模板脚本,实现客户端页面显示的更新,有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
实施例3
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成客户端页面生成装置。处理器,执行存储器所存放的程序,并具体用于执行以下两种操作:
第一种:
向服务器发送页面数据请求,页面数据请求中包括页面标识;
接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个页面模块是根据页面标识确定的;
针对任一页面模块,根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;
根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面。
第二种:
向服务器发送第一页面数据请求,第一页面数据请求中包括第一页面标识;接收服务器返回的至少一个第一页面模块,第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第一页面模块是根据第一页面标识确定的;
针对任一第一页面模块,根据第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
向服务器发送第二页面数据请求,第二页面数据请求中包括第二页面标识;接收服务器返回的至少一个第二页面模块,第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第二页面模块是根据第二页面标识确定的;
针对任一第二页面模块,根据第二页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;根据至少一个第二页面模块中包括的模块数据和模块模板脚本,生成第二户端页面;
其中,第一页面标识确定的至少一个第一页面模块和第二页面标识确定的至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
上述如本申请实施例1执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1执行的方法,并实现上述实施例1的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中的客户端页面显示方法,并具体用于执行下述两种操作:
第一种:
向服务器发送页面数据请求,页面数据请求中包括页面标识;
接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个页面模块是根据页面标识确定的;
针对任一页面模块,根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;
根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面。
第二种:
向服务器发送第一页面数据请求,第一页面数据请求中包括第一页面标识;接收服务器返回的至少一个第一页面模块,第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第一页面模块是根据第一页面标识确定的;
针对任一第一页面模块,根据第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;根据所述至少一个第一页面模块中包括的模块数据和所述模块模板脚本,生成第一客户端页面;
向服务器发送第二页面数据请求,第二页面数据请求中包括第二页面标识;接收服务器返回的至少一个第二页面模块,第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第二页面模块是根据第二页面标识确定的;
针对任一第二页面模块,根据第二页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;根据至少一个第二页面模块中包括的模块数据和模块模板脚本,生成第二户端页面;
其中,第一页面标识确定的至少一个第一页面模块和第二页面标识确定的至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
图8为本申请实施例提供的一种客户端页面生成装置的结构示意图。装置800包括:
发送单元801,向服务器发送页面数据请求,页面数据请求中包括页面标识;
接收单元802,接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个页面模块是根据页面标识确定的;
确定单元803,针对任一页面模块,根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;
生成单元804,根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面。
可选地,确定单元803具体用于:
若客户端中存储有模块模板标识对应的模块模板脚本,则确定模块模板脚本在客户端中对应的第二版本参数;
若第二版本参数小于第一版本参数,则确定模块模板标识为待更新模块模板标识;
根据待更新模块模板标识和第一版本参数,确定与待更新模块模板标识对应的模块模板脚本。
可选地,确定单元803具体用于:
若客户端中未存储有模块模板标识对应的模块模板脚本,则确定模块模板标识为待更新模块模板标识;
根据待更新模块模板标识和第一版本参数,更新与待更新模块模板标识对应的模块模板脚本。
可选地,确定单元803还具体用于:
向服务器发送模块模板脚本获取请求,模块模板脚本获取请求中包括待更新模块模板标识和第一版本参数;
接收服务器返回的与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本;
将与待更新模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与待更新模块模板标识对应的模块模板脚本。
可选地,确定单元803具体用于:
若客户端中存储有模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本,则将客户端中存储的模块模板标识对应的,并且版本参数为第一版本参数的模块模板脚本确定为与模块模板标识对应的模块模板脚本。
可选地,生成单元804进一步包括:
脚本解析子单元,针对任一页面模块,通过脚本引擎解析与页面模块中包括的模块模板标识对应的模块模板脚本,得到页面模块对应的模块模板;
数据绑定子单元,将任一页面模块中包括的模块数据绑定到页面模块对应的模块模板中,得到页面模块对应的页面模块数据模型;
生成子单元,通过对至少一个页面模块对应的页面模块数据模型进行视图渲染,生成客户端页面。
可选地,在接收单元接收服务器返回的页面模块为至少两个时,任一页面模块中还包括模块位置数据;
装置800还包括:
布局单元,根据任一页面模块中的模块位置数据,对页面模块对应的页面模块数据模型进行布局。
可选地,不同页面模块中包括相同的模块模板标识;
和/或,
不同页面标识确定相同的页面模块。
可选地,页面模块对应的模块模板中包括下述至少一种:页面配置、用户界面UI、业务逻辑和页面资源。
根据客户端页面显示单元,发送单元向服务器发送页面数据请求,页面数据请求中包括页面标识;接收单元接收服务器返回的至少一个页面模块,页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个页面模块是根据页面标识确定的;确定单元针对任一页面模块,根据页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;生成单元根据至少一个页面模块中包括的模块数据和模块模板脚本,生成客户端页面,从而使得无需开发客户端新版本,仅需通过为页面配置模块模板脚本,实现客户端页面显示的更新,有效提高客户端更新效率,进而提高客户端页面展示的灵活性。
本申请实施例还提供一种客户端页面生成装置,包括:
第一发送单元,向服务器发送第一页面数据请求,第一页面数据请求中包括第一页面标识;
第一接收单元,接收服务器返回的至少一个第一页面模块,第一页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第一页面模块是根据第一页面标识确定的;
第一确定单元,针对任一第一页面模块,根据第一页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;
第一生成单元,根据至少一个第一页面模块中包括的模块数据和模块模板脚本,生成第一客户端页面;
第二发送单元,向服务器发送第二页面数据请求,第二页面数据请求中包括第二页面标识;
第二接收单元,接收服务器返回的至少一个第二页面模块,第二页面模块中包括模块数据、模块模板标识和模块模板对应的第一版本参数,至少一个第二页面模块是根据第二页面标识确定的;
第二确定单元,针对任一第二页面模块,根据第二页面模块中包括的模块模板标识和第一版本参数,确定客户端中与模块模板标识对应的模块模板脚本;
第二生成单元,根据至少一个第二页面模块中包括的模块数据和模块模板脚本,生成第二户端页面;
其中,第一页面标识确定的至少一个第一页面模块和第二页面标识确定的至少一个第二页面模块中包括相同的页面模块;和/或,
不同第一页面模块中包括相同的模块模板标识;和/或;
不同第二页面模块中包括相同的模块模板标识。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。