一种基于WebApp的数据处理方法和系统
技术领域
本发明涉及一种基于WebApp的数据处理方法和系统。
背景技术
Web App是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。它是一个针对Iphone、Android优化后的web站点,它使用的客户端技术是HTML5、CSS3、JavaScript,服务端技术可以是JAVA、PHP、.net等。
单页面应用是webapp实现的一种方式,它旨在提供一个流畅的优雅的用户体验,但本身并不包含开发架构。技术人员并没有一个统一的规范去实现单页面应用,而且单页应用的特点导致大量代码(主要是html)编写在一个文件里,往往代码高度耦合、维护性差、移植性差。目前webapp并没有成熟的开发框架,导致开发人员开发效率低下,一个应用产生大量的代码,往往高耦合、难以重用,代码维护成本非常大。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种基于WebApp的数据处理方法和系统,应用于由模块化开发框架所开发的应用程序中,解决应用程序中的模块复用性差、移植性差以及开发难度大的问题。
为解决上述问题,本发明所采用的技术方案如下:
方案一:
一种基于WebApp的数据处理方法,包括以下步骤:
步骤1、路由解释器接收浏览器发起的页面请求,根据页面请求中的url获取hash值,并将hash值发送至根控制器中;
步骤2、根控制器根据hash值加载目标内容模块,并进入逻辑处理步骤;
步骤3、根控制器将逻辑处理步骤后生成的结果视图数据填充至根视图模块中,并将根视图模块的内容返回浏览器中。
优选的,在步骤2中,逻辑处理步骤包括:
步骤21、将根控制器加载的目标内容模块记为当前内容模块;
步骤22、加载当前内容模块中的逻辑控制单元,并执行该逻辑控制单元中定义的逻辑内容;
步骤23、判断逻辑内容中是否包括加载其它内容模块的逻辑,若是,则将其它内容模块记为当前内容模块并执行步骤22,否则执行步骤24;
步骤24、生成结果视图数据,结果视图数据用于填充至根视图模块中。
优选的,逻辑内容包括:定义当前内容模块中的视图单元与事件单元中定义的事件的绑定关系;
和/或调用当前内容模块中的数据层单元从数据库中获取对应的数据;
和/或调用其它内容模块中的数据层单元从数据库中获取对应的数据;
和/或将获取的数据发送至其它内容模块中;
和/或将获取的数据结合当前内容模块中的显示模板单元生成当前模板格式数据,并将当前模板格式数据填充至当前内容模块的视图单元中。
方案二:
一种基于WebApp的数据处理系统,包括以下模块:
监听模块,设于路由解释器中,用于接收浏览器发起的页面请求,根据页面请求中的url获取hash值,并将hash值发送至根控制器中;
加载模块,设于根控制器中,用于根据hash值加载目标内容模块,并进入逻辑处理模块;
填充返回模块,设于根控制器中,用于将逻辑处理步骤后生成的结果视图数据填充至根视图模块中,并将根视图模块的内容返回浏览器中。
优选的,在加载模块中,逻辑处理模块包括:
标记单元,用于将根控制器加载的目标内容模块记为当前内容模块;
逻辑执行单元,用于加载当前内容模块中的逻辑控制单元,并执行该逻辑控制单元中定义的逻辑内容;
判断单元,用于判断逻辑内容中是否包括加载其它内容模块的逻辑,若是,则将所述其它内容模块记为当前内容模块并执行逻辑执行单元,否则执行处理结果单元;
处理结果单元,用于生成结果视图数据,结果视图数据用于填充至根视图模块中。
优选的,逻辑内容包括:定义当前内容模块中的视图单元与事件单元中定义的事件的绑定关系;
和/或调用当前内容模块中的数据层单元从数据库中获取对应的数据;
和/或调用其它内容模块中的数据层单元从数据库中获取对应的数据;
和/或将获取的数据发送至其它内容模块中;
和/或将获取的数据结合当前内容模块中的显示模板单元生成当前模板格式数据,并将当前模板格式数据填充至当前内容模块的视图单元中。
相比现有技术,本发明的有益效果在于:1、内容模块之间可嵌套使用,完成一个应用可以多个内容模块相对独立地进行开发,而且每个内容模块中有固定的开发框架,由各个不同的单元组成一个内容模块,有利于开发者的团队开发,每人负责一部分,最终的应用就是通过在每个内容模块中的逻辑控制单元中定义好逻辑内容即可把各个内容模块中的单元串联起来。2、在每个内容模块中的逻辑控制单元既可通过调用本内容模块中的数据层单元获取数据,也能调用其它内容模块中的数据层单元获取数据,还可以是由其它内容模块中的逻辑控制单元将数据传入,因此数据的调用获取方式十分灵活。3、每个内容模块中的单元均可复用,可移植,每个单元之间有效地隔离,对于开发人员来说,修改内容模块中的结构也更加容易。
附图说明
图1为本发明的基于WebApp的数据处理方法的流程图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
参考图1,本发明公开了一种基于WebApp的数据处理方法,包括以下步骤:
步骤1、路由解释器接收浏览器发起的页面请求,根据页面请求中的url获取hash值,并将hash值发送至根控制器中;
步骤2、根控制器根据hash值加载目标内容模块,并进入逻辑处理步骤;
步骤3、根控制器将逻辑处理步骤后生成的结果视图数据填充至根视图模块中,并将根视图模块的内容返回浏览器中。
其中,内容模块包括:视图单元、逻辑控制单元、事件单元、数据层单元和显示模板单元。内容模块中的每个单元均可独立开发,对于开发者能够进行明确的分工,各自负责不同的部分,而且内容模块中的各个单元可复用、可移植,灵活性高,能够组合出不同的内容模块。逻辑控制单元的作用是响应用户端的指令,然后执行其中的相关逻辑内容,其中,响应用户端的指令可通过在视图单元中绑定事件单元中的事件实现。通过逻辑控制单元中的逻辑内容还可以实现内容模块的嵌套,完成更复杂的应用。视图单元的作用是由逻辑控制单元完成逻辑处理后将得到的数据填充至视图单元,具体的,得到的数据结合显示模板单元再填充至视图单元,形成视图数据。另外,内容模块中并不一定需要包括上述的每个单元,根据不同的需求可以选择开发不同的单元,但是逻辑控制单元是支撑内容模块的基本单元,因此是必须的。
在步骤2中,逻辑处理步骤包括:
步骤21、将根控制器加载的目标内容模块记为当前内容模块;
步骤22、加载当前内容模块中的逻辑控制单元,并执行该逻辑控制单元中定义的逻辑内容;
步骤23、判断逻辑内容中是否包括加载其它内容模块的逻辑,若是,则将其它内容模块记为当前内容模块并执行步骤22,否则执行步骤24;
步骤24、生成结果视图数据,结果视图数据用于填充至根视图模块中。
其中,逻辑内容包括:定义当前内容模块中的视图单元与事件单元中定义的事件的绑定关系;和/或调用当前内容模块中的数据层单元从数据库中获取对应的数据;和/或调用其它内容模块中的数据层单元从数据库中获取对应的数据;和/或将获取的数据发送至其它内容模块中;和/或将获取的数据结合当前内容模块中的显示模板单元生成当前模板格式数据,并将当前模板格式数据填充至当前内容模块的视图单元中。当然,逻辑内容并不限定于上述的描述,还可以是根据实际需要开发不同的逻辑内容。
下面以具体的例子结合上述的方法作进一步描述:
基于一个评论页面的应用,其中包括两个内容模块,一个是评论内容模块,另一个是评论列表模块。首先在用户端中,以浏览器为例,其传递至路由解释器中的url为:http://xxx.com/index#commentList,其中,commentList为hash值,与评论列表模块对应。则根控制器根据hash值加载目标内容模块,即加载评论列表模块,从而进入评论列表模块中的逻辑处理步骤。
在步骤21中,将评论列表模块记为当前内容模块。在步骤22中,加载其中的逻辑控制单元,并执行该逻辑控制单元中定义的逻辑内容。在本例子中,需要通过评论内容模块中的数据层单元获取评论列表数据,因此在评论列表模块的逻辑控制单元中调用评论内容模块中的数据层单元获取评论列表数据。
在步骤23中,判断当前内容模块中的逻辑内容是否包括加载其它内容模块的逻辑,是则进入所述其它内容模块中执行其中的逻辑内容;在本例子中,评论内容模块即为评论列表模块中的其它内容模块,而在评论内容模块中定义的逻辑是循环加载评论内容模块,每一次循环则将获取的评论列表数据中的一条评论数据传入评论内容模块中的逻辑控制单元,则评论内容模块中的逻辑控制单元中的逻辑内容是:利用接收到的评论数据结合评论内容模块中的显示模板单元生成模板格式数据,并将模板格式数据填充至评论内容模块中的视图单元中。例如,评论列表数据中包括十条评论数据,则循环加载十次评论内容模块中的逻辑控制单元,从而得到一个具有十条模板格式数据的视图数据,可理解为结果视图数据。最终把结果视图数据填充至根视图模块中,由根控制器将根视图模块的内容返回浏览器中呈现给用户。
结合上述例子,本发明的的数据处理过程体现出了:1、内容模块之间可嵌套使用,完成一个应用可以多个内容模块相对独立地进行开发,而且每个内容模块中有固定的开发框架,由各个不同的单元组成一个内容模块,有利于开发者的团队开发,每人负责一部分,最终的应用就是通过在每个内容模块中的逻辑控制单元中定义好逻辑内容即可把各个内容模块中的单元串联起来。2、在每个内容模块中的逻辑控制单元既可通过调用本内容模块中的数据层单元获取数据,也能调用其它内容模块中的数据层单元获取数据,还可以是由其它内容模块中的逻辑控制单元将数据传入,因此数据的调用获取方式十分灵活。3、每个内容模块中的单元均可复用,可移植,每个单元之间有效地隔离,对于开发人员来说,修改内容模块中的结构也更加容易。
对应于上述的数据处理方法,本发明还公开了一种基于WebApp的数据处理系统,包括以下模块:
监听模块,设于路由解释器中,用于接收浏览器发起的页面请求,根据页面请求中的url获取hash值,并将hash值发送至根控制器中;
加载模块,设于根控制器中,用于根据hash值加载目标内容模块,并进入逻辑处理模块;
填充返回模块,设于根控制器中,用于将逻辑处理步骤后生成的结果视图数据填充至根视图模块中,并将根视图模块的内容返回浏览器中。
优选的,在加载模块中,逻辑处理模块包括:
标记单元,用于将根控制器加载的目标内容模块记为当前内容模块;
逻辑执行单元,用于加载当前内容模块中的逻辑控制单元,并执行该逻辑控制单元中定义的逻辑内容;
判断单元,用于判断逻辑内容中是否包括加载其它内容模块的逻辑,若是,则将所述其它内容模块记为当前内容模块并执行逻辑执行单元,否则执行处理结果单元;
处理结果单元,用于生成结果视图数据,结果视图数据用于填充至根视图模块中。
优选的,逻辑内容包括:定义当前内容模块中的视图单元与事件单元中定义的事件的绑定关系;
和/或调用当前内容模块中的数据层单元从数据库中获取对应的数据;
和/或调用其它内容模块中的数据层单元从数据库中获取对应的数据;
和/或将获取的数据发送至其它内容模块中;
和/或将获取的数据结合当前内容模块中的显示模板单元生成当前模板格式数据,并将当前模板格式数据填充至当前内容模块的视图单元中。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。