CN109145243A - 运行页面的方法和装置 - Google Patents
运行页面的方法和装置 Download PDFInfo
- Publication number
- CN109145243A CN109145243A CN201710458029.8A CN201710458029A CN109145243A CN 109145243 A CN109145243 A CN 109145243A CN 201710458029 A CN201710458029 A CN 201710458029A CN 109145243 A CN109145243 A CN 109145243A
- Authority
- CN
- China
- Prior art keywords
- business unit
- unit
- business
- basic framework
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种运行页面的方法和装置,该方法包括:检测第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元位于前端页面内;确定该前端页面中与该第一业务单元运行相关的至少一个第二业务单元,该前端页面中的每个业务单元对应于后端服务中实现每个业务单元功能的应用程序;根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,本申请提供的运行页面的方法,通过前端基础框架来管理前页面中多个业务单元之间的通信和交互,解决了前端页面中多个业务单元之间可能存在的冲突和干扰的问题。
Description
技术领域
本申请涉及领域通信领域,并且更具体地,涉及通信领域中前端运行页面的方法和装置。
背景技术
前端技术发展经历数十年,从早期的异步的Java脚本(java script,JS)和可扩展的标识语言(asynchronous java script and extensible markup language,AJAX)局部刷新页面开始、到后来的jQuery操作文档对象模型(document object model,DOM),再到后来的Angular JS实现组件化、再到最新的以反应/变迁(React/Flux)为代表的一系列衍生技术。新的前端技术能带来了更好的用户体验和开发体验,因此需要支持多个团队使用不同的技术流派构建的应用前端页面,不同团队开发的业务部件在同一个前端页面中运行,业务部件之间容易产生冲突和干扰。
发明内容
本申请提供一种运行页面的方法和装置,能够解决前端页面中多个业务单元之间可能产生的冲突和干扰的问题,从而实现前端页面中多个业务单元的集成。
第一方面,提供了一种运行页面的方法,该方法包括:检测第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元位于前端页面内;确定该前端页面中与该第一业务单元运行相关的至少一个第二业务单元,该前端页面中的每个业务单元对应于后端服务中实现该每个业务单元功能的应用程序;根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,该前端基础框架用于提供该第一业务单元和该至少一个第二业务单元之间的通信和协作能力。
第一方面提供的运行页面的方法,当前端页面中多个业务单元中任何一个业务单元或者多个业务单元运行的过程中需要和其他业务单元之间进行通信或者交互时,通过前端基础框架来管理前页面中多个业务单元之间的通信和交互,各个业务单元之间通信时不暴露各自的实现的细节,互不干扰,通过前端基础框架实现前端页面中各个业务单元之间的技术中立。业务单元之间的接口采用粗颗粒的业务模型,而不是技术实现模型。解决了前端页面中多个业务单元之间可能存在的冲突和干扰的问题。
在第一方面的一种可能的实现方式中,该根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,包括:该前端基础框架根据该第一业务单元运行时与该至少一个第二业务单元的运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行。
在第一方面的一种可能的实现方式中,该前端基础框架根据该第一业务单元运行时与该至少一个第二业务单元的运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行,包括:该前端基础框架根据该第一业务单元启动过程与该至少一个第二业务单元启动过程的先后顺序关系,完成该第一业务单元和该至少一个第二业务单元的启动。
在第一方面的一种可能的实现方式中,该前端基础框架根据该第一业务单元运行时与该至少一个第二业务单元的运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行,包括:该前端基础框架根据该第一业务单元执行过程与该至少一个第二业务单元的执行过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的状态的更新。
在第一方面的一种可能的实现方式中,该前端基础框架根据该第一业务单元运行时与该至少一个第二业务单元的运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行,包括:确定该第一业务单元和该至少一个第二业务单元加载资所用的时长;存储该第一业务单元和该至少一个第二业务单元加载资所用的时长,以便于确定该前端页面显示缓慢的原因。
在第一方面的一种可能的实现方式中,该前端基础框架为事件总线框架。
第二方面,提供了一种运行页面的装置,用于执行上述第一方面以及各种实现方式中的运行页面的方法,该装置包括:检测单元,用于检测第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元位于前端页面内;确定单元,用于确定该前端页面中与该第一业务单元运行相关的至少一个第二业务单元,该前端页面中的每个业务单元对应于后端服务中实现每个业务单元功能的应用程序;基础框架处理单元,用于根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,该前端基础框架用于提供该第一业务单元和该至少一个第二业务单元之间的通信和协作能力。
第三方面,提供了一种运行页面的装置,该装置包括处理器和存储器,用于支持该装置执行上述方法中相应的功能。处理器和存储器通过通信连接,该存储器存储程序,该处理器用于调用所述程序实现上述第一方面及其各种实现方式中的运行页面的方法。
第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面或第一方面的任一种可能的实现方式中的方法的指令。
附图说明
图1是本发明一个实施例的运行页面的方法的示意性流程图,
图2是本发明一个实施例的系统架构图。
图3是本发明一个实施例的前端基础框架管理多个业务单元启动的示意性流程图。
图4是本发明一个实施例的前端基础框架管理多个业务单元切换语种事件的示意性流程图。
图5是本发明一个实施例的前端基础框架管理多个业务单元加载资源的示意性流程图。
图6是本发明一个实施例的运行页面的装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在2009年之前,前端技术的框架主要是以jQuery为代表的早期操作DOM流派,其构建工具主要是手工构建,构建语言主要为JS/层叠样式表(cascading style sheets,CSS)/超文本标记语言(hyper text markup language,HTML)。在2010年至2013年期间,前端技术的框架主要是AngularJS1.x,从而开启了组件化的时代,其构建工具主要是简单的工具,构建语言主要为JS/CSS/HTML5。从2013年至今,新一代的前端技术的框架主要是以React/Flux为代表的函数式组件化,其构建工具主要是网络管理电源控制器(Node PackageManager,NPM)和网页模块打包机(web pack)的全自动构建工具,构建语言主要为欧洲计算机制造协会脚本(european computer manufacturers association script,ES7)/CSS4。新的前端技术能带来了更好的用户体验和开发体验,因此需要支持多个团队使用不同的技术流派构建的应用前端页面,能够集成在一起构成完整的解决方案。
最初,以HTML为构建语言的页面开发的时候,在脚本(script)中嵌入逻辑代码完成基本的交互,但随着项目规模的扩大,HTML的开发越来越复杂,但JS中没有模块的概念,更没有类(Class)。一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。模块开发需要遵循一定的规范,目前通行的JS模块规范主要有两种:普通的Java脚本(Common JS)和异步模块定义(asynchronousmodule definition,AMD)。Common JS和AMD仅提供了简单的模块化管理能力。一个HTML单页面由多个不同的业务部件集成,业务部件之间仍然需理解其它业务部件的实现细节。
在浏览一个网页时,一个浏览器中有一个共存的DOM,DOM是一种与浏览器和平台语言无关的接口,使得用户可以访问页面中的其他标准组件,DOM解决了不同的脚本语言之间的冲突,给予万维网(world wide web,WEB)设计师和开发者一个标准的方法,让用户可以访问站点中的数据、脚本和表现层对象。在浏览器中运行的业务部件都能互相访问统一DOM,但在访问DOM时可能会存在冲突。由于现在几乎所有页面采用单页面模式、例如,内联框架(iframe)模式。一个HTML页面由多个不同的业务部件集成,但对于浏览器来说一个HTML页面DOM结构是共享的,存在某个业务部件对应的应用(Application,App)修改另一个业务部件对应的APP的DOM节点,可能会导致另一个APP冲突的问题。并且,Common JS和AMD仅提供了简单的模块化管理能力。
同后端服务不同,前端页面需要集成的各个业务部件是无法像后端服务一样有各自的进程,而是运行在同一个浏览器的同一个页面中,一个HTML单页面由多个不同的业务部件集成,各个业务部件之间仍然需理解其它业务部件的实现细节,这使得业务部件之间冲突和干扰的可能性大大增加。
前端页面的中的各个业务部件之间是运行在一个页面中,但对于浏览器来说一个HTML页面DOM结构是共享的,存在某个APP修改另一个APP的DOM节点,可能会导致另一个APP冲突的问题。例如,以某商务网站网页上的个人信息和账户信息两个业务部件为例进行说明,在现有技术中,由于个人信息和账户信息两个进程之间需要进行交互,因此,在这两个业务部件进行交互的过程中,可能产生冲突和干扰,例如,在账户信息需要运行或者加载的时候,可能需要感知个人信息的存在,此时,若个人信息这个业务部件不存在或者显示出现问题的时候,会导致账户信息这个业务部件显示错误或者不能在前端页面中显示出来,影响用户的应用。而且,个人信息和账户信息这两个业务部件之间还可能存在JS冲突,导致个人信息或者账户信息需要调取对方的数据时产生错误,导致页面显示错误。另外,当个人信息需要调取账户信息这个业务部件的相关数据时,个人信息这个业务部件调取账户信息业务部件的应用程编程接口(application programming interface,API),存在个人信息这个业务部件可能修改取账户信息的API接口,导致账户信息这个业务部件显示错误或者后续的运行以及和其他业务部件进行交互的时候产生错误,或者不在一个页面上的业务部件进行API接口调用时可能会产生调用错误等。现有的前端技术之间不容易结合到一块,做不到技术无关,多个业务部件之间可能会产生冲突,导致页面显示错误或者缓慢的问题。
基于上述问题,本发明实例提供了一种运行页面的方法,能够解决一个前端页面中不同的业务部件之间可能存在的冲突和干扰的问题,从而实现现存和未来等多种WEB前端框架(不同技术)集成。
图1是本发明一个实施例的运行页面的方法的示意性流程图,如图1所示,该方法100包括:
S110,检测第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元位于前端页面内。
S120,确定该前端页面中与该第一业务单元运行相关的至少一个第二业务单元,该前端页面中的每个业务单元对应于后端服务中实现该每个业务单元功能的应用程序。
S130,根据该第一业务单元运行时与该至少一个第二业务单元的之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,该前端基础框架用于提供该第一业务单元和该至少一个第二业务单元之间的通信和协作能力。
具体而言,在前端页面的设计中,前端页面会被划分为多个业务单元,每个业务单元用于完成不同的业务功能,即在前端页面中的各个业务单元的作用是不同的。这些业务单元是可集成的,即可以集成在一个前端页面中进行显示,多个前端页面之间是可以进行通信或者交互的。每个业务单元对应于后端服务实现该业务单元功能的应用程序。即对应于后端服务器中实现显示该业务部件的数据或者资源。例如,一个前端页面中包括业务单元A、B、C和D,A、B、C、D四个业务单元之间可以进行交互或者通信,每个业务单元对应不同的业务,即在前端页面显示时,每个业务单元用于显示不同的业务,即每个业务单元的功能是不同的。并且每个业务单元对应着后端服务中实现该业务单元功能的应用程序。
在S110中,在前端页面运行的过程中,当检测到第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元可以是前端页面中的任何一个或者多个业务单元,例如,用户的点击鼠标、按压键盘、拖移等操作都可以看是第一信息,当检测到第一信息的输入后,便开始了前端页面中的第一业务单元的运行。在S120中,前端页面会确定与第一业务单元运行相关的至少一个第二业务单元,例如,上述的业务单元A为第一业务单元,业务单元B、C、D为第二业务单元,A和B、C、D之间具有交互关系,即业务单元A的运行和业务单元B、C、D有关,例如,只有当业务单元C运行之后,业务单元A才能运行。
在S130中,根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,该前端基础框架用于提供该第一业务单元和该至少一个第二业务单元之间的通信和协作能力。
具体而言,在前端页面中的第一业务单元和该至少一个第二业务单元进行交互的过程中,这多个业务单元并不是直接进行交互或者通信的,而是通过前端基础框架这个中介进行通信和交互,即前端基础框架根据该多个业务单元之间的交互关系,完成该多个业务单元的生命周期管理。以某商务网站页面中的个人信合和账户信息两个业务单元为例进行说明。当用户点击账户信息这个业务单元,由于账户信息这个业务单元和个人信息业务单元具有交互关系,在账户信息业务单元运行的过程中,账户信息业务单元的显示需要读取个人信息业务单元中的相关数据,此时,账户信息业务单元并不是直接从个人信息业务单元页面中获取需要的信息或者数据,而是通过该前端基础框架与个人信息业务单元进行交互,获取数据或者资源。即账户信息业务单元与该前端基础框架通信,告知自己需要的信息或者资源,前端基础框架通过调取相关的接口,从个人信息业务单元获取该信息或者数据后,将该信息或者数据反馈给账户信息业务单元,从而账户信息业务单元可以正确的向用户显示该数据。
应理解,当用户触发了一个业务单元的运行时,例如,用户触发了第一业务单元,该前端基础框架不仅可以根据与该第一业务单元之间具有交互关系的其他业务单元之间的交互关系,管理该第一业务单元和其他业务单元的运行,还可以管理各个业务单元进程之间的通信,多个业务单元之间可以通过该前端基础框架进行通信。本发明实施例在此不作限制。
在触发第一业务单元运行时,前端页面根据与第一业务单元运行时有关的至少一个第二业务单元和该第一业务单元之间的交互关系或者进程间的通信关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行。即通过前端基础框架来管理多个业务单元的之间的交互或者通信的。该前端基础框架用于提供该多个业务单元之间的通信和协作能力,即该第一业务单元和该至少一个第二业务单元之间不是直接进行交互的,而是通过前端基础框架这个中介进行进程间的通信以及管理各个业务单元的运行。该前端基础框架还可以管理多个业务单元和后端服务的交互和通信过程。
图2是本发明一个实施例的系统架构图,如图2所示,前端页面中的三个业务单元之间并不是直接进行通信或者交互的,而是通过前端基础框架进行通信,三个业务单元之间的交互和通信统一由前端基础框架进行管理,业务单元之间不暴露实现细节,互不干扰。当第一信息触发业务单元1运行时,前端页面会确定与该业务单元1运行相关的业务单元2和业务单元3,根据业务单元1运行时和业务单元2以及业务单元3之间的交互关系,管理这三个业务单元的运行。业务单元1和业务单元2以及业务单元3之间不是直接进行交互的,而是通过前端基础框架这个中介进行交互和通信的。
应理解,本发明实施例仅以图2所示的系统架构图为例进行说明,但本发明实施例并不限于此,例如,该前端页面中还可以包括更多的业务单元。
还应理解,该第一信息可以是任何形式或者种类的信息,只要该第一信息可以触发或者引起一个业务单元或者多个业务单元的运行即可。本发明实施例在此不作限制。
还应理解,第一业务单元的运行可以是第一业务单元的启动、暂停、停止等该第一业务单元在整个生命周期中的任何一个状态或者执行任何一个动作,本发明实施例在此不作限制。
还应理解,该前端基础框架提供了多个业务单元之间协作和通信的基础能力,用于管理前端页面的全局性的冲突点,例如,可以管理全局性的JS名称,浏览器特性检测和拉起,拉起全局样式,全局性的页面元素等。提供了多个业务单元之间相互调用的相关信息,实现了调动者与被调动者的之间的解耦,起到一个中间媒介的作用。
还应理解,该业务单元是业务概念而不是组件/控件,每个业务单元用于向用户显示不同的业务,对用于后端用于实现该业务单元功能的应用程序,多个业务单元是通过命名空间避免名称冲突的。多个业务单元之间是通过前端基础框架提供的消息接口进行协作,各个业务单元之间不暴露各自的实现细节。
本发明实施例提供的运行页面的方法,当前端页面中多个业务单元中任何一个业务单元或者多个业务单元运行的过程中需要和其他业务单元之间进行通信或者交互时,通过前端基础框架来管理前端页面中多个业务单元之间的通信和交互,各个业务单元之间通信时不暴露各自的实现的细节,互不干扰。并且提供了一种快速和多种前端框架集成的方法,支持与现存的前端技术的集成,并且可以与未来可能出现的框架混合集成。通过前端基础框架实现前端页面中各个业务单元之间的技术中立。业务单元之间的接口采用粗颗粒的业务模型,而不是技术实现模型。解决了前端页面中多个业务单元之间可能存在的冲突和干扰的问题,提供了业务单元独立的状态管理功能。
可选的,作为一个实施例,在S130中,该根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,包括:
该前端基础框架根据该第一业务单元运行时与该至少一个第二业务单元之间运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行。
具体而言,当前端页面中的第一业务单元运行过程中和至少一个第二业务单元需要进行通信或者交互时,前端基础框架可以根据该多个业务单元之间的运行状态之间的先后顺序,管理该多个业务单元的运行,即完成该多个业务单元的生命周期管理,例如,在第一业务单元运行过程中,根据第一业务单元和至少一个第二业务单元之间的加载、显示、启动、暂停等状态之间的关系,管理各个业务单元在整个前端页面中的活动。例如,对于一个前端页面包括业务单元A和业务单元B而言,在两个业务单元运行的过程中,业务单元A的需要感知到业务单元B在处于某一状态后才会显示下一状态或者执行下一步骤,因此,当触发业务单元A运行后,前端基础框架便会根据业务单元A和业务单元B之间的这种交互关系去管理者两个业务单元之间的交互和两个业务单元之间的运行,即业务单元A并不是直接检测业务单元B是否处于该状态,而是通过前端基础框架去检测业务单元B是否处于该状态,然后通过前端基础框架告知业务单元A是否继续显示或者执行下一状态。避免了业务单元A和业务单元B之间的之间交互可能产生的页面显示错误或者冲突的问题。
应理解,前端基础框架不仅可以根据多个业务单元的运行状态之间的先后顺序关系,管理多个业务单元的运行,还可以根据该多个业务单元其他状态之间的先后顺序关系,例如,加载、与后端服务器进行交互等过程中的先后顺序关系。管理该多个业务单元。即该前端基础框架可以提供多个业务单元之间的进程间通信和交互能力,完成多个业务单元的生命周期管理。本发明实施例在此不作限制。
可选的,作为一个实施例,根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,包括:
该前端基础框架根据该第一业务单元启动过程与该至少一个第二业务单元启动过程的先后顺序关系,完成该第一业务单元和该至少一个第二业务单元的启动。
具体而言,图3是本发明一个实施例的前端基础框架管理多个业务单元启动过程的示意性流程图,如图3所示,由于浏览器对于业务单元上的静态资源加载是并行的,通过业务单元状态来保证执行的顺序。对于业务单元的启动来说,是通过不同的业务单元启动时候状态的迁移之间的关系完成业务单元的启动。完成业务单元启动过程中分为四个状态:初始化(init)、启动依赖的业务单元(waitDeps)、等待某个状态就绪继续执行(waitState)、启动完成(running)。
如图3所示,前端页面中包括三个业务单元,业务单元1、业务单元2和业务单元3,三个业务单元的启动统一由前端基础框架进行管理,业务单元1的启动完成依赖于业务单元3的状态1(准备状态),即当业务单元3处于准备状态时,业务单元1才能完成启动。业务单元2的启动依赖于单元业务单元3,即只有当业务单元3完成启动后,业务单元2才能完成启动。而这三个业务单元的启动都是由前端基础框架统一进行管理的。当接收到打开浏览器的页面的第一信息时,由于三个业务单元的完成启动是有一定的先后顺序的,因此,前端基础框架会根据三个业务单元完成启动的先后顺序,管理三个单元单元的启动,首先,前端基础框架会分别启动业务单元1、业务单元2和业务单元3。由于业务单元1需要等到业务单元3处于状态1时才能完成启动,因此,当业务单元3处于状态1时(准备状态),业务单元1才能完成启动。而业务单元2的启动依赖于业务单元3,即在业务单元3完成启动之前,业务单元2处于启动依赖状态,因此,在业务单元3启动完成之后,业务单元2才能完成启动。前端基础框架根据这三个业务单元之间启动过程状态之间的先后顺序关系,完成该多个业务单元的启动。
应理解,前端基础框架不仅可以根据多个业务单元之间启动过程的先后顺序关系,完成多个业务单元的启动,还可以根据多个业务单元停止、卸载等业务单元的生命周期中的各个阶段先后顺序关系,完成多个业务单元的生命周期管理。本发明实施例在此不作限制。
可选的,作为一个实施例,根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,包括:
该前端基础框架根据该第一业务单元执行过程与该至少一个第二业务单元的执行过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的状态的更新。
具体而言,在前端页面框架中,多个业务单元状态的管理是通过事件模式完成业务单元状态的更新,同时,多个业务单元之间的业务交互也是通过事件来完成交互的。在前端页面中,主要是通过事件监听机制来管理业务单元之间的交互,事件监听机制是当事件源对象上发生操作时,会调用事件监听器的一个方法,并在调用该方法时传递对象事件过去。事件监听机制主要由事件源、事件对象和事件监听器组成。事件源指的是事件发生的地方,可以是一个按钮、编辑框等,由于事件的某项属性或者状态的改变导致某项事件的发生,生成了相应的事件对象。事件是指封装了事件源对象以及和事件的相关信息,用来描述用户操作的对象,例如,单机、双击、拖动、键盘的按下、释放等都可以看作是事件。事件监听器就是调用事件处理方法的对象,当界面操作事件产生并被发送到产生事件的组件时,该组件把事件发送给能接收和处理该事件的监听器。事件监听器是注册在事件源上,当事件源的属性或状态改变时,取得相应的监听器调用其内部的回调法。某对象向事件源提出申请,表明自己对某类事件感兴趣,希望该事件发生时得到通知,当事件源触发事件后,就会调用这个事件对应的事件监听器的处理事件的方法。
图4是本发明一个实施例的前端基础框架通过切换语种事件管理多个业务单元的示意性流程图,如图4所示,前端页面中的业务单元1和业务单元2向前端基础框架注册切换语种监听事件,表示自己对业务单元3的语种切换事件感兴趣,希望业务单元3在进行语种切换时得到通知,当业务单元3收到触发切换语种的第一消息后,便会向前端基础框架发送切换语种事件,即表示自己切换语种,此时,前端基础框架会检测业务单元1和业务单元2的状态,会调用对该事件的处理方法,即向业务单元1和业务单元2发送切换语种的事件,当业务单元1和业务单元2收到切换语种的事件时,便可以执行切换语种,完成自身状态的更新。
应理解,图4仅是前端基础框架通过事件模式管理多个业务单元的一个具体的实施例,但本发明实施例并不限于此,例如,该前端基础框架不仅可通过语种切换事件管理多个业务单元的状态的更新,还可以通过其他事件方式管理多个业务单元之间的交互,完成多个业务单元状态的更新。
可选的,作为一个实施例,根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,包括:
确定该第一业务单元和该至少一个第二业务单元加载资所用的时长;
存储该第一业务单元和该至少一个第二业务单元加载资所用的时长,以便于确定该前端页面显示缓慢的原因。
具体而言,前端基础框架不仅可以管理第一业务单元运行时和至少一个第二业务单元之间的通信和交互,还可以管理多个业务单元和后端服务的交互或者通信。图5是本发明一个实施例的前端基础框架管理多个业务单元加载资源的示意性流程图,业务单元每次和后端的服务器进行交互获取资源都主要经过以下几个步骤:业务单元静态资源排队请求、域名系统(domain name system,DNS)寻址、网络传输、服务端响应等步骤。如图5所示,图5中的HTML、JS、CSS、PNG分别是业务单元向后端的服务请求不同格式的资源的请求,用于请求不同格式的文件,获取需要显示的不同的内容。由于一个页面可能是由不同团队开发的业务单元组成,前端基础框架可以统计每个业务单元加载资源所用的时长,对于一个业务单元,还可以统计加载资源的每个步骤所用的时长,将这些信息存储到服务器中,用于该业务单元的开发者查看该业务单元加载资源所用的时以及每一个步骤的用时情况。可以快速定位前端页面显示缓慢是由哪个业务单元引起的,以及具体到是由哪一个步骤引起的,做到前端页面故障快速隔离,问题快速定位。
应理解,图5仅是前端基础框架管理多个业务单元和后端服务器交互的一个例子,但本发明实施例并不限于此,例如,该前端基础框架不仅可以管理业务单元加载资源过程,还可以管理业务单元和服务器之间其他的交互的过程。
可选的,作为一个实施例,该前端基础框架为事件总线框架。
具体而言,事件总线框架(event bus)是用于线程或组件之间的通讯,例如,用于片段(fragment)、活动(activity)、服务(service)等线程之间的交互和通信,避免了复杂和易错的依赖关系和生命周期问题,分离了事件的发送者和接收者,提供了各个业务单元或者组件之间的相互调用的相关信息,实现了调动者和被调动者之间的解耦,起到一个中间媒介的作用。在一个前端页面中,多个业务单元之间的直接交互可能会导致该多个业务单元之间产生冲突,导致业务单元显示错误因此,因此,利用事件总线框架可以管理多个业务单元之间的交互,防止了多个业务单元之间可能会产生的冲突,业务单元之间不用暴露各自实现细节,互不干扰。
应理解,该前端基础框架不仅可以是事件总线框架,还可以是其他具有提供多个业务单元之间通信和协作能力的框架,本发明实施例在此不作限制。
还应理解,在本发明的实施例中,上述各过程和各步骤序号的大小并不意味着执行顺序的先后,各过程的执行顺序应该以其功能和内在的逻辑而定,而不应对本发明的实施例的实施过程造成任何限制。
本发明实施例提供的运行页面的方法,当前端页面中多个业务单元中任何一个业务单元或者多个业务单元运行的过程中需要和其他业务单元之间进行通信或者交互,通过前端基础框架管理前端页面中多个业务单元之间的通信和交互,每个业务单元对应于后端服务实现该业务单元功能的应用程序,通过技术中立的消息进行通信,各个业务单元之间通过前端基础框架进行通信,业务单元之间采用粗颗粒的业务模型,而不是技术实现模型,不暴露技术实现细节,支持业务单元的在线升级和独立的状态管理。提供了一种业务单元之间的交互管道机制,在管道中支持管理消息以及业务消息的交互。防止了业务单元之间可能产生的冲突,提高用户体验。
下面将对本发明实施例的运行页面的装置进行详细描述。
图6示出了本发明一个实施例的运行页面的装置200的示意性框图,如图6所示,该运行页面的装置200包括检测单元210、确定单元220和基础框架处理单元230。可选的,该运行页面的装置200可包括存储单元240,用于存储检测单元210、确定单元220和基础框架处理单元230执行的指令。
检测单元210,用于检测第一信息,该第一信息用于指示运行第一业务单元,该第一业务单元位于前端页面内。
确定单元220,用于确定该前端页面中与该第一业务单元运行相关的至少一个第二业务单元,该前端页面中的每个业务单元对应于后端服务中实现该每个业务单元功能的应用程序。
基础框架处理单元230,用于根据该第一业务单元运行时与该至少一个第二业务单元之间的交互关系,通过前端基础框架管理该第一业务单元和该至少一个第二业务单元的运行,该前端基础框架用于提供该第一业务单元和该至少一个第二业务单元之间的通信和协作能力。
本发明实施例提供的运行页面的装置,当前端页面中多个业务单元中任何一个业务单元或者多个业务单元运行的过程中需要和其他业务单元之间进行通信或者交互时,通过基础框架处理单元管理前端页面中多个业务单元之间的通信和交互,各个业务单元之间通信时不暴露各自的实现的细节,互不干扰,防止了一个业务单元修改另一个业务单元的API接口的问题,支持与现存的前端技术的集成,并且可以与未来可能出现的框架混合集成。通过基础框架处理单元实现前端页面中各个业务单元之间的技术中立。业务单元之间的接口采用粗颗粒的业务模型,而不是技术实现模型。解决了前端页面中多个业务单元之间可能存在的冲突和干扰的问题。
可选的,作为一个实施例,该基础框架处理单元230具体用于根据该第一业务单元运行时与该至少一个第二业务单元之间运行状态之间的先后顺序关系,管理该第一业务单元和该至少一个第二业务单元的运行。
可选的,作为一个实施例,该基础框架处理单元230具体用于根据该第一业务单元启动过程与该至少一个第二业务单元启动过程的先后顺序关系,完成该第一业务单元和该至少一个第二业务单元的启动。
可选的,作为一个实施例,该基础框架处理单元230具体用于根据该第一业务单元执行过程与该至少一个第二业务单元的执行过程的先后顺序关系,完成该第一业务单元和该至少一个第二业务单元的状态的更新。
可选的,作为一个实施例,该基础框架处理单元230具体用于确定该第一业务单元和该至少一个第二业务单元加载资所用的时长;存储该第一业务单元和该至少一个第二业务单元加载资所用的时长,以便于确定该前端页面显示缓慢的原因。
可选的,作为一个实施例,该前端基础框架为事件总线框架。
本发明提供的运行页面的装置,当前端页面中多个业务单元中任何一个业务单元或者多个业务单元运行的过程中需要和其他业务单元之间进行通信或者交互时,通过前端基础框架管理前端页面中多个业务单元之间的通信和交互,每个业务单元对应于后端服务实现该业务单元功能的应用程序,通过技术中立的消息进行通信,各个业务单元之间通过前端基础框架进行通信,业务单元之间采用粗颗粒的业务模型,而不是技术实现模型,不暴露技术实现细节,支持业务单元的在线升级和独立的状态管理,防止了业务单元之间可能产生的冲突,提高用户体验。
应理解,根据本发明实施例的运行页面的装置200的各个模块的上述和其他操作和/或功能分别实现图1至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
本发明实施例还提供一种运行页面的装置。该装置包括存储器和处理器,该存储器和处理器之间通过内部连接通路互相通信,传递控制和/或数据信号。
该存储器用于存储程序代码;
该处理器用于调用该程序代码以实现本发明上述各实施例中的方法。
该运行页面的装置能够实现前述图1至图5的实施例中所实现的各个过程,为避免重复,这里不再赘述。
应理解,在本发明实施例中,该处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在实现过程中,上述方法的各步骤可以通过处理器320中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的运行页面的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中。该存储介质位于存储器中,处理器读取存储器中的介质,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可以理解,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例还提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行上述图2至图6中本发明实施例的运行页面的方法。该可读介质可以是ROM或者RAM,本发明实施例对此不作限制。
应理解,本文中术语“和/或”以及“A或B中的至少一种”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种运行页面的方法,其特征在于,包括:
检测第一信息,所述第一信息用于指示运行第一业务单元,所述第一业务单元位于前端页面内;
确定所述前端页面中与所述第一业务单元运行相关的至少一个第二业务单元,所述前端页面中的每个业务单元对应于后端服务中实现所述每个业务单元功能的应用程序;
根据所述第一业务单元运行时与所述至少一个第二业务单元之间的交互关系,通过前端基础框架管理所述第一业务单元和所述至少一个第二业务单元的运行,所述前端基础框架用于提供所述第一业务单元和所述至少一个第二业务单元之间的通信和协作能力。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务单元运行时与所述至少一个第二业务单元之间的交互关系,通过前端基础框架管理所述第一业务单元和所述至少一个第二业务单元的运行,包括:
所述前端基础框架根据所述第一业务单元运行时与所述至少一个第二业务单元的运行状态之间的先后顺序关系,管理所述第一业务单元和所述至少一个第二业务单元的运行。
3.根据权利要求2所述的方法,其特征在于,所述前端基础框架根据所述第一业务单元运行时与所述至少一个第二业务单元的运行状态之间的先后顺序关系,管理所述第一业务单元和所述至少一个第二业务单元的运行,包括:
所述前端基础框架根据所述第一业务单元启动过程与所述至少一个第二业务单元启动过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的启动。
4.根据权利要求2所述的方法,其特征在于,所述前端基础框架根据所述第一业务单元运行时与所述至少一个第二业务单元的运行状态之间的先后顺序关系,管理所述第一业务单元和所述至少一个第二业务单元的运行,包括:
所述前端基础框架根据所述第一业务单元执行过程与所述至少一个第二业务单元的执行过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的状态的更新。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述第一业务单元运行时与所述至少一个第二业务单元之间的交互关系,通过前端基础框架管理所述第一业务单元和所述至少一个第二业务单元的运行,包括:
确定所述第一业务单元和所述至少一个第二业务单元加载资所用的时长;
存储所述第一业务单元和所述至少一个第二业务单元加载资所用的时长,以便于确定所述前端页面显示缓慢的原因。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述前端基础框架为事件总线框架。
7.一种运行页面的装置,其特征在于,包括:
检测单元,用于检测第一信息,所述第一信息用于指示运行第一业务单元,所述第一业务单元位于前端页面内;
确定单元,用于确定所述前端页面中与所述第一业务单元运行相关的至少一个第二业务单元,所述前端页面中的每个业务单元对应于后端服务中实现所述每个业务单元功能的应用程序;
基础框架处理单元,用于根据所述第一业务单元运行时与所述至少一个第二业务单元之间的交互关系,通过前端基础框架管理所述第一业务单元和所述至少一个第二业务单元的运行,所述前端基础框架用于提供所述第一业务单元和所述至少一个第二业务单元之间的通信和协作能力。
8.根据权利要求7所述的装置,其特征在于,所述基础框架处理单元具体用于根据所述第一业务单元运行时与所述至少一个第二业务单元之间运行状态之间的先后顺序关系,管理所述第一业务单元和所述至少一个第二业务单元的运行。
9.根据权利要求8所述的装置,其特征在于,所述基础框架处理单元具体用于根据所述第一业务单元启动过程与所述至少一个第二业务单元启动过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的启动。
10.根据权利要求9所述的装置,其特征在于,所述基础框架处理单元具体用于根据所述第一业务单元执行过程与所述至少一个第二业务单元的执行过程的先后顺序关系,完成所述第一业务单元和所述至少一个第二业务单元的状态的更新。
11.根据权利要求9所述的装置,其特征在于,所述基础框架处理单元具体用于确定所述第一业务单元和所述至少一个第二业务单元加载资所用的时长;
存储所述第一业务单元和所述至少一个第二业务单元加载资所用的时长,以便于确定所述前端页面显示缓慢的原因。
12.根据权利要求7至11中任一项所述的装置,其特征在于,所述前端基础框架为事件总线框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710458029.8A CN109145243A (zh) | 2017-06-16 | 2017-06-16 | 运行页面的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710458029.8A CN109145243A (zh) | 2017-06-16 | 2017-06-16 | 运行页面的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109145243A true CN109145243A (zh) | 2019-01-04 |
Family
ID=64830649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710458029.8A Pending CN109145243A (zh) | 2017-06-16 | 2017-06-16 | 运行页面的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109145243A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140328189A1 (en) * | 2011-08-18 | 2014-11-06 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for determining an event instance |
CN104346333A (zh) * | 2013-07-23 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 一种Web应用的实现方法和装置 |
CN105654251A (zh) * | 2016-02-19 | 2016-06-08 | 浪潮通用软件有限公司 | 一种erp领域的业务流实现方法 |
-
2017
- 2017-06-16 CN CN201710458029.8A patent/CN109145243A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140328189A1 (en) * | 2011-08-18 | 2014-11-06 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for determining an event instance |
CN104346333A (zh) * | 2013-07-23 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 一种Web应用的实现方法和装置 |
CN105654251A (zh) * | 2016-02-19 | 2016-06-08 | 浪潮通用软件有限公司 | 一种erp领域的业务流实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Larrucea et al. | Microservices | |
CN107391114B (zh) | 页面可视化渲染方法及装置 | |
CN104756086B (zh) | 用于调试依领域而定的语言的系统和方法 | |
US8543994B2 (en) | Developing java server components without restarting the application server | |
US8954922B2 (en) | Service emulator substituting for backend components to satisfy needs of front end components | |
EP1986369A1 (en) | End user control configuration system with dynamic user interface | |
US8863083B2 (en) | Presenting user interfaces based on messages | |
CN108647141A (zh) | 自动测试方法、装置、计算机可读介质及电子设备 | |
US8479147B2 (en) | Server-page based software architecture enabling use-case oriented evolutionary software prototyping | |
JP2023541033A (ja) | マイクロフロントエンドシステム、サブアプリケーションロード方法、電子機器、及びコンピュータープログラム製品 | |
US20120023421A1 (en) | Model for extensions to system providing user interface applications | |
US20120054262A1 (en) | Architecture for modeled pattern based user interfaces | |
Asensio et al. | Emulating home automation installations through component-based web technology | |
Camilli et al. | A formal framework for specifying and verifying microservices based process flows | |
US20120030612A1 (en) | Dynamic property attributes | |
Riccobene et al. | A formal framework for service modeling and prototyping | |
US9460304B1 (en) | Data services generation | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
Gómez et al. | Profiling the publish/subscribe paradigm for automated analysis using colored Petri nets | |
KR20130068564A (ko) | 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법 | |
JP5249764B2 (ja) | スクリプトアプリケーションフレームワーク | |
CN109145243A (zh) | 运行页面的方法和装置 | |
CN111290818B (zh) | 创建应用程序的操作方法及应用程序的操作方法 | |
Wieczorek et al. | Viewpoints for modeling choreographies in service-oriented architectures | |
CN101258481B (zh) | 脚本应用程序框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |