CN112380037B - 页面间的通信方法、装置及存储介质 - Google Patents
页面间的通信方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112380037B CN112380037B CN202011331038.9A CN202011331038A CN112380037B CN 112380037 B CN112380037 B CN 112380037B CN 202011331038 A CN202011331038 A CN 202011331038A CN 112380037 B CN112380037 B CN 112380037B
- Authority
- CN
- China
- Prior art keywords
- page
- instruction information
- end point
- target
- pages
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明是关于一种页面间的通信方法、装置及存储介质,涉及信息传递技术领域,本发明包括:具有嵌套关系的第一页面检测到有需要传递的指令信息,且指令信息的终点页面是非第一页面,则根据页面之间的层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定目标第二页面;将指令信息传递给目标第二页面,以使目标第二页面继续传递指令信息直到传递给终点页面。由于本发明实施例根据页面之间的层级嵌套关系,使得信息能够在多个具有单层嵌套关系的页面之间传递,提高了信息传递的效率。
Description
技术领域
本发明涉及信息传递技术领域,尤其涉及一种页面间的通信方法、装置及存储介质。
背景技术
在互联网上提供服务的时候,需要提供展示给用户浏览的网页和后台的服务器。网页中会整合多个服务,可以通过在网页中嵌入多个网页实现的。
网页与网页之间通信时,可以采用后台服务器传递信息,例如根页面中嵌入多个页面,同时,嵌入到根页面的多个页面还可以嵌入多个页面,在上述结构中根页面与孙子页面进行通信时,根页面将其通信的内容发到后台服务器上,后台服务器将其发送给孙子页面。
还可以页面与页面之间通过iframe进行通信,一般在与页面具有单层嵌套关系的页面之间产生,例如,该页面向其子页面发送信息,或者该页面向其父页面发送信息,该页面接收其子页面发送的信息,该页面接收其父页面发送的信息。
然而,跨层的页面之间传递时,现有技术无法实现只有在页面之间传递的方式,只能通过后台服务器传递信息,导致通信效率比较低。
发明内容
本发明提供一种页面间的通信方法、装置及存储介质,提出了一种页面层级嵌套比较多时的通信方式,解决了现有技术中跨层的页面之间信息传递时只能通过后台服务器传递信息导致通信效率比较低的问题。
第一方面,本发明实施例提供的一种页面间的通信方法,包括:
具有嵌套关系的第一页面检测到有需要传递的指令信息,且所述指令信息的终点页面是非所述第一页面,则根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
将所述指令信息传递给所述目标第二页面,以使所述目标第二页面继续传递所述指令信息直到传递给所述终点页面。
上述方法,提供了一种新的页面之间的传输方式,能够在检测到有需要传递的指令信息,且确定检测到该指令信息的页面并非指令信息最终要传递的页面,那么可以根据页面之间的层级嵌套关系,从与检测到该指令信息的页面具有单层嵌套关系的第二页面中选择一个第二页面,将指令信息传递给选择的第二页面,这样可以通过选择的第二页面继续传递,直到传递给终点页面,本发明通过多个页面之间进行传递的方式实现了非单层嵌套关系的信息传递的方式,提高了信息传递的效率。
在一种可能的实现方式中,其中,所述指令信息是与所述第一页面具有单层嵌套关系的第二页面发送的;或
所述指令信息是所述第一页面根据接收到的操作指令生成的。
上述方法,页面可以具有信息传递的功能,也可以具有生成指令信息的功能,这样页面能够兼顾信息传递和信息生成,增加页面的功能。
在一种可能的实现方式中,根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面,包括:
从与所述第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在所述第一页面之后,且与所述第一页面相邻的页面作为目标第二页面;其中,所述信息传递顺序是生成所述指令信息的页面和所述终点页面之间的信息传递的顺序;所述信息传递顺序中相邻页面之间具有单层嵌套关系;或
通过查询页面之间的层级嵌套关系,确定所述第一页面和所述终点页面之间的层级嵌套关系,并根据所述第一页面和所述终点页面之间的层级嵌套关系,从所述第二页面中选择目标第二页面。
上述方法,能够选择生成指令信息的页面和终点页面之间的信息传递的顺序中在第一页面之后,且与第一页面相邻的页面作为目标第二页面,这样直接根据信息传递的顺序进行选择时,选择目标第二页面时操作方便;或者访问页面之间的层级嵌套关系进行选择目标第二页面,能够避免传递指令信息的同时需要传递信息传递的顺序,减低了传递的信息的数据包的大小,增加了传递速度。
在一种可能的实现方式中,根据所述第一页面和所述终点页面之间的层级嵌套关系,从所述第二页面中选择目标第二页面,包括:
若所述第一页面为根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述根页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述第一页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面,并将嵌入到所述终点页面的页面中包括的所述第一页面的父页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面和嵌入有所述终点页面的页面,并在嵌入到所述终点页面的页面和嵌入有所述终点页面的页面中均未包括所述第一页面所有的子页面和所述第一页面的父页面,则将所述第一页面的父页面作为目标第二页面。
能够在第一页面是根页面时,找到嵌入有终点页面的子页面作为目标第二页面;在第一页面非根页面时,由于第一页面具有父页面也具有子页面,所以,当第一页面的子页面中嵌入有终点页面,那么将子页面作为目标第二页面,当第一页面的父页面嵌入到终点页面或第一页面所有的子页面中嵌入有终点页面和父页面未嵌入到终点页面,那么需要将第一页面的父页面作为目标第二页面,本发明由于第二页面与第一页面为单层嵌套关系,所以上述方法通过就近判断,即单层嵌套关系的判断的方式,能够更加快速的找到目标第二页面。
在一种可能的实现方式中,所述将所述指令信息传递给所述目标第二页面,包括:
将所述指令信息置于所述目标第二页面对应的消息队列中,以使所述目标第二页面通过对应的所述消息队列获取所述指令信息。
上述方法,第一页面在传递指令信息时,将指令信息至于目标第二页面对应的消息队列中,从而在目标第二页面访问消息队列时获取指令信息,从而缓解了执行该第一页面的设备的压力。
在一种可能的实现方式中,所述检测到有需要传递的指令信息之后,所述方法还包括:
若检测到所述指令信息中包含回调指令信息,且所述指令信息的终点页面是第一页面,则停止传递所述指令信息,并生成反馈信息;
将所述反馈信息发送给将所述指令信息传递过来的页面,以使该页面将所述反馈信息继续传递,直到反馈给生成所述指令信息的页面。
上述方法,提供了一种在非单层嵌套关系中信息回调的方式,在检测到指令信息中包括回调指令信息,且指令信息的终点页面为检测到指令信息的页面,那么停止传递指令信息,并生成反馈信息,按照原来生成指令信息的页面传递到终点页面的传递的相反的顺序,将反馈信息传递给生成指令信息的页面,以便于生成指令信息的页面继续进行其他操作。
第二方面,本发明实施例提供的一种页面间的通信装置,包括:
检测模块,用于检测有需要传递的指令信息,且所述指令信息的终点页面是非第一页面,则根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
传递模块,用于将所述指令信息传递给所述目标第二页面,以使所述目标第二页面继续传递所述指令信息直到传递给所述终点页面。
在一种可能的实现方式中,其中,所述指令信息是与所述第一页面具有单层嵌套关系的第二页面发送的;或
所述指令信息是所述第一页面根据接收到的操作指令生成的。
在一种可能的实现方式中,所述检测模块,具体用于:
从与所述第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在所述第一页面之后,且与所述第一页面相邻的页面作为目标第二页面;其中,所述信息传递顺序是生成所述指令信息的页面和所述终点页面之间的信息传递的顺序;所述信息传递顺序中相邻页面之间具有单层嵌套关系;或
通过查询页面之间的层级嵌套关系,确定所述第一页面和所述终点页面之间的层级嵌套关系,并根据所述第一页面和所述终点页面之间的层级嵌套关系,从所述第二页面中选择目标第二页面。
在一种可能的实现方式中,所述检测模块,具体还用于:
若所述第一页面为根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述根页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述第一页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面,并将嵌入到所述终点页面的页面中包括的所述第一页面的父页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面和嵌入有所述终点页面的页面,并在嵌入到所述终点页面的页面和嵌入有所述终点页面的页面中均未包括所述第一页面所有的子页面和所述第一页面的父页面,则将所述第一页面的父页面作为目标第二页面。
在一种可能的实现方式中,所述传递模块,具体用于:
将所述指令信息置于所述目标第二页面对应的消息队列中,以使所述目标第二页面通过对应的所述消息队列获取所述指令信息。
在一种可能的实现方式中,所述装置还包括:
回调模块,用于若检测到所述指令信息中包含回调指令信息,且所述指令信息的终点页面是第一页面,则停止传递所述指令信息,并生成反馈信息;将所述反馈信息发送给将所述指令信息传递过来的页面,以使该页面将所述反馈信息继续传递,直到反馈给生成所述指令信息的页面。
第三方面,本申请还提供一种存储介质,所述存储介质存储有计算机程序,该程序被处理单元执行时实现第一方面所述页面间的通信方法的步骤。
另外,第二方面至第三方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理,并不构成对本发明的不当限定。
图1是本发明实施例提供的一种移动机器人建立的虚拟地图的示意图;
图2是本发明实施例提供的一种多个页面的树状接收的层级嵌套关系的示意图;
图3是本发明实施例提供的一种页面间的通信方法的流程图;
图4是本发明实施例提供的一种具有嵌套关系的多个页面的示意图;
图5是本发明实施例提供的另一种页面间的通信方法的流程图;
图6是本发明实施例提供的一种页面间的通信装置的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本发明的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“电子设备”指任何能够按照程序运行,自动、高速处理大量数据的智能电子设备,包含手机、移动机器人、计算机、平板、智能终端、多媒体设备、流媒体设备等。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本发明实施例实际上是重新定义一个构造函数,构造函数名称可为:publicPostMessage,结合图1所示,定义该构造函数两个属性:messageData(页面间传递的数据)和callBackData(回调的数据)。在该构造函数上添加listenPostMessage和postMessageByLayer方法(跨层级信息传递)。
messageData包括三个参数,messageSource为页面接收到的数据来源的标识;action为页面接收到的操作的类型;data为页面接收到的需要传递的数据。
callBackData是回调数据,即在向终点页面发送信息后,终点页面在接收到信息后需要反馈给发起信息的页面反馈信息,以使发起信息的页面继续进行其他操作。
其中,listenPostMessage的属性为监听数据,在页面调用该方法时进行数据监听;postMessageByLayer的属性为当前页面的ID和终点页面的ID,在页面调用该方法时,能够根据页面之间的树状结构进行遍历,找到当前页面的节点位置和终点页面的节点位置,进行数据之间的传递。
以下对名词进行解释:
嵌套关系,即页面与页面之间是嵌入的关系,例如,页面1嵌入到页面2中,页面3嵌入到页面1中,那么页面1、页面2、页面3之间的关系均为嵌套关系。
指令信息,为指示终点页面需要完成的动作的信息。例如,跳转动作、通话动作、点击动作等。
层级嵌套关系为根页面以及根页面下的所有嵌套的页面之间的层级关系。例如,结合图2所示,当根页面下包括多个嵌套的页面,例如,页面1、页面2、页面3、页面a、页面b、页面A、页面B、页面C、页面D、页面E、页面F、页面x、页面y、页面z、页面m、页面n。其中,根页面的子页面为页面1、页面2、页面3;页面1的子页面为页面a、页面b,页面a的子页面为页面A、页面B、页面C、页面D;页面b的子页面为页面E、页面F;页面2的子页面为页面x、页面y、页面z;页面3的子页面为页面m、页面n。其中,层级嵌套关系可以以树状结构表示。
单层嵌套关系为只有一层的嵌套关系。单层嵌套关系也可称为父子关系,例如,根页面与根页面的子页面,页面1、页面2、页面3,为单层嵌套关系;页面1与页面a的子页面为单层嵌套关系;页面a与页面A、页面B、页面C、页面D,为单层嵌套关系;页面2页面x、页面y、页面z,为单层嵌套关系;页面3与页面m、页面n,为单层嵌套关系。
第一页面为任意一个嵌入到其他页面或者被其他页面嵌入的页面。例如,页面1、页面2、页面3、页面a、页面A、页面B、页面C、页面D、页面x、页面y、页面z、页面m、页面n、根页面均可以为第一页面。
第二页面为与第一页面具有单层嵌套关系的页面。例如,页面a为第一页面,则页面a的子页面和页面a的父页面为第二页面,即页面A、页面B、页面C、页面D、页面1为第二页面;页面2为第一页面,则页面x、页面y、页面z、根页面为第二页面。
通过以上定义的属性和方法,本发明实施例提供了一种页面间的通信方法,应用于具有嵌套关系的第一页面,其中第一页面为任意一个嵌入到其他页面或者被其他页面嵌入的页面。
结合图3所示,该方法包括:
S300:若检测到有需要传递的指令信息,且指令信息的终点页面是非第一页面,则根据页面之间的层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
S301:将指令信息传递给目标第二页面,以使目标第二页面继续传递指令信息直到传递给终点页面。
上述方法,提出了一种页面层级嵌套比较多时的通信方式,能够通过页面之间的层级嵌套关系,使得指令信息能够在多个具有单层嵌套关系的页面之间传递直到传递给终点页面,提高了信息传递的效率。
在执行上述方法时,需要对多个页面进行初始化,初始化的具体过程为,根据页面之间的嵌套关系,建立树状结构的层级嵌套关系,并存储在设备中,这样可以在页面运行时进行访问。
在图3的方法中,第一页面可以为发起执行信息的页面,那么第一页面检测到的信令信息为第一页面根据接收到的操作指令生成的,也可以是中间传递过程中的页面,即第一页面检测到的信令信息为与第一页面具有单层嵌套关系的第二页面发送的,所以,当第一页面检测到有需要传递的指令信息后,且指令信息的终点页面,即指令信息最终要传递给的页面,不是第一页面时,那么需要根据页面之间层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定目标第二页面。
其中,无论是信令信息为第一页面根据接收到的操作指令生成的,或者与第一页面具有单层嵌套关系的第二页面发送的,与指令信息同时传递的还包括有终点页面的标识,这样可以通过终点页面的标识确定多个页面之间哪个页面为终点页面。其中,标识可以为页面ID。
另外,在页面进行初始化的过程中,会建立页面之间的层级嵌套关系,采用数据树表示,建立数据树时,采用每个嵌套页面的标识,即ID,建立数据树,所以,在根据页面之间的层级嵌套关系,从第二页面中确定目标第二页面时,也是通过ID进行。例如,根据第一页面ID,从页面之间的层级嵌套关系中,确定与第一页面ID具有单层嵌套关系的第二页面ID,从而根据多个第二页面ID和终点页面ID选择一个目标第二页面ID,第一页面将指令信息传递给第二页面。
结合图4所示,以三层嵌套关系为例,父页面、子页面1~3、孙子页面1~3,孙子页面1~3为子页面1的子页面;每个页面均包括自己的ID,例如,父页面的ID为a.com/parent.html,子页面的ID为b.com/child1.html,子页面的ID为b.com/child2.html,子页面的ID为b.com/child3.html,孙子页面的ID为c.com/grandson1.html,孙子页面的ID为c.com/grandson2.html,孙子页面的ID为c.com/grandson3.html。
以上每个页面均有监听功能,监听自身的功能,即监听用户或者其他设备对自己,即第一页面,进行操作的指令,例如,监听点击事件、通话事件、跳转事件。
每个页面还具有监听与第一页面具有单层嵌套关系的第二页面,监听是否具有需要传递的指令信息。父页面监听子页面1、子页面2、子页面3是否有需要传递的指令信息。子页面1监听父页面、孙子页面1、孙子页面2、孙子页面3是否有需要传递的指令信息。子页面2监听父页面是否有需要传递的指令信息。子页面3监听父页面是否有需要传递的指令信息。孙子页面也可以具有监听功能,再此就不一一就行说明了。
除了监听功能,每个页面之间的功能还可以根据需要进行自行添加,对此本发明不作具体限制,例如子页面1中注册有点击事件,子页面2中注册有通话事件,页面3中注册有跳转事件,孙子页面1中注册有点击事件,孙子页面2中注册有点击事件,孙子页面3中注册有点击事件。
对于本发明来说,无论是监听到第一页面的情况还是监听到与第一页面具有单层嵌套关系的第二页面的发送的信息,均具有判断功能,判断操作指令是否仅是对第一页面进行操作的,还是对其他页面进行操作的,如果仅是对自己操作的,那么第一页面直接执行操作指令。
如果是对其他页面进行操作的,则根据操作指令确定对应的指令信息,该指令信息中至少包括终点页面以及控制指令。根据页面之间的层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定一个与第一页面具有单层嵌套关系的第二页面,将指令信息传递给一个与第一页面具有单层嵌套关系的第二页面,然后再由与第一页面具有单层嵌套关系的第二页面继续进行传递直到传递给终点页面。
当然,还可以在确定操作指令时对其他页面进行操作的,可以先根据页面之间的层级嵌套关系,判断是否是对与第一页面具有单层嵌套关系的第二页面操作的,如果是,则直接将其传递给终点页面,如果不是,再根据页面之间的层级嵌套关系,从多个与第一页面具有单层嵌套关系的第二页面中选择一个页面作为传递对象。
对于上述说明,结合图5所示,本发明实施例还提供了一种页面间的通信方法,包括:
S500:对第一页面自身,以及与第一页面具有单层嵌套关系的第二页面进行监听;
S501:若监听到操作指令,则生成操作指令对应的指令信息;
S502:判断指令信息的终点页面是否为与第一页面具有单层嵌套关系的第二页面;若是,则执行S503;否则执行S504;
S503:将指令信息传递给终点页面;
S504:根据页面之间的层级嵌套关系,从第二页面中确定目标第二页面;
S505:将指令信息传递给目标第二页面,以使目标第二页面继续传递指令信息直到传递给终点页面。
S506:若监听到第二页面发送的指令信息,则判断终点页面是否为除去发送指令信息之外的其他第二页面;若是,则执行S503;否则执行S507;
S507:判断终点页面是否为第一页面;若是,则执行S508;否则,执行S504。
S508:停止传递指令信息。
在本发明实施例可以实现:第一页面为页面a,则与第一页面具有单层嵌套关系的第二页面为页面1、页面A、页面B、页面C、页面D;当终点页面为页面m,那么根据图2中的层级嵌套关系,选择页面1作为目标第二页面。
其中具体确定目标第二页面的过程可以有多种方式,以下列举两种实现方式进行说明。
方式1:
从与第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在第一页面之后,且与第一页面相邻的页面作为目标第二页面;其中,信息传递顺序是生成指令信息的页面和终点页面之间的信息传递的顺序;信息传递顺序中相邻页面之间具有单层嵌套关系。
例如,生成指令信息的页面为页面B,终点页面为页面m,那么信息传递顺序为页面B、页面a、页面1、根页面、页面3、页面m,即页面B将生成的信令信息发送给页面a,页面a将信令信息传递给页面1,页面1将信令信息传递给根页面,根页面将信令信息传递给页面3,页面3将信令信息传递给页面m,即可传送完毕。
当第一页面为页面a时,第二页面为页面1、页面A、页面B、页面C、页面D,信息传递顺序为页面B、页面a、页面1、根页面、页面3、页面m,那么在第一页面之后,且与第一页面相邻的页面为页面1,那么目标第二页面为页面1。
在实际应用过程中,信息传递顺序可以由生成指令信息的页面生成的,随着指令信息进行传递,例如,页面B根据接收到的操作指令生成指令信息后,同时根据生成指令信息的页面和终点页面之间的信息传递顺序,页面B将指令信息和信息传递顺序一起发送给页面a,页面a根据信息传递顺序,查出将信令信息传递给页面1,页面1根据信息传递顺序,查出将信令信息传递给根页面,依次类推,直到传递给页面m。
方式2:
通过查询页面之间的嵌套层级关系,确定第一页面和终点页面之间的嵌套层级关系,并根据第一页面和终点页面之间的嵌套层级关系,从第二页面中选择目标第二页面。
其中,根据第一页面和终点页面之间的嵌套层级关系,从第二页面中选择目标第二页面,包括:
若第一页面为根页面,则根据第一页面和终点页面之间的嵌套层级关系,确定嵌入有终点页面的页面,并将嵌入有终点页面的页面中包括的根页面的目标子页面作为目标第二页面。
详细来说,若第一页面为根页面,通过查询页面之间的层级嵌套关系,确定嵌入有终点页面的页面,以及根页面的子页面,从嵌入有终点页面的页面中包括有的根页面的子页面,将查到的子页面作为目标第二页面。
其中,嵌入有终点页面的页面可以为终点页面的父页面,或者终点页面的父页面的父页面,一直向上延伸直到根页面,均为嵌入有终点页面的页面,以图2为例,当终点页面为页面C1时,终点页面嵌入页面C,页面C嵌入页面a,页面C1通过页面C嵌入页面a,页面a嵌入页面1,页面C1通过页面C和页面a嵌入页面1,页面1嵌入根页面,页面C1通过页面C、页面a和页面1嵌入根页面;所以,嵌入有页面C1的页面为页面C、页面a、页面1、根页面。若第一页面为根页面,终点页面为页面C1,那么根页面的子页面为页面1、页面2、页面3,嵌入有页面C1的页面为页面C、页面a、页面1、根页面,所以,页面1为目标第二页面。
若第一页面非根页面,则根据第一页面和终点页面之间的嵌套层级关系,确定嵌入有终点页面的页面,并将嵌入有终点页面的页面中包括的第一页面的目标子页面作为目标第二页面;或
若第一页面非根页面,则根据第一页面和终点页面之间的嵌套层级关系,确定嵌入到终点页面的页面,并将嵌入到终点页面的页面中包括的第一页面的父页面作为目标第二页面;或
若第一页面非根页面,则根据第一页面和终点页面之间的嵌套层级关系,确定嵌入到终点页面的页面和嵌入有终点页面的页面,并在嵌入到终点页面的页面和嵌入有终点页面的页面中均未包括第一页面所有的子页面和第一页面的父页面,则将第一页面的父页面作为目标第二页面。
详细来讲,若第一页面非根页面,根据第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有终点页面的页面、嵌入到终点页面的页面,以及第一页面的子页面,若嵌入有终点页面的页面中有第一页面的目标子页面,则将第一页面的目标子页面作为目标第二页面;若嵌入到终点页面的页面中有第一页面的父页面,则将第一页面的父页面作为目标第二页面;若第一页面的子页面中与嵌入有终点页面的页面或嵌入到所述终点页面的页面中的页面均不相同,且第一页面的父页面与嵌入有终点页面的页面或嵌入到所述终点页面的页面中的页面均不相同,则将第一页面的父页面作为目标第二页面。
需要说明的是,嵌入到终点页面的页面可以为终点页面的子页面,或者终点页面的子页面的子页面,一直向上延伸没有嵌套页面为止,均为嵌入到终点页面的页面,以图2为例,当终点页面为页面1时,页面a、页面b嵌入到页面1,页面A、页面B、页面C、页面D均嵌入到页面a,即页面A、页面B、页面C、页面D通过页面a嵌入到页面1,页面C1、页面C2嵌入到页面C,即页面C1、页面C2通过页面C和页面a嵌入到页面1,页面E、页面F嵌入到页面b,即页面E、页面F通过页面b嵌入到页面1,所以,嵌入到页面1的页面为页面a、页面b、页面A、页面B、页面C、页面D、页面E、页面F、页面C1、页面C2。
以图2中的页面为例,第一页面为页面1,终点页面为页面C1,那么嵌入有页面C1的页面为页面C、页面a,嵌入到C1的页面没有,页面a、页面b为页面1的子页面,将该页面a作为目标第二页面,将指令信息传递给页面a。
又如,第一页面为页面C2,终点页面为页面1,那么嵌入到页面1的页面为:页面a、页面b、页面A、页面B、页面C、页面D、页面E、页面F、页面C1、页面C2,嵌入有页面1的页面为根页面,页面C2的父页面为页面C,则页面C作为目标第二页面。
又如,第一页面为页面C,终点页面为x,那么嵌入有终点页面的页面为页面2和根页面,嵌入到终点页面的没有,页面C的子页面为页面C1和页面C2,页面C的父页面为页面a,页面C1、页面C2和页面a均不为页面2或根页面,所以,第一页面所有的子页面均未嵌入有终点页面和第一页面的父页面未嵌入到终点页面,那么将第一页面,页面C,的父页面,页面a作为目标第二页面。
在实际应用过程中,本发明实施例提供的方法能够执行在设备上,然而在设备中不仅会执行本发明实施例提供的方法,还需要进行其他事件的处理,所以,很可能会给设备带来很大压力,为了降低设备的压力,本发明实施例提供了一种将需要传递的指令信息进行缓存的方式进行传递,从而能够缓解设备压力,具体来说:
将指令信息置于目标第二页面对应的消息队列中,以使目标第二页面通过对应的消息队列获取指令信息。
例如,再结合图1所示,页面与页面之间的信息传递采用publicPostMessage方法,将需要传递的指令信息作为messageData的参数、终点页面ID作为postMessageByLayer的属性;通过listenPostMessage的方式,监听与第一页面具有单层嵌套关系的第二页面,监听到第二页面传递的信息后,通过messageData的参数、postMessageByLayer的属性获知指令信息和终点页面ID,然后,在确定终点页面ID与第一页面ID不同时,根据页面之间的层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定目标第二页面,并通过publicPostMessage方法,将指令信息,即messageData,置于目标第二页面对应的消息队列中,目标第二页面通过对应的消息队列获取messageData,从messageData的参数中获取指令信息。
在引用publicPostMessage时,再结合图1所示,messageData的参数还包括messageSource和action,messageSource是可以确定消息来说,即第一页面可以在接收到第二页面传递过来的信息时,确定是由哪个第二页面传来的,再确定目标第二页面时,可以将传递信息过来的第二页面排除在外,选择其他第二页面确定目标第二页面。
本发明实施例同一规定了messageData的参数,能够避免在传输过程中信息无法顺利获取的问题,同时也有利于后期的维护和扩展,降低了后期维护和扩展的成本。
为了便于对多次页面传递的信息进行统计,或后期进行维护,则还采用action对页面之间传递的信息进行分类,记录每次传递时指令信息的类别,其中类别可以为:dail拨打电话;goto进入新页面;close关闭页面等。
综上所述,在进行指令信息传递时,通过调用publicPostMessage方法,在messageData属性中,添加指令信息即data、action、来源页面ID即messageSource,然后通过postMessageByLayer的方法,向目标第二页面进行传递信息,然后目标第二页面,通过messageData属性的参数获取指令信息、来源页面ID(即第一页面ID)、action、以及终点页面ID,继续向下传递,在传递时目标第二页面执行第一页面的方法,找到自己的目标第二页面继续传递指令信息,直到传递给终点页面。
在本发明实施例中,当确定第一页面为终点页面时,还检测到指令信息中包括回调指令信息,那么说明还包括callBackData这个属性,第一页面在停止传递指令信息的同时,生成反馈信息;将反馈信息发送给将指令信息传递过来的页面,以使该页面将反馈信息继续传递,直到反馈给生成指令信息的页面。即,反馈信息是按照指令信息传递的相反的顺序进行传递的。
具体来说,终点页面在listenPostMessage调用时,监听到指令信息和回调指令信息,然后终点页面再调用postMessageByLayer方法,将反馈信息反馈给生成指令信息的页面,然后使得生成指令信息的页面继续其他的操作。
再结合图2所示,以生成指令信息的页面为页面B、终点页面为页面m为例,当页面B通过页面a、页面1、根页面、页面3将指令信息传递给页面m;页面m生成反馈信息,将反馈信息传递给页面3,页面3将反馈信息传递给根页面,根页面将反馈信息传递给页面1,页面1将反馈信息传递给页面a,页面a将反馈信息传递给页面B。
本发明实施例提供了一种页面间的通信装置,结合图6所示,包括:
检测模块600,用于检测到有需要传递的指令信息,且指令信息的终点页面是非第一页面,则根据页面之间的层级嵌套关系,从与第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
传递模块601,用于将指令信息传递给目标第二页面,以使目标第二页面继续传递指令信息直到传递给终点页面。
可选的,其中,所述指令信息是与所述第一页面具有单层嵌套关系的第二页面发送的;或
所述指令信息是所述第一页面根据接收到的操作指令生成的。
可选的,所述检测模块600,具体用于:
从与所述第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在所述第一页面之后,且与所述第一页面相邻的页面作为目标第二页面;其中,所述信息传递顺序是生成所述指令信息的页面和所述终点页面之间的信息传递的顺序;所述信息传递顺序中相邻页面之间具有单层嵌套关系;或
通过查询页面之间的层级嵌套关系,确定所述第一页面和所述终点页面之间的层级嵌套关系,并根据所述第一页面和所述终点页面之间的层级嵌套关系,从所述第二页面中选择目标第二页面。
可选的,所述检测模块600,具体还用于:
若所述第一页面为根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述根页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述第一页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面,并将嵌入到所述终点页面的页面中包括的所述第一页面的父页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面和嵌入有所述终点页面的页面,并在嵌入到所述终点页面的页面和嵌入有所述终点页面的页面中均未包括所述第一页面所有的子页面和所述第一页面的父页面,则将所述第一页面的父页面作为目标第二页面。
可选的,所述传递模块601,具体用于:
将所述指令信息置于所述目标第二页面对应的消息队列中,以使所述目标第二页面通过对应的所述消息队列获取所述指令信息。
可选的,所述装置还包括:
回调模块,用于若检测到所述指令信息中包含回调指令信息,且所述指令信息的终点页面是第一页面,则停止传递所述指令信息,并生成反馈信息;将所述反馈信息发送给将所述指令信息传递过来的页面,以使该页面将所述反馈信息继续传递,直到反馈给生成所述指令信息的页面。
本发明实施例提供了一种电子设备,包括:处理器和存储器;
所述存储器用于存储电子设备运行时所使用的程序代码;
所述处理器用于执行所述程序代码,以实现如下上述任一项所述的页面间的通信方法。
本发明实施例还提供一种存储介质,存储介质存储有计算机程序,该程序被处理单元执行时实现如上述任一项所述的页面间的通信方法。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (9)
1.一种页面间的通信方法,其特征在于,包括:
具有嵌套关系的第一页面检测到有需要传递的指令信息,且所述指令信息的终点页面是非所述第一页面,则根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
将所述指令信息传递给所述目标第二页面,以使所述目标第二页面继续传递所述指令信息直到传递给所述终点页面;
根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面,包括:
从与所述第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在所述第一页面之后,且与所述第一页面相邻的页面作为目标第二页面;其中,所述信息传递顺序是生成所述指令信息的页面和所述终点页面之间的信息传递的顺序;所述信息传递顺序中相邻页面之间具有单层嵌套关系;或
通过查询页面之间的嵌套层级关系,确定所述第一页面和所述终点页面之间的嵌套层级关系,并根据所述第一页面和所述终点页面之间的嵌套层级关系,从所述第二页面中选择目标第二页面;
根据所述第一页面和所述终点页面之间的嵌套层级关系,从所述第二页面中选择目标第二页面,包括:
若所述第一页面为根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述根页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述第一页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面,并将嵌入到所述终点页面的页面中包括的所述第一页面的父页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面和嵌入有所述终点页面的页面,并在嵌入到所述终点页面的页面和嵌入有所述终点页面的页面中均未包括所述第一页面所有的子页面和所述第一页面的父页面,则将所述第一页面的父页面作为目标第二页面。
2.根据权利要求1所述的页面间的通信方法,其特征在于,其中,所述指令信息是与所述第一页面具有单层嵌套关系的第二页面发送的;或
所述指令信息是所述第一页面根据接收到的操作指令生成的。
3.根据权利要求1所述的页面间的通信方法,其特征在于,所述将所述指令信息传递给所述目标第二页面,包括:
将所述指令信息置于所述目标第二页面对应的消息队列中,以使所述目标第二页面通过对应的所述消息队列获取所述指令信息。
4.根据权利要求1~3任一项所述的页面间的通信方法,其特征在于,所述检测到有需要传递的指令信息之后,所述方法还包括:
若检测到所述指令信息中包含回调指令信息,且所述指令信息的终点页面是第一页面,则停止传递所述指令信息,并生成反馈信息;
将所述反馈信息发送给将所述指令信息传递过来的页面,以使该页面将所述反馈信息继续传递,直到反馈给生成所述指令信息的页面。
5.一种页面间的通信装置,其特征在于,包括:
检测模块,用于检测到有需要传递的指令信息,且所述指令信息的终点页面是非第一页面,则根据页面之间的层级嵌套关系,从与所述第一页面具有单层嵌套关系的第二页面中确定目标第二页面;
传递模块,用于将所述指令信息传递给所述目标第二页面,以使所述目标第二页面继续传递所述指令信息直到传递给所述终点页面;
所述检测模块,具体用于:
从与所述第一页面具有单层嵌套关系的第二页面中,选择信息传递顺序中在所述第一页面之后,且与所述第一页面相邻的页面作为目标第二页面;其中,所述信息传递顺序是生成所述指令信息的页面和所述终点页面之间的信息传递的顺序;所述信息传递顺序中相邻页面之间具有单层嵌套关系;或
通过查询页面之间的层级嵌套关系,确定所述第一页面和所述终点页面之间的层级嵌套关系,并根据所述第一页面和所述终点页面之间的层级嵌套关系,从所述第二页面中选择目标第二页面;
所述检测模块,具体还用于:
若所述第一页面为根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述根页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入有所述终点页面的页面,并将嵌入有所述终点页面的页面中包括的所述第一页面的目标子页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面,并将嵌入到所述终点页面的页面中包括的所述第一页面的父页面作为目标第二页面;或
若所述第一页面非根页面,则根据所述第一页面和所述终点页面之间的嵌套层级关系,确定嵌入到所述终点页面的页面和嵌入有所述终点页面的页面,并在嵌入到所述终点页面的页面和嵌入有所述终点页面的页面中均未包括所述第一页面所有的子页面和所述第一页面的父页面,则将所述第一页面的父页面作为目标第二页面。
6.根据权利要求5所述的页面间的通信装置,其特征在于,其中,所述指令信息是与所述第一页面具有单层嵌套关系的第二页面发送的;或
所述指令信息是所述第一页面根据接收到的操作指令生成的。
7.根据权利要求6所述的页面间的通信装置,其特征在于,所述传递模块,具体用于:
将所述指令信息置于所述目标第二页面对应的消息队列中,以使所述目标第二页面通过对应的所述消息队列获取所述指令信息。
8.根据权利要求5~7任一项所述的页面间的通信装置,其特征在于,所述装置还包括:
回调模块,用于若检测到所述指令信息中包含回调指令信息,且所述指令信息的终点页面是第一页面,则停止传递所述指令信息,并生成反馈信息;将所述反馈信息发送给将所述指令信息传递过来的页面,以使该页面将所述反馈信息继续传递,直到反馈给生成所述指令信息的页面。
9.一种存储介质,其特征在于,所述存储介质存储有计算机程序,该程序被处理单元执行时实现如权利要求1~权利要求4任一项所述页面间的通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011331038.9A CN112380037B (zh) | 2020-11-24 | 2020-11-24 | 页面间的通信方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011331038.9A CN112380037B (zh) | 2020-11-24 | 2020-11-24 | 页面间的通信方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380037A CN112380037A (zh) | 2021-02-19 |
CN112380037B true CN112380037B (zh) | 2022-06-21 |
Family
ID=74588325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011331038.9A Active CN112380037B (zh) | 2020-11-24 | 2020-11-24 | 页面间的通信方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380037B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714980B (zh) * | 2013-12-17 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 页面嵌套路径确定方法及装置 |
CN110442826B (zh) * | 2019-08-13 | 2020-11-24 | 珠海格力电器股份有限公司 | 基于页面标识的跨层级页面跳转方法、装置和系统 |
-
2020
- 2020-11-24 CN CN202011331038.9A patent/CN112380037B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112380037A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117361B (zh) | 一种小程序的远程调试方法、相关设备及系统 | |
KR101986481B1 (ko) | 엔드-투-엔드 엔드 유저 성능 자동 모니터링 방법 및 이러한 방법을 수행하는 장치 | |
CN102263830B (zh) | 便于推送内容的后台处理的装置和相关方法 | |
CN102609267B (zh) | 基于安卓浏览器的插件管理方法及系统 | |
CN104468363A (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
CN111967236B (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
CN110324405B (zh) | 消息发送方法、装置、系统及计算机可读存储介质 | |
CN103534988A (zh) | 消息发布与订阅的方法及装置 | |
CN108882053B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN110933170A (zh) | 一种ZigBee网关的多设备联动控制方法、设备及存储介质 | |
CN108933947B (zh) | 弹幕显示方法及装置 | |
CN111008254A (zh) | 一种对象创建方法、装置、计算机设备和存储介质 | |
CN112380037B (zh) | 页面间的通信方法、装置及存储介质 | |
CN111552606B (zh) | 数据处理方法、装置及电子设备 | |
CN111756844A (zh) | 一种多语言消息代理方法及装置 | |
CN114500510B (zh) | 请求信息响应方法、装置、通信设备及存储介质 | |
CN108989244A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN111708519B (zh) | 一种业务组件的处理方法、装置、设备和存储介质 | |
CN101711479B (zh) | 用于创建内容的方法,用于跟踪内容使用行动的方法、和相应的终端和信号 | |
CN104516883A (zh) | 一种网页共享方法、装置及系统 | |
CN112416698B (zh) | 监控系统的扩展方法及装置、存储介质及电子设备 | |
CN111400060A (zh) | 设备联动方法、装置、服务器和介质 | |
CN110764970B (zh) | 事件监听信息处理方法、系统及计算机可读存储介质 | |
CN110324426A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |