CN103546513A - 一种客户端页面间通信的方法及装置 - Google Patents

一种客户端页面间通信的方法及装置 Download PDF

Info

Publication number
CN103546513A
CN103546513A CN201210244355.6A CN201210244355A CN103546513A CN 103546513 A CN103546513 A CN 103546513A CN 201210244355 A CN201210244355 A CN 201210244355A CN 103546513 A CN103546513 A CN 103546513A
Authority
CN
China
Prior art keywords
flash
page
main connection
group
data
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.)
Granted
Application number
CN201210244355.6A
Other languages
English (en)
Other versions
CN103546513B (zh
Inventor
沈剑平
邱华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210244355.6A priority Critical patent/CN103546513B/zh
Priority to TW101142226A priority patent/TW201403335A/zh
Priority to US13/939,870 priority patent/US9323727B2/en
Priority to PCT/US2013/050212 priority patent/WO2014011962A1/en
Priority to KR1020157000089A priority patent/KR101670699B1/ko
Priority to JP2015521831A priority patent/JP5945367B2/ja
Publication of CN103546513A publication Critical patent/CN103546513A/zh
Priority to US15/073,209 priority patent/US10108588B2/en
Application granted granted Critical
Publication of CN103546513B publication Critical patent/CN103546513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种客户端页面间通信的方法及装置。其中所述方法包括:检测页面是否有与其它页面进行数据传输的需求;如果有,则获取所述数据;调取所述页面所保存的当前页面组中其它页面的通信标识;其中所述页面组是预先建立的至少两个页面的组合;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识;依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。通过上述方式,实现了客户端页面间的直接通信,从而实现了页面间数据的直接传输。

Description

一种客户端页面间通信的方法及装置
技术领域
本申请涉及通信领域,尤其是涉及一种客户端页面间通信的方法及装置。
背景技术
现有技术中,客户端的多个页面之间不能直接进行通信。由于不能直接进行通信,导致了多个页面间的数据无法在页面间直接传输。
比如在进行数据更新时,只能通过以下三种方式进行:
第一种是利用HTML5的localstorage即浏览器从服务器端获取更新数据,然后浏览器将获取的更新数据传送至自身的各页面进行更新。目前很多浏览器并不支持localstorage,而且不同的浏览器不能进行通信。基于不同浏览器获取更新数据的周期不同,导致各浏览器间的页面更新不同步。
第二种方式是JS轮询的方式。在这一方式中,客户端从服务器获取更新数据,各页面通过依次询问客户端的方式获取更新页面。在保证即时性即保证页面更新速度的情况下,如果页面数量比较多,轮询的时间就必须短。这样一个页面在轮询过程中从客户端下载更新数据的时间也就相应减少了,会造成在此时间内,无法将更新数据完整下载下来,影响显示效果。
第三种方式是每个页面同服务器建立长链接的方式。此种方式虽然能够保证实时性,但是,由于页面数量众多,因此,会造成耗费过多的带宽资源。
可见,目前需要一种客户端页面间直接通信的方法。
发明内容
本申请的目的是提供一种客户端页面间直接通信的方法。
基于此,本申请提供的技术方案如下:
本申请提供了一种客户端页面间通信的方法,所述方法包括:
检测页面是否有与其它页面进行数据传输的需求;
如果有,则获取所述数据;
调取所述页面所保存的当前页面组中其它页面的通信标识;其中所述页面组是预先建立的至少两个页面的组合;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识;
依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
优选的,当所述页面属于多个页面组时;所述方法还包括:
根据所述数据的属性信息,确定所述页面的当前页面组。
优选的,所述调取所述页面所保存的所述当前页面组中其它页面的通信标识包括:
调取所述页面的FLASH处保存的FLASH组中其它FLASH的标识;所述FLASH组由所述当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识;
所述依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面包括:
调用所述页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH;
调用所述其它FLASH接收所述信息接收请求并获取所述数据。
优选的,所述页面组通过如下步骤创建:
获取当前页面的属性信息;
根据所述属性信息判断所述当前页面是否需要加入页面组;
若需要,则调用所述当前页面的FLASH发起建立主连接FLASH的操作;
若FLASH组中已存在所述主连接FLASH,则调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识;
调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH;
调用所述主连接FLASH保存并发送FLASH组标识至所述FLASH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识;
调用所述每一非主连接FLASH保存所述FLASH组标识。
优选的,若FLASH组中不存在主连接FLASH,则所述方法还包括:
确定所述当前页面的FLASH为主连接FLASH,同时生成并记录主连接标识;
当所述FLASH组中存在至少一个非主连接FLASH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH;
调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;所述FLASH组标识包括所述主连接标识和每一非主连接标识;
调用所述每一非主连接FLASH保存所述FLASH组标识。
优选的,所述生成当前非主连接标识包括:
随机或按照一定的次序生成所述当前非主连接标识。
优选的,所述方法还包括:
调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作,若所述主连接FLASH失效,则确定重新发起建立主连接FLASH操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识;
调用所述新的主连接FLASH根据所述新主连接标识更新所述自身保存的FLASH组标识并发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH;
调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
优选的,所述数据为用以指示对页面执行操作的操作数据,所述方法还包括:
根据所述操作数据在所述其它页面执行所述操作。
优选的,所述数据为更新数据;所述方法还包括:
根据所述更新数据更新所述其它页面。
优选的,所述需要传输数据的页面中的FLASH利用sendmessage函数发送携带所述数据的信息接收请求至所述其它FLASH;
所述其它FLASH利用接收recivemessage函数接受所述信息接收请求并获取所述数据。
优选的,所述页面组中的页面为同源页面。
本申请还提供了一种用于实现客户端页面间通信的装置,所述装置包括:
检测单元,用于检测页面是否有与其它页面进行数据传输的需求;
获取单元,用于在页面有与其它页面进行数据传输的需求时,获取所述数据;
标识调用单元,用于调取所述页面所保存的当前页面组中其它页面的通信标识;其中所述页面组是预先建立的至少两个页面的组合;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识;
通信单元,用于依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
优选的,所述装置还包括:
页面组确定单元,用于当所述页面属于多个页面组时,根据所述数据的属性信息,确定所述页面的当前页面组。
优选的,所述标识调用单元,具体用于调取所述页面的FLASH处保存的FLASH组中其它FLASH的标识;所述FLASH组由所述当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识;
所述通信单元包括数据发送单元和数据接收单元;
所述数据发送单元,用于调用所述页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH;
所述数据接收单元,用于调用所述其它FLASH接收所述信息接收请求并获取所述数据。
优选的,所述装置还包括创建单元,用于创建所述页面组;所述创建单元包括:
属性信息获取单元,用于获取当前页面的属性信息;
判断单元,用于根据所述属性信息判断所述当前页面是否需要加入页面组;
第一主连接发起单元,用于在当前页面需要加入所述页面组时,调用所述当前页面的FLASH发起建立主连接FLASH的操作;
非主连接单元,用于在所述主连接FLASH已存在时,调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识;
第一标识发送单元,用于调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH;
第二标识发送单元,用于调用所述主连接FLASH保存并发送FLASH组标识至所述FLASH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识;
第一保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
优选的,所述创建单元还包括:
第一确定单元,用于在FLASH组中不存在主连接FLASH时,确定所述当前页面的FLASH为主连接FLASH,同时生成并记录主连接标识;
第三标识发送单元,用于当所述FLASH组存在至少一个非主连接FLASH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH;
第四标识发送单元,用于调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和所述每一非主连接FLASH的非主连接标识;
第二保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
优选的,所述非主连接单元,具体用于随机或按照一定的次序生成所述非主连接标识。
优选的,所述装置还包括:
第二主连接发起单元,用于调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作;
第二确定单元,用于在所述主连接FLASH失效时,确定所述发起重新建立主连接操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识;
第一标识更新单元,用于调用所述新的主连接FLASH根据所述新主连接标识更新自身保存的所述FLASH组标识;
第五标识发送单元,用于调用所述新的主连接FLASH发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH;
第二标识更新单元,用于调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
优选的,所述数据为用以指示对页面执行操作的操作数据,所述装置还包括:
操作单元,用于根据所述操作数据在所述其它页面执行所述操作。
优选的,所述数据为更新数据;所述装置还包括:
页面更新单元,用于根据所述更新数据更新所述其它页面。
优选的,所述数据发送单元,还用于调用需要传输数据的页面中的FLASH利用sendmessage函数根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的recivemessage请求至所述其它FLASH;
所述接收单元,还用于调用所述其它FLASH利用recivemessage函数接收所述recivemessage请求并获取所述数据。
优选的,所述页面组中的页面为同源页面。
与现有技术相比,本申请具有如下有益效果:
本申请通过预先创建页面组,为每一页面分配通信标识,并在每一页面中保存页面组中其它页面的通信标识,使得客户端在检测到有页面需要传输数据时,能够利用该页面保存的其它页面的通信标识建立该页面与其它页面间的通信连接,并利用该连接将数据传输至其它页面,从而实现了页面间数据的直接传输。
进一步的,当基于页面间的通信进行页面间的同步更新时,由于页面间可以直接传输数据进行同步更新,相比页面全部基于浏览器localstorage进行更新的方式,避免了页面间更新需要跨浏览器的问题;相比页面轮询的方式,,无需全部页面进行轮询,因此可设置较长的轮询间隔,所以在保证即时性的前提下,同时保证了页面的整体性能;相比页面与服务器长链接的方式,因为无需全部页面与服务器长链接,所以节省了服务器的资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例1的方法流程图;
图2为本申请实施例2的方法流程图;
图3-图6为本申请实施例5建立主连接FLASH和非主连接FLASH示意图;
图7为本申请方法实施例6流程图;
图8为本申请方法实施例7流程图;
图9为本申请方法实施例9结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请中方法的执行主体可以是客户端。
本申请实施例1提供了一种客户端页面间通信的方法,参见图1,所述方法具体包括如下步骤:
S11、检测页面是否有与其它页面进行数据传输的需求。
基于页面间通信的具体应用不同,页面间需要传输的数据有所不同。比如要进行页面更新时,要传输的是更新页面上的更新数据;要进行页面同步操作时,要传输的是用以指示新操作的操作数据。下文将根据具体的应用对此做详细描述。
S12、检测页面是否有与其它页面进行数据传输的需求。
S13、调取所述页面所保存的当前页面组中其它页面的通信标识。
本申请中的页面组是预先建立的至少两个页面的组合;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识。该通信标识指用以唯一确定每一页面的标识,基于该标识,可以建立页面间的通信连接。
在本申请中,页面组可以根据需要进行创建。比如可设置基于同一网址打开的多个页面为一页面组,以进行页面的同步更新。也可以设置对应同一用户页面如用户的QQ空间页面和该用户的微博页面为同一页面组,以将QQ空间页面的签名等信息同步到微博页面。在本申请中不对页面组的具体设置做限制。
因为页面组可以基于不同的需要建立,因此同一页面可能属于多个页面组,为此,在检测到有数据传输时,还需要根据该数据的属性信息确定页面的当前页面组。检测到的数据就在当前页面组的页面间进行传输。
本申请中数据的属性信息主要是该数据的传输属性信息,比如当该数据是用以在QQ空间和微博中展示的签名信息时,当前页面组即为QQ空间和微博页面组成的页面组。当该数据需要在同源页面间传输时,当前页面组即为同源页面组成的页面组。
S14、依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
本申请中,客户端利用页面的通信标识建立通信连接的方式有多种。在本申请具体实施例中,页面利用页面间的FLASH建立页面间的通信连接,具体为:
调取需要传输数据的页面的FLASH处保存的FLASH组中其它FLASH的标识。其中,FLASH组由当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识。
调用所述页面中的FLASH,根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH。
调用所述其它FLASH接收所述信息接收请求并获取所述数据。
当然,本申请中,客户端也可利用页面中的其它具有数据传输功能的单元利用通信标识在页面间传输数据,本申请不对此做具体限制。
本申请中,页面组的创建有多种方法,本申请实施例2即为其中一种,参见图2,该方法包括:
S21、获取当前页面的属性信息。
在本申请中,当前页面可以指客户端检测到的每一正在打开的页面。当有页面被打开时,获取该页面的属性信息,该属性信息是指用以表征该页面是否有与其它页面进行通信的需求,以及与哪些页面进行和何种通信需求的信息。比如页面是否设置了与其它页面进行同步更新,是否设置了与其它页面进行同步操作,同步更新的数据类型、同步操作的操作类型等信息。可以理解的,基于同一页面的不同属性,同一页面有可能被加入到多个页面组中。
S22、根据所述属性信息判断当前页面是否需要加入页面组。
比如当属性信息表示当前页面A需要与另一页面B进行签名信息的同步更新时,则判断将当前页面A加入对应页面组。
需要说明的是,同源页面间的同步更新是当前网络的默认需求,即对每一页面来讲都有与同源页面同步更新的需求,因此,每一页面实际上都需要加入与同源页面同步更新的页面组。
S23、调用当前页面的FLASH发起建立主连接FLASH的操作。
同一客户端可能会设置多个页面组,本申请中,可对页面组对应的FLASH组设置名称以进行区分。其具体名称可以任意设置。比如设置为“cloud”、“rain”等。同一页面可能会加入不同页面组,因此,同一页面可能会有不同的FLASH被调用,为进行区分,可以对同一页面的各FLASH按照FLASH组名称进行设置。比如,主连接FLASH的名称可设置为“FLASH组名称HOST”。这样通过名称就可以知道该主连接FLASH所在的FLASH群组。
具体的,当有页面启动时,客户端调用create接口发起试图创建主连接FLASH的操作。当FLASH组名称为“cloud”时,主连接名称为“cloud_HOST”
S24、若FLASH组中已存在所述主连接FLASH,则调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识。
在本申请中,主连接FLASH只有一个,但非主连接FLASH可以有多个,为对非主连接FLASH进行区分,生成的非主连接标识必须是唯一的。
为确保唯一性,创建非主连接FLASH时,可以按照如下过程进行:
调用join接口,创建名为“FLASH组名称_非主连接标识A”的非主连接FLASH。若A已经存在,则试图创建“FLASH组名称_非主连接标识B”的非主连接FLASH,直到创建的标识在FLASH组中不存在为止。
具体的,可以随机生成非主连接标识,也可以按照次序生成非主连接标识。
S25、调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH。
S26、调用所述主连接FLASH保存并发送FLASH组标识至所述FLASH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识。
S27、调用所述每一非主连接FLASH保存所述FLASH组标识。
具体的,当FLASH组中只包括主连接FLASH和当前非主连接FLASH时,所述的FLASH组标识包括主连接标识和当前非主连接标识,每一非主连接指当前非主连接FLASH。
当FLASH组中包括主连接FLASH、当前非主连接FLASH和其它非主连接FLASH时,FLASH组标识包括主连接标识、当前非主连接标识和其它非主连接FLASH的非主连接标识,每一非主连接指当前非主连接FLASH和其它非主连接FLASH。
在本申请实施例3中,当FLASH组中尚不存在主连接FLASH时,则确定调用的该FLASH为主连接FLASH,同时生成并记录主连接标识。
当所述FLASH组中存在至少一个非主连接FLASH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH。
调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;所述FLASH组标识包括所述主连接标识和每一非主连接标识。
调用所述每一非主连接FLASH保存所述FLASH组标识。
通过上述实施例2或实施例3所述的过程建立了FLASH通信的机制,在每一FLASH处保存了FLASH组中任一FLASH的标识,为后续通信提供了条件。其中在上述过程中,主连接FLASH充当了服务器的角色,用于建立各非主连接FLASH间的通信。
主连接FLASH有时会失效,比如当主连接FLASH对应的页面被关闭时,主连接FLASH同时消失。当后续有新的非主连接FLASH建立时,会出现无法加入FLASH组的情况。为此,在本申请的实施例4中,所述方法还包括:
调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作,若所述主连接FLASH失效,则确定重新发起建立主连接FLASH操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识。这一操作可以是实时的,也可以是周期性进行的。生成的新主连接标识可以与原主连接标识相同。
调用所述新的主连接FLASH根据所述新主连接标识更新所述自身保存的FLASH组标识并发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH。
新的主连接FLASH生成后,客户端会调用新的主连接FLASH重新计算群组成员,删除自身为非主连接FLASH时的标识并根据生成的新主连接标识更新自身保存的FLASH组标识,然后发送更新后的FLASH组标识至当前FLASH群组的所有非主连接FLASH。
调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
本申请实施例5提供了上述方法的一种具体应用场景:
有A,B,C,D,4个页面,需要进行同步更新,因此,可基于A,B,C,D,4个页面建立页面组,此处可设置该页面组对应的FLASH组的名称为”cloud”。其中各FLASH的文件内容相同。
首先打开页面A,调用对应的FLASH,该FLASH首先会试图调用create接口建立名为”cloud_HOST”的本地连接。因为FLASH组还没有主连接,因此建立成功并记录主连接标识为HOST,该FLASH为主连接FLASH,充当服务器的作用。
接着打开页面B,调用对应的FLASH,该FLASH首先会试图调用create接口建立名为”cloud_HOST”的本地连接。因为FLASH组已有主连接,因此建立失败。此时调用join接口,建立非主连接FLASH,加入该群组。调用join接口,FLASH会试图去创建名为”cloud_1”的本地连接。因为FLASH组中没有此名称,因此建立成功,并记录下成功的id为1。参见图3,接着客户端调用该非主连接FLASH,携带自身id即1向主连接FLASH发送加入群组请求,主FLASH收到该请求,保存其携带的id即1,并生成FLASH组标识(HOST,1)。然后主FLASH发送携带FLASH组标识(HOST,1)的更新请求给页面B对应的非主连接FLASH,收到主FLASH的更新请求,该非主连接FLASH记录下FLASH组标识(HOST,1)。
接着打开页面C,调用对应的FLASH,该FLASH首先会试图调用create接口建立名为”cloud_HOST”的本地连接。因为FLASH组已有主连接,因此建立失败。此时调用join接口,建立非主连接FLASH,加入该群组。此时该FLASH会试图去创建名为”cloud_1”的本地连接。FLASH组中已有此名称,因此建立失败。此时继续试图去建立名为“cloud_2”的本地连接并记录下成功的id为2。参见图4,接着客户端调用该非主连接FLASH携带自身id即2向主连接FLASH发送加入群组请求,主FLASH收到该请求,保存其携带的id即2,并生成FLASH组标识(HOST,1,2)。然后主FLASH发送携带FLASH组标识(HOST,1,2)的更新请求给页面B、页面C对应的非主连接FLASH。收到主FLA SH的更新请求,页面B对应的非主连接FLASH更新自身保存的FLASH组标识为(HOST,1,2),页面C对应的非主连接FLASH保存该FLASH组标识(HOST,1,2)。
接着打开页面D,调用对应的FLASH,该FLASH首先会试图调用create接口建立名为”cloud_HOST”的本地连接。因为FLASH组已有主连接,因此建立失败。此时调用join接口,建立非主连接FLASH,加入该群组。此时FLASH会试图去创建名为”cloud_1”的本地连接。FLASH组中已有此名称,因此建立失败。此时继续试图去建立名为“cloud_2”的本地连接并记录下成功的id为2。FLASH组中已有此名称,因此建立失败。此时继续试图去建立名为“cloud_3”的本地连接,创建成功并记录下成功的id为3。参见图5,接着客户端调用该非主连接FLASH携带自身id即3向主连接FLASH发送加入群组请求,主FLASH收到该请求,保存其携带的id即3,并生成FLASH组标识(HOST,1,2,3)。然后主FLASH发送携带FLASH组标识(HOST,1,2,3)的更新请求给页面B、C、D对应的非主连接FLASH,收到主FLASH的更新请求,页面B、C对应的非主连接FLASH更新自身保存的FLASH组标识为(HOST,1,2,3),页面D对应的非主连接FLASH保存该FLASH组标识(HOST,1,2,3)。
可以理解的,当有新的页面被打开时,客户端会调用其对应的FLASH依次执行建立主连接FLASH、非主连接FLASH,发送自身标识至主连接FLASH,并接收FLASH组标识的操作。
另外,页面B、C、D对应的FLASH成功建立非主连接FLASH后,利用主连接唯一的特性,每隔一个时间段便会执行成为主连接FLASH的操作。当页面A未关闭时,主连接FLASH仍有效,因此操作会失败。
参见图6,某一时刻,关闭页面A,主连接FLASH消失,此时,正好页面B的FLASH执行了发起建立主连接FLASH的操作,因此该操作成功,页面B对应的非主连接FLASH会成为新的主连接,同时生成新的主连接标识,此处可以同源主连接标识相同为HOST。然后调用新的主连接FLASH重新计算群组成员,将原主连接标识从FLASH组标识中删除,并将自身标识1更改为原主连接标识HOST以更新自身保存的FLASH组标识为(HOST,2,3),然后发送携带该更新后的FLASH组标识的更新请求至页面C、D对应的非主连接FLASH。页面C、D对应的非主连接FLASH收到请求后将自身保存的FLASH组标识更新为(HOST,2,3)。
通过上述过程,FLASH组内的每个FLASH都保存了FLASH组内所有FLASH的标识,基于各自保存的标识,各FLASH之间能够建立通信。
上述客户端页面间直接通信的方法具有多种应用,以下以该方法应用在页面间的同步更新和页面间的同步操作为例进行描述。
本申请实施例6为基于页面间直接通信实现页面间同步操作的过程。参见图7,该过程具体包括:
S31、检测页面组中是否有页面执行了新的操作。
在本申请中,该新的操作是指对页面进行内容更新外的所有操作,比如页面切换操作。
S32、若有,获取用以指示对页面执行新操作的操作数据。
S33、调用该执行了新操作的页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述操作数据的信息接收请求至所述其它FLASH。
S34、调用所述其它FLASH根据所述信息接收请求接收所述操作数据。
步骤S33和步骤S34中,可以通过页面的JS对FLASH进行调用。
S35、根据所述操作数据在其它FLASH对应的页面执行所述操作。
在该应用中,FLASH发送信息接收请求至其它FLASH和其它FLASH根据信息接收请求接收操作数据具有多种方式。在具体实施例中,可利用FLASH中的sendmessage发送信息函数和recivemessage接收信息函数进行信息的发送和接收。
接下来以页面切换操作为例,对上述方式进行介绍。
客户端建立包含页面A、B、C的页面组。某一时刻页面组中的页面A从第一页切换到第二页。客户端检测到这一新的操作后获取用以指示对页面执行从第一页切换到第二页的操作数据比如“1,2”。然后客户端调用A页面中的FLASH根据保存的页面B、C对应的FLA SH的标识建立至页面B、C的通信过程,利用sendmessage函数发送携带所述操作数据的recivemessage请求至页面B、C的FLASH。客户端调用页面B、C的FLASH利用recivemessage函数接收所述recivemessage请求,并获取其携带的操作数据“1,2”。客户端利用所述操作数据对页面B、C执行由第一页切换到第二页的操作。
本申请实施例7为基于页面间直接通信实现页面间同步更新的过程。参见图8,该过程具体包括:
S41、检测页面组中是否有页面进行了更新。
S42、若有,获取更新页面中的更新数据。
S43、调用更新页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述更新数据的信息接收请求至所述其它FLASH。
S 44、调用所述其它FLASH根据所述信息接收请求接收所述更新数据。
S45、根据所述更新数据更新所述其它FLASH对应的页面。
从上述实施例可以看出,页面组中需要有页面先进行更新才能通过该更新页面将更新数据传输给其它页面。在本申请中,该先进行更新的页面可以通过如下方式获取更新数据:
第一种是基于浏览器的localstorage方案。设置一个浏览器从服务器获取更新数据,然后将该更新数据发送至该浏览器内的至少一个页面,使该至少一个页面进行更新。在该方式中,因为只涉及到一个浏览器,其它浏览器内的页面可以基于上述页面间的直接通信进行更新,因此,该方法解决了现有技术中基于浏览器的localstorage方案进行页面更新不能跨浏览器的问题。
第二种是基于页面轮询的方式。在该方式中客户端从服务器获取更新数据,设置一个页面周期性的询问客户端,从客户端获取该更新数据进行更新。在该方式中,因为只涉及一个页面,所以在保证即时性的同时,保证了页面的性能。当然在该方式中,也可以设置适量页面轮询客户端,只要设置的页面数量能够保证页面性能即可。
第三种是基于服务器长链接的方式。设置一个页面与服务器长链接,从服务器获取更新数据进行更新。在该方式中,因为只有一个页面与服务器长链接,因此降低了对服务器带宽的需求,即降低了服务器成本。当然,在该方式中,也可以在服务器带宽范围内设置适量页面与服务器长链接。
需要说明的是,在该实施例中,FLASH组中的FLASH可以具有相同的文件内容,如基于同一网址打开的多个同源页面的FLASH。当然,各FLASH也可以具有不同的内容,如对应同一用户的QQ空间页面和微博页面的FLASH。
在本申请中基于不同的更新需求,需要传输的更新数据类型也不同。比如,当同源页面间进行同步更新时,因为需要对每一更新进行同步,因此,更新数据是指页面中的任何更新数据。而当仅需要对特定的更新进行同步时,更新数据有可能是特定的某一类型数据,比如之前提到的对应同一用户的QQ空间页面和微博页面,其检测的就是页面中的签名数据,而非所有数据。在本申请中。为满足不同的更新需要,可以对更新数据的具体类型进行设置。
实施例8提供了一种在同源页面间通信以进行同步更新的具体应用场景:
基于用户对同一论坛网址的三次点击,打开了三个相同页面A、B、C。这三个页面加入到同一页面组中。三个页面对应的FLASH构成FLASH组,每个FLASH具有相同的文件内容,而且FLASH中都存储有FLASH组中其它FLASH的标识。
有其它用户在该论坛上发表了“今天要下雨”的信息。
服务器获取到该信息,A页面通过一定的方式,如之前提到的三种方式获取到该信息后在自身页面进行了更新。此时A页面上显示有“今天要下雨”的信息。
客户端检测到A页面进行了更新,于是从A页面上获取“今天要下雨”的更新信息。
客户端调用A页面的FLASH,根据自身保存的B页面FLASH的标识发送携带“今天要下雨”的信息接受请求至B页面的FLASH;同时客户端调用A页面的FLASH,根据自身保存的C页面FLASH的标识发送携带“今天要下雨”的信息接受请求至C页面的FLASH.
客户端调用B、C页面的FLASH接收上述信息接受请求并获取到其携带的“今天要下雨”的信息。
客户端将“今天要下雨”的信息显示在页面B、C上。
至此,页面A、B、C进行了同步更新。
实施例8提供了一种在非同源页面间通信以进行同步更新的具体应用场景:
用户打开了自己的QQ空间页面和腾讯微博页面,并设置了将QQ空间页面的签名信息同步到腾讯微博页面。
客户端将QQ空间页面和腾讯微博页面加入到同一页面组中,其中QQ空间页面的FLASH中保存有腾讯微博页面FLASH的标识,腾讯微博页面FLASH保存有QQ空间页面FLASH的标识。
当用户修改签名信息为“今天要下雨”时,QQ空间页面通过之前所述的三种方式获取到该信息并显示在自身页面上。
客户端检测到QQ空间页面的签名信息进行了更新,于是获取该信的签名信息。
客户端调用QQ空间页面的FLASH根据保存的腾讯微博页面FLASH的标识发送携带该“今天要下雨”更新数据的信息接收请求至腾讯微博页面FLASH。
客户端调用腾讯微博页面FLASH接收该信息接收请求并获取其携带的“今天要下雨”的更新数据。
客户端将“今天要下雨”显示在腾讯微博页面上。
至此,QQ空间页面和腾讯微博页面进行了同步更新。
用户接下来在QQ空间页面上添加“现在还没有下雨”的留言。
客户端检测到QQ空间页面上进行了更新,但更新信息并非是签名信息,因此不获取该信息。
需要说明的是,同页面间同步操作一样,在上述实施例中,页面的FLA SH同样可以利用sendmessage函数和recivemessage函数进行更新数据的发送和接收。
本申请实施例9提供了一种用于实现客户端页面间通信的装置,参见图9,该装置包括:
检测单元11,用于检测页面是否有与其它页面进行数据传输的需求。
基于页面间通信的具体应用不同,页面间需要传输的数据有所不同。比如要进行页面更新时,要传输的是更新页面上的更新数据;要进行页面同步操作时,要传输的是用以指示新操作的操作数据。下文将根据具体的应用对此做详细描述。
获取单元12,用于在页面有数据需要传输时,获取该数据。
标识调用单元13,用于调取所述页面所保存的当前页面组中其它页面的通信标识。
本申请中的页面组是预先建立的至少两个页面的组合;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识。该通信标识指用以唯一确定每一页面的标识,基于该标识,可以建立页面间的通信连接。
在本申请中,页面组可以根据需要进行创建。比如可设置基于同一网址打开的多个页面为一页面组,以进行页面的同步更新。也可以设置对应同一用户页面如用户的QQ空间页面和该用户的微博页面为同一页面组,以将QQ空间页面的签名等信息同步到微博页面。在本申请中不对页面组的具体设置做限制。
因为页面组可以基于不同的需要建立,因此同一页面可能属于多个页面组。为此,所述装置还包括页面组确定单元,用于当所述页面属于多个页面组时,根据所述数据的属性信息,确定所述页面的当前页面组,所述数据就在当前页面组的页面间进行传输。
本申请中数据的属性信息主要是该数据的传输属性信息,比如当该数据是用以在QQ空间和微博中展示的签名信息时,当前页面组即为QQ空间和微博页面组成的页面组。当该数据需要在同源页面间传输时,当前页面组即为同源页面组成的页面组。
通信单元14,用于依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
本申请中,客户端利用页面的通信标识建立通信连接的方式有多种。在本申请具体实施例中,页面利用页面间的FLA S H建立页面间的通信连接,所述装置具体为:
检测单元,用于检测页面是否有与其它页面进行数据传输的需求。
获取单元,用于在页面有数据需要传输时,获取该数据。
标识调用单元,用于调取需要传输数据的页面的FLASH处保存的FLASH组中其它FLASH的标识。其中,FLASH组由当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识。
通信单元包括数据发送单元和数据接收单元。
数据发送单元,用于调用所述页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH。
数据接收单元,用于调用所述其它FLASH接收所述信息接收请求并获取所述数据。
当然,本申请中,该装置也可利用页面中的其它具有数据传输功能的单元利用通信标识在页面间传输数据,本申请不对此做具体限制。
页面组是预先创建的,因此,本申请还包括创建单元,用于创建页面组。
在本申请中,页面组可以根据需要进行创建。比如可设置基于同一网址打开的多个页面为一页面组,以进行页面的同步更新。也可以设置对应同一用户页面如用户的QQ空间页面和该用户的微博页面为同一页面组,以将QQ空间页面的签名等信息同步到微博页面。在本申请中不对页面组的具体设置做限制。
对应不同的创建方法,具体的创建单元包括:
属性信息获取单元,用于获取当前页面的属性信息。
在本申请中,当前页面可以指客户端检测到的每一正在打开的页面。当有页面被打开时,属性信息获取单元获取该页面的属性信息。该属性信息是指用以表征该页面是否有与其它页面进行通信的需求,以及与哪些页面进行和何种通信需求的信息。比如页面是否设置了与其它页面进行同步更新,是否设置了与其它页面进行同步操作,同步更新的数据类型、同步操作的操作类型等信息。可以理解的,基于同一页面的不同属性,同一页面有可能被加入到多个页面组中。
判断单元,用于根据所述属性信息判断所述当前页面是否需要加入页面组。
比如当属性信息表示当前页面A需要与另一页面B进行签名信息的同步更新时,则判断将当前页面A加入对应页面组。
需要说明的是,同源页面间的同步更新是当前网络的默认需求,即对每一页面来讲都有与同源页面同步更新的需求,因此,每一页面实际上都需要加入与同源页面同步更新的页面组。
第一主连接发起单元,用于在当前页面需要加入所述页面组时,调用所述当前页面的FLASH发起建立主连接FLASH的操作。
同一客户端可能会设置多个页面组,本申请中,可对页面组对应的FLASH组设置名称以进行区分。其具体名称可以任意设置。比如设置为“cloud”、“rain”等。同一页面可能会加入不同页面组,因此,同一页面可能会有不同的FLASH被调用,为进行区分,可以对同一页面的各FLASH按照FLASH组名称进行设置。比如,主连接FLASH的名称可设置为“FLASH组名称_HOST”。这样通过名称就可以知道该主连接FLASH所在的FLASH群组。
具体的,当有页面启动时,主连接发起单元调用create接口发起试图创建主连接FLASH的操作。当FLASH组名称为“cloud”时,主连接名称为“cloud_HOST”
非主连接单元,用于在所述主连接FLASH已存在时,调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识。
在本申请中,主连接FLASH只有一个,但非主连接FLASH可以有多个,为对非主连接FLASH进行区分,非主连接单元生成的非主连接标识必须是唯一的。
为确保唯一性,创建非主连接FLASH时,非主连接单元可以调用join接口,创建名为“FLASH组名称_非主连接标识A”的非主连接FLASH。若A已经存在,则试图创建“FLASH组名称_非主连接标识B”的非主连接FLASH,直到创建的标识在FLASH组中不存在为止。
具体的,非主连接单元可以随机生成非主连接标识,也可以按照次序生成非主连接标识。
第一标识发送单元,用于调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH。
第二标识发送单元,用于调用所述主连接FLASH保存并发送FLASH组标识至所述FLASH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识。
第一保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
具体的,当FLASH组中只包括主连接FLASH和当前非主连接FLASH时,所述的FLASH组标识包括主连接标识和当前非主连接标识,每一非主连接指当前非主连接FLASH。
当FLASH组中包括主连接FLASH、当前非主连接FLASH和其它非主连接FLASH时,FLASH组标识包括主连接标识、当前非主连接标识和其它非主连接FLASH的非主连接标识,每一非主连接指当前非主连接FLASH和其它非主连接FLASH。
在本申请另一实施例中,所述创建单元还包括:
第一确定单元,用于在FLASH组中不存在主连接FLASH时,确定所述当前页面的FLASH为主连接FLASH,同时生成并记录主连接标识。
第三标识发送单元,用于当所述FLASH组中存在至少一个非主连接FLASH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH。
第四标识发送单元,用于调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和所述每一非主连接FLASH的非主连接标识。
第二保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
主连接FLASH有时会失效,比如当主连接FLASH对应的页面被关闭时,主连接FLASH同时消失。当后续有新的非主连接FLASH建立时,会出现无法加入FLASH组的情况。为此,在本申请的实施例中,所述装置还包括:
第二主连接发起单元,用于调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作。这一操作可以是实时的,也可以是周期性进行的。
第二确定单元,用于在所述主连接FLASH失效时,确定所述发起重新建立主连接操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识。生成的新主连接标识可以与原主连接标识相同。
第一标识更新单元,用于调用所述新的主连接FLASH根据所述新主连接标识更新自身保存的所述FLASH组标识。新的主连接FLASH生成后,第一标识更新单元会调用新的主连接FLASH重新计算群组成员,删除自身为非主连接FLASH时的标识并根据生成的新主连接标识更新自身保存的FLASH组标识,
第五标识发送单元,用于调用所述新的主连接FLASH发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH。
第二标识更新单元,用于调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
客户端页面间的直接通信具有多种应用,以下以其应用在页面间的同步更新和页面间的同步操作为例进行描述。
当基于页面间直接通信实现页面间同步操作时,本申请的装置包括如下单元:
检测单元,具体用于检测页面组中是否有页面执行了新的操作。
在本申请中,该新的操作是指对页面进行内容更新外的所有操作,比如页面切换操作。
获取单元,用于在有页面执行了更新操作时,获取用以指示对页面执行新操作的操作数据。
数据发送单元,用于调用该执行了新操作的页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述操作数据的信息接收请求至所述其它FLASH。
接收单元,用于调用所述其它FLASH根据所述信息接收请求接收所述操作数据。
操作单元,用于根据所述操作数据在对应的页面执行所述操作。
在该应用中,FLASH发送信息接收请求至其它FLASH和其它FLASH根据信息接收请求接收操作数据具有多种方式。在具体实施例中,数据发送单元和接收单元可利用FLASH中的sendmessage发送信息函数和recivemessage接收信息函数进行信息的发送和接收:
数据发送单元,用于调用该执行了新操作的页面中的FLASH利用sendmessage函数发送携带所述操作数据的recivemessage请求至其它FLASH。
接收单元,用于调用其它FLASH利用recivemessage函数接收所述recivemessage请求,并获取其携带的操作数据。
当基于页面间直接通信实现页面间同步更新时,本申请的装置包括如下单元:
检测单元,具体用于检测页面组中是否有页面进行了更新。
获取单元,用于在有页面进行了更新时,获取更新页面中的更新数据。
数据发送单元,用于调用更新页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述更新数据的信息接收请求至所述其它FLASH。
接收单元,用于调用所述其它FLASH根据所述信息接收请求接收所述更新数据。
页面更新单元,用于根据所述更新数据更新所述其它FLASH对应的页面。
从上述实施例可以看出,页面组中需要有页面先获取更新数据进行更新才能通过该更新页面将更新数据传输给其它页面。该更新可以基于多种方式进行。对应的,在本申请中,所述装置还包括:
浏览器单元,用于设置一个浏览器从服务器获取更新数据,然后将该更新数据发送至该浏览器内的至少一个页面,使该至少一个页面进行更新。因为只涉及到一个浏览器,其它浏览器内的页面可以基于上述页面间的直接通信进行更新,因此,解决了现有技术中基于浏览器的localstorage方案进行页面更新不能跨浏览器的问题。
轮询单元,用于设置一个页面周期性的询问客户端,从客户端获取更新数据进行更新。在该方式中,因为只涉及一个页面,所以在保证即时性的同时,保证了页面的性能。当然,第二更新子单元,也可以设置适量页面轮询客户端,只要设置的页面数量能够保证页面性能即可。
长链接单元,用于设置一个页面与服务器长链接,从服务器获取更新数据进行更新。因为只有一个页面与服务器长链接,因此降低了对服务器带宽的需求,即降低了服务器成本。当然,第三更新子单元也可以在服务器带宽范围内设置适量页面与服务器长链接。
需要说明的是,在该实施例中,页面组中的页面可以为同源页面,也可以为非同源页面。
在本申请中基于不同的更新需求,需要传输的更新数据类型也不同。比如,当同源页面间进行同步更新时,因为需要对每一更新进行同步,因此,更新数据是指页面中的任何更新数据。而当仅需要对特定的更新进行同步时,更新数据有可能是特定的某一类型数据,比如之前提到的对应同一用户的QQ空间页面和微博页面,其检测的就是页面中的签名数据,而非所有数据。在本申请中。为满足不同的更新需要,可以对更新数据的具体类型进行设置。
另外,同页面间同步操作一样,在上述实施例中,页面的FLASH同样可以利用sendmessage函数和recivemessage函数进行更新数据的发送和接收。
值得注意的是,本申请的方法与本申请的装置相对应,因此对装置部分不再详述,相关部分参见方法实施例即可。
以上对本申请所提供的一种客户端页面间通信的方法及装置进行了介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

Claims (22)

1.一种客户端页面间通信的方法,其特征在于,所述方法包括:
检测页面是否有与其它页面进行数据传输的需求;
如果有,则获取所述数据;
调取所述页面所保存的当前页面组中其它页面的通信标识;其中所述页面组包括预先建立的至少两个页面;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识;
依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
2.根据权利要求1所述的方法,其特征在于,当所述页面属于多个页面组时;所述方法还包括:
根据所述数据的属性信息,确定所述页面的当前页面组。
3.根据权利要求2所述的方法,其特征在于,所述调取所述页面所保存的所述当前页面组中其它页面的通信标识包括:
调取所述页面的FLASH处保存的FLASH组中其它FLASH的标识;所述FLASH组由所述当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识;
所述依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面包括:
调用所述页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH;
调用所述其它FLASH接收所述信息接收请求并获取所述数据。
4.根据权利要求3所述的方法,其特征在于,所述页面组通过如下步骤创建:
获取当前页面的属性信息;
根据所述属性信息判断所述当前页面是否需要加入页面组;
若需要,则调用所述当前页面的FLASH发起建立主连接FLASH的操作;
若FLASH组中已存在所述主连接FLASH,则调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识;
调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH;
调用所述主连接FLASH保存并发送FLASH组标识至所述FLASH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识;
调用所述每一非主连接FLASH保存所述FLASH组标识。
5.根据权利要求4所述的方法,其特征在于,若FLASH组中不存在主连接FLASH,则所述方法还包括:
确定所述当前页面的FLASH为主连接FLASH,同时生成并记录主连接标识;
当所述FLASH组中存在至少一个非主连接FLASH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH;
调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;所述FLASH组标识包括所述主连接标识和每一非主连接标识;
调用所述每一非主连接FLASH保存所述FLASH组标识。
6.根据权利要求4所述的方法,其特征在于,所述生成当前非主连接标识包括:随机或按照一定的次序生成所述当前非主连接标识。
7.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作,若所述主连接FLASH失效,则确定重新发起建立主连接FLASH操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识;
调用所述新的主连接FLASH根据所述新主连接标识更新所述自身保存的FLASH组标识并发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH;
调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
8.根据权利要求1所述的方法,其特征在于,所述数据为用以指示对页面执行操作的操作数据,所述方法还包括:
根据所述操作数据在所述其它页面执行所述操作。
9.根据权利要求1所述的方法,其特征在于,所述数据为更新数据;所述方法还包括:
根据所述更新数据更新所述其它页面。
10.根据权利要求3所述的方法,其特征在于,所述需要传输数据的页面中的FLASH利用sendmessage函数发送携带所述数据的信息接收请求至所述其它FLASH;
所述其它FLASH利用接收recivemessage函数接受所述信息接收请求并获取所述数据。
11.根据权利要求1所述的方法,其特征在于,所述页面组中的页面为同源页面。
12.一种用于实现客户端页面间通信的装置,其特征在于,所述装置包括:
检测单元,用于检测页面是否有与其它页面进行数据传输的需求;
获取单元,用于在页面有与其它页面进行数据传输的需求时,获取所述数据;
标识调用单元,用于调取所述页面所保存的当前页面组中其它页面的通信标识;其中所述页面组包括预先建立的至少两个页面;所述通信标识是建立所述页面组时为页面组中的每一页面分配的,所述页面组中的每一页面保存有所述页面组中其它页面的通信标识;
通信单元,用于依据所述通信标识,在所述页面与所述其它页面间建立通信连接,并利用该通信连接将所述需传输的数据发送给其它页面。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
页面组确定单元,用于当所述页面属于多个页面组时,根据所述数据的属性信息,确定所述页面的当前页面组。
14.根据权利要求13所述的装置,其特征在于,所述标识调用单元,具体用于调取所述页面的FLASH处保存的FLASH组中其它FLASH的标识;所述FLASH组由所述当前页面组中的页面对应的FLASH构成,每一页面的FLASH处保存有所述FLASH组中其它FLASH的标识;
所述通信单元包括数据发送单元和数据接收单元;
所述数据发送单元,用于调用所述页面中的FLASH根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的信息接收请求至所述其它FLASH;
所述数据接收单元,用于调用所述其它FLASH接收所述信息接收请求并获取所述数据。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括创建单元,用于创建所述页面组;所述创建单元包括:
属性信息获取单元,用于获取当前页面的属性信息;
判断单元,用于根据所述属性信息判断所述当前页面是否需要加入页面组;
第一主连接发起单元,用于在当前页面需要加入所述页面组时,调用所述当前页面的FLASH发起建立主连接FLASH的操作;
非主连接单元,用于在所述主连接FLASH已存在时,调用所述当前页面的FLASH加入所述FLASH组,建立当前非主连接FLASH,同时生成并记录当前非主连接标识;
第一标识发送单元,用于调用所述当前非主连接FLASH,将所述当前非主连接标识发送至所述主连接FLASH;
第二标识发送单元,用于调用所述主连接FLASH保存并发送FLASH组标识至所述FLA SH组中的每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和每一非主连接标识;
第一保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
16.根据权利要求15所述的装置,其特征在于,所述创建单元还包括;
第一确定单元,用于在FLASH组中不存在主连接FLASH时,确定所述当前页面的FLASH为主连接FLASH,同时生成并记录主连接标识;
第三标识发送单元,用于当所述FLASH组中存在至少一个非主连接FLA SH时,调用所述FLASH组中的每一非主连接FLASH发送非主连接标识至所述主连接FLASH;
第四标识发送单元,用于调用所述主连接FLASH发送FLASH组标识至所述每一非主连接FLASH;其中所述FLASH组标识包括所述主连接标识和所述每一非主连接FLASH的非主连接标识;
第二保存单元,用于调用所述每一非主连接FLASH保存所述FLASH组标识。
17.根据权利要求15所述的装置,其特征在于,所述非主连接单元,具体用于随机或按照一定的次序生成所述非主连接标识。
18.根据权利要求15或16所述的装置,其特征在于,所述装置还包括:
第二主连接发起单元,用于调用所述FLASH组中的任一非主连接FLASH发起重新建立主连接FLASH的操作;
第二确定单元,用于在所述主连接FLASH失效时,确定所述发起重新建立主连接操作的非主连接FLASH为新的主连接FLASH,同时生成并记录新主连接标识;
第一标识更新单元,用于调用所述新的主连接FLASH根据所述新主连接标识更新自身保存的所述FLASH组标识;
第五标识发送单元,用于调用所述新的主连接FLASH发送更新后的FLASH组标识至所述FLASH组中的每一非主连接FLASH;
第二标识更新单元,用于调用所述每一非主连接FLASH根据接收的更新后的FLASH组标识更新自身保存的所述FLASH组标识。
19.根据权利要求12所述的装置,其特征在于,所述数据为用以指示对页面执行操作的操作数据,所述装置还包括:
操作单元,用于根据所述操作数据在所述其它页面执行所述操作。
20.根据权利要求12所述的装置,其特征在于,所述数据为更新数据;所述装置还包括:
页面更新单元,用于根据所述更新数据更新所述其它页面。
21.根据权利要求14所述的装置,其特征在于,所述数据发送单元,还用于调用需要传输数据的页面中的FLASH利用sendmessage函数根据保存的所述FLASH组中其它FLASH的标识发送携带所述数据的recivemessage请求至所述其它FLASH;
所述接收单元,还用于调用所述其它FLASH利用recivemessage函数接收所述recivemessage请求并获取所述数据。
22.根据权利要求12所述的装置,其特征在于,所述页面组中的页面为同源页面。
CN201210244355.6A 2012-07-13 2012-07-13 一种客户端页面间通信的方法及装置 Active CN103546513B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201210244355.6A CN103546513B (zh) 2012-07-13 2012-07-13 一种客户端页面间通信的方法及装置
TW101142226A TW201403335A (zh) 2012-07-13 2012-11-13 用戶端頁面間通訊的方法及裝置
US13/939,870 US9323727B2 (en) 2012-07-13 2013-07-11 Method and system for communicating between client pages
KR1020157000089A KR101670699B1 (ko) 2012-07-13 2013-07-12 웹 페이지들 간에 통신하기 위한 방법 및 시스템
PCT/US2013/050212 WO2014011962A1 (en) 2012-07-13 2013-07-12 Method and system for communicating between web pages
JP2015521831A JP5945367B2 (ja) 2012-07-13 2013-07-12 ウェブページ間で通信を行うための方法およびシステム
US15/073,209 US10108588B2 (en) 2012-07-13 2016-03-17 Method and system for communicating between client pages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210244355.6A CN103546513B (zh) 2012-07-13 2012-07-13 一种客户端页面间通信的方法及装置

Publications (2)

Publication Number Publication Date
CN103546513A true CN103546513A (zh) 2014-01-29
CN103546513B CN103546513B (zh) 2016-12-21

Family

ID=49915077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210244355.6A Active CN103546513B (zh) 2012-07-13 2012-07-13 一种客户端页面间通信的方法及装置

Country Status (6)

Country Link
US (2) US9323727B2 (zh)
JP (1) JP5945367B2 (zh)
KR (1) KR101670699B1 (zh)
CN (1) CN103546513B (zh)
TW (1) TW201403335A (zh)
WO (1) WO2014011962A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078785A (zh) * 2019-11-27 2020-04-28 贝壳技术有限公司 一种数据可视化展示的方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995252B (zh) * 2019-12-13 2023-08-08 阿里巴巴集团控股有限公司 页端与客户端间的数据传输方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446111B1 (en) * 1999-06-18 2002-09-03 Epicrealm Operating Inc. Method and apparatus for client-server communication using a limited capability client over a low-speed communications link
US20080181158A1 (en) * 2005-03-24 2008-07-31 Nokia Corporation Notification of a Receiving Device About a Forthcoming Transmission Session
CN102246153A (zh) * 2008-12-10 2011-11-16 亚马逊技术股份有限公司 内容共享
US20120165076A1 (en) * 2010-12-24 2012-06-28 Jaehwa Yu Mobile terminal and method for changing page thereof

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748100A (en) * 1995-10-06 1998-05-05 Motorola, Inc. Reliable wireless message distribution system
JP2000020357A (ja) 1998-07-03 2000-01-21 Nec Software Shikoku Ltd Wwwブラウザのコンポーネント間連携方法
US6853867B1 (en) * 1998-12-30 2005-02-08 Schneider Automation Inc. Interface to a programmable logic controller
JP2000267964A (ja) 1999-03-18 2000-09-29 Nec Eng Ltd ドキュメントの動的表示方法、システムおよび記録媒体
JP2002182971A (ja) 2000-12-19 2002-06-28 Nippon Yunishisu Kk Webブラウザでマルチウインドウに表示されているHTMLドキュメント間の情報連携システム
GB2383853A (en) * 2001-01-26 2003-07-09 Xmg Ltd A method system and apparatus for networking devices over an asynchronous network such as the internet
US20040205547A1 (en) * 2003-04-12 2004-10-14 Feldt Kenneth Charles Annotation process for message enabled digital content
WO2005010730A2 (en) * 2003-07-24 2005-02-03 Idea Place Corporation Mobile memory device with integrated applications and online services
JP2005056163A (ja) * 2003-08-05 2005-03-03 Internatl Business Mach Corp <Ibm> コラボレーション・システムのためのサーバ装置、コラボレーション・システムのためのクライアント装置、コンピュータ装置をコラボレーション・システムのためのサーバ装置として機能させるためのプログラム、およびコンピュータ装置をコラボレーション・システムのためのクライアント装置として機能させるためのプログラム並びにコラボレーション・システム
US8528003B2 (en) * 2003-10-27 2013-09-03 Yahoo! Inc. Communication among browser windows
GB0407977D0 (en) 2004-04-08 2004-05-12 Ibm Communication between browser windows
US20070260520A1 (en) * 2006-01-18 2007-11-08 Teracent Corporation System, method and computer program product for selecting internet-based advertising
US8145719B2 (en) * 2006-03-03 2012-03-27 Gogroups Method and system for messaging and communication based on groups
US8009603B2 (en) * 2006-09-06 2011-08-30 Futurewei Technologies, Inc. Transmitting page and broadcast control channel through the same time frequency resources across the sectors in a wireless communications system
US20080295018A1 (en) * 2007-05-24 2008-11-27 Nokia Corporation Apparatus, method and computer program product providing an adaptive forward button for a browser application
US8302013B2 (en) * 2007-08-16 2012-10-30 Yahoo! Inc. Personalized page modules
US20090049380A1 (en) * 2007-08-16 2009-02-19 Joshua Allen Rehling Page Modules and States
US8600413B2 (en) * 2007-10-30 2013-12-03 Qualcomm Incorporated Control arrangement and method for communicating paging messages in a wireless communication system
US8065617B2 (en) * 2008-08-28 2011-11-22 Microsoft Corporation Discovering alternative user experiences for websites
JP5872753B2 (ja) * 2009-05-01 2016-03-01 ソニー株式会社 サーバ装置、電子機器、電子書籍提供システム、サーバ装置の電子書籍提供方法、電子機器の電子書籍表示方法及びプログラム
JP4929330B2 (ja) 2009-09-17 2012-05-09 ヤフー株式会社 入力支援プログラム、端末及びWebシステム
US9058489B2 (en) 2010-01-25 2015-06-16 Samsung Electronics Co., Ltd. Marking documents with executable text for processing by computing systems
JP5682996B2 (ja) 2010-02-04 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法
CN101867622A (zh) 2010-07-02 2010-10-20 苏州阔地网络科技有限公司 一种网页上实现的p2p视频通讯的方法
US9153000B2 (en) * 2010-12-13 2015-10-06 Microsoft Technology Licensing, Llc Presenting content items shared within social networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446111B1 (en) * 1999-06-18 2002-09-03 Epicrealm Operating Inc. Method and apparatus for client-server communication using a limited capability client over a low-speed communications link
US20080181158A1 (en) * 2005-03-24 2008-07-31 Nokia Corporation Notification of a Receiving Device About a Forthcoming Transmission Session
CN102246153A (zh) * 2008-12-10 2011-11-16 亚马逊技术股份有限公司 内容共享
US20120165076A1 (en) * 2010-12-24 2012-06-28 Jaehwa Yu Mobile terminal and method for changing page thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078785A (zh) * 2019-11-27 2020-04-28 贝壳技术有限公司 一种数据可视化展示的方法、装置、电子设备及存储介质
CN111078785B (zh) * 2019-11-27 2023-12-01 贝壳技术有限公司 一种数据可视化展示的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
KR101670699B1 (ko) 2016-10-31
JP2015526802A (ja) 2015-09-10
US10108588B2 (en) 2018-10-23
TW201403335A (zh) 2014-01-16
CN103546513B (zh) 2016-12-21
KR20150022972A (ko) 2015-03-04
US9323727B2 (en) 2016-04-26
JP5945367B2 (ja) 2016-07-05
US20160196242A1 (en) 2016-07-07
US20140019838A1 (en) 2014-01-16
WO2014011962A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
CN110300050A (zh) 消息推送方法、装置、计算机设备及存储介质
CN103312528B (zh) 一种心跳消息发送方法及用户终端
CN102819461A (zh) 桌面同步方法、装置、设备及系统
CN113596191A (zh) 一种数据处理方法、网元设备以及可读存储介质
WO2019184658A1 (zh) 配置文件的切换方法、装置与移动终端
CN104243266A (zh) 访问网络的方法及装置
CN102035859A (zh) 一种显示上传进度的方法、系统和装置
CN105635201A (zh) 一种基于推送消息的应用程序启动方法及系统
CN107835445B (zh) 基于mqtt协议的电视控制方法、移动终端及电视
CN108829402A (zh) 应用程序的多开方法及系统、存储介质和处理器
CN103685398A (zh) 通信连接建立方法及通信系统
CN108462984A (zh) 一种进行接入网络管理的方法及终端
CN111741175A (zh) 呼叫中心系统、信号传递方法、装置、服务器及介质
CN106302093B (zh) 一种通信方法、系统及服务器
CN103546513A (zh) 一种客户端页面间通信的方法及装置
CN106657076B (zh) 一种网络命名空间的tcp服务实现方法及装置
CN111385324A (zh) 一种数据通信方法、装置、设备和存储介质
CN115297105A (zh) 文件传输方法、装置、计算机设备及存储介质
CN115695497A (zh) 诊断数据远程传输方法、装置、电子设备及介质
CN105282235B (zh) 一种解决rpc在双pon口onu升级不稳定的方法
CN109271454A (zh) 一种数据同步的方法及网络设备
CN110324377B (zh) 一种推送交互方法、装置、电子设备及介质
CN109450870B (zh) Voip业务的处理方法和装置、存储介质及电子装置
CN112532509A (zh) 跨应用通信方法及相关装置
CN104618510B (zh) 一种建立通信连接的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1193255

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1193255

Country of ref document: HK