CN102356391A - 一种实现多标签应用程序中进行消息交互的方法及*** - Google Patents

一种实现多标签应用程序中进行消息交互的方法及*** Download PDF

Info

Publication number
CN102356391A
CN102356391A CN2010800053390A CN201080005339A CN102356391A CN 102356391 A CN102356391 A CN 102356391A CN 2010800053390 A CN2010800053390 A CN 2010800053390A CN 201080005339 A CN201080005339 A CN 201080005339A CN 102356391 A CN102356391 A CN 102356391A
Authority
CN
China
Prior art keywords
window
application program
page window
message
label
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
CN2010800053390A
Other languages
English (en)
Other versions
CN102356391B (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.)
Beijing Sogou Technology Development Co Ltd
Original Assignee
Beijing Sogou Technology Development Co 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 Beijing Sogou Technology Development Co Ltd filed Critical Beijing Sogou Technology Development Co Ltd
Priority to CN2010800053390A priority Critical patent/CN102356391B/zh
Publication of CN102356391A publication Critical patent/CN102356391A/zh
Application granted granted Critical
Publication of CN102356391B publication Critical patent/CN102356391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

公开了一种实现多标签应用程序中进行消息交互的方法,该方法包括:将多标签应用程序中标签对应的页面窗口创建为顶层窗口(S201);进行与所述页面窗口有关的消息交互(S202)。还公开了一种实现多标签应用程序中进行消息交互的***。

Description

一种实现多标签应用程序中进行消息交互的方法及*** 本申请要求于 2009 年 1 月 23 日提交中国专利局、 申请号为 200910077869.5、 发明名称为 "一种实现多标签应用程序中进行消息交互的方 法及***"的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及多标签应用程序技术领域,特别是涉及一种实现多标签应用程 序中进行消息交互的方法及***。
背景技术
浏览器是用户访问互联网的最常用的入口,很多情况下, 用户希望能够同 时关注很多网页, 但是屏幕的尺寸是有限的, 于是出现了多标签浏览器, 如图
1所示。 在这种多标签浏览器中, 每个标签对应于一个网页。 用户可以在某一 特定时间只关注一个网页的内容, 当他想关注其他网页的内容时, 只需要切换 标签即可。
这种多标签浏览器虽然能够为用户查看网页提供方便,但是经常会出现页 面假死(即用户无法操作这个网页, 如滚动页面、 点击链接等)传递的情况, 即当一个页面窗口发生假死时, 其他页面窗口也会随之处于假死状态。 例如, 某个用户打开了 10个页面,当前页面为 sohu首页,假设用户在浏览该页面时, 这个页面突然发生 4叚死, 那么也无法对另外 9个页面进行操作。 此时, 用户不 得不取消对另外 9个页面的浏览, 将浏览器进程结束, 然后重启浏览器, 再重 新打开这 9个页面才可以继续浏览。 发明内容
本发明的目的在于提供一种实现多标签应用程序中进行消息交互的方法 及***, 能够解决现有技术中当一个页面窗口发生假死时, 其他页面窗口也会 随之处于假死状态的问题。
为实现上述目的, 本发明实施例提供了如下方案:
一种实现多标签应用程序中进行消息交互的方法, 包括:
将多标签应用程序中标签对应的页面窗口创建为顶层窗口; 进行与所述页面窗口有关的消息交互。 可选的, 所述将多标签应用程序中 标签对应的页面窗口创建为顶层窗口包括:
将所述多标签应用程序中各标签对应的页面窗口创建为与所述多标签应 用程序的主框架窗口平级的顶层窗口。
可选的, 所述进行与所述页面窗口有关的消息交互包括:
所述多标签应用程序的主框架窗口以非阻塞的方式向所述页面窗口发送 消息。
可选的, 所述非阻塞的方式包括: 异步的消息发送方式或带超时机制的同 步的消息发送方式。
可选的, 所述进行与所述页面窗口有关的消息交互包括: 建立并保存所述 多标签应用程序的主框架窗口与所述页面窗口的对应关系;
根据所述主框架窗口与所述页面窗口的对应关系,所述主框架窗口向对应 的页面窗口发送消息;
触发所述页面窗口执行与所接收到的消息对应的操作。
可选的, 所述方法还包括:
调整所述页面窗口的位置及大小,以使所述页面窗口与所述多标签应用程 序的主框架窗口的位置及大小相适应。
可选的, 还包括:
如果判定某标签对应的页面窗口发生假死, 则向用户发出提示信息。 可选的,所述将多标签应用程序中标签对应的页面窗口创建为顶层窗口包 括:
在多标签应用程序中建立新标签的同时,将所述新标签对应的页面窗口创 建为顶层窗口。
可选的,所述多标签应用程序包括多标签网页浏览器或多标签文档编辑器 或多标签阅读器。
可选的, 还包括: 所述多标签应用程序中不同标签对应的页面窗口属于不 同的线程。
可选的, 还包括: 所述多标签应用程序的主框架窗口与标签对应的页面窗 口属于不同的线程。 可选的,所述将多标签应用程序中标签对应的页面窗口创建为顶层窗口包 括:
将多标签应用程序中标签对应的页面窗口创建为所有者为空的顶层窗口。 本发明还提供了一种实现多标签应用程序中进行消息交互的***, 包括: 窗口管理模块,用于将多标签应用程序中标签对应的页面窗口创建为顶层 窗口;
消息交互模块, 用于进行与所述页面窗口有关的消息交互。
可选的, 所述窗口管理模块具体用于, 将所述多标签应用程序中各标签对 应的页面窗口创建为与所述多标签应用程序的主框架窗口平级的顶层窗口。
可选的, 所述消息交互模块, 具体用于所述多标签应用程序的主框架窗口 以非阻塞的方式向所述页面窗口发送消息。
可选的, 所述消息交互模块包括:
对应关系保存子模块,用于建立并保存所述多标签应用程序的主框架窗口 与所述页面窗口的对应关系;
通讯子模块, 用于根据所述主框架窗口与所述页面窗口的对应关系, 所述 主框架窗口向对应的页面窗口发送消息,并触发所述页面窗口执行与所接收到 的消息对应的操作。
可选的, 还包括:
窗口调整模块, 用于调整所述页面窗口的位置及大小, 以使所述页面窗口 与所述多标签应用程序的主框架窗口的位置及大小相匹配。
可选的, 还包括:
提示模块, 用于页面窗口发生假死时, 向用户发出提示信息。
可选的,所述窗口管理模块具体用于在多标签应用程序中建立新标签的同 时, 将所述新标签对应的页面窗口创建为顶层窗口。
可选的,所述多标签应用程序包括多标签网页浏览器或多标签文档编辑器 或多标签阅读器。
可选的, 还包括:
第一创建模块,用于在不同的线程中创建所述多标签应用程序中不同标签 对应的页面窗口。 可选的, 还包括:
第二创建模块,用于在不同的线程中创建所述多标签应用程序的主框架窗 口及标签对应的页面窗口。
可选的,所述窗口管理模块具体用于将多标签应用程序中标签对应的页面 窗口创建为所有者为空的顶层窗口。
本发明还提供了一种计算机可读存储介质, 包括计算机程序代码, 该计算 机程序代码由一个计算机单元执行, 使得该计算机单元:
将多标签应用程序中标签对应的页面窗口创建为顶层窗口;
进行与所述页面窗口有关的消息交互。
本发明实施例公开了以下技术效果:
本发明实施例通过将多标签应用程序中标签对应的页面窗口创建为顶层 窗口,使得页面窗口不存在父窗口, 进而在进行与这样的页面窗口有关的消息 交互时, 便不会出现某个父窗口向页面窗口采用阻塞方式发送***消息的情 况, 进而也就避免了因这种***消息传输导致的页面假死传递。 即使某个页面 窗口发生 £死, 也不会使其他的页面窗口受到影响, 即可以正常对其他页面窗 口进行操作, 不会影响整个应用程序的正常运行。 附图说明
图 1是现有技术中的多标签网页浏览器界面示意图;
图 2 是本发明实施例实现多标签应用程序中进行消息交互的方法的流程 图;
图 3是现有技术中多标签浏览器的窗口结构示意图;
图 4是本发明实施例中建立的多标签浏览器的窗口结构示意图; 图 5是本发明实施例中页面窗口发生假死时的界面示意图;
图 6 是本发明实施例实现多标签应用程序中进行消息交互的***的示意 图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂, 下面结合附图和 具体实施方式对本发明作进一步详细的说明。 参见图 2, 本发明实施例提供的实现多标签应用程序中进行消息交互的方 法包括以下步骤:
S201: 将多标签应用程序中标签对应的页面窗口创建为顶层窗口; S202: 在所述顶层窗口中进行用户消息的交互, 即进行与所述页面窗口有 关的消息交互,比如应用程序主框架窗口与作为顶层窗口的页面窗口之间的消 息交互等等。
为了便于理解, 下面首先简单介绍一下本发明实施例中多标签应用程序、 操作***中窗口、 顶层窗口等相关概念。 关于标签, 请参见图 1, 其为现有技 术中的多标签网页浏览器界面示意图。其中显示"遨游起始页"、 "搜狐-中国…" 以及"空白页"的小矩形框就是各个页面的标签, 每个标签对应了一个页面窗 口。 而所谓多标签应用程序, 就是将各个标签对应的页面窗口整合在一个窗口 里展现, 点击这些标签就可以在不同的页面间进行切换。 例如, 在图 1所示的 网页浏览器中可以同时包括多个标签, 因此称为多标签网页浏览器。
本发明实施例所述的多标签应用程序包括但不限于多标签网页浏览器、多 标签文档编辑器 (如 excel等) 以及多标签文档阅读器等等。 此外, 需要说明 的是,应用程序可以分为单进程应用程序和多进程应用程序, 各个标签对应的 页面窗口可以是在一个进程中创建的, 也可以是在多个不同的进程中创建的。 但是, 无论是在一个进程还是在多个进程中创建的, 都可能存在假死传递的问 题, 而本发明实施例所解决的问题既可以针对单进程应用程序, 也可以针对多 进程应用程序。
本发明实施例所述窗口是指***显示器上的一个区域,应用程序使用窗口 来显示输出或接收用户的输入。 需要说明的是, 本发明实施例中所述的"窗口" 并不局限在 Windows等传统意义上基于窗口类开发的操作***中, 即使在非 Windows操作***, 只要在计算机界面上提供了一种人机交互的界面(比如对 话框等), 都可以视为本发明实施例中所述的窗口。 一方面应用程序通过窗口 访问***显示器;另一方面应用程序通过使用窗口与其他应用程序共享***显 示器。 同一时间只有一个窗口可以接收用户的输入, 用户可以通过鼠标、 键盘 等输入设备与窗口以及拥有该窗口的应用程序进行交互。
以 Windows系列的操作***为例, 在 Windows操作***中 (也包括其他 基于窗口类的图形操作***, 如苹果机专用*** mac等), 每个基于图形界面 的应用程序至少要创建一个窗口, 称为主框架窗口, 这个窗口是用户与应用程 序之间的主要接口。许多应用程序还会直接或间接地创建一些其他窗口, 来完 成相关的任务。一旦创建了一个窗口, Windows就能提供该窗口所对应的各种 用户交互信息。 Windows能够自动完成许多用户请求的任务, 如移动窗口、 调 整窗口大小等。 在 Windows环境下允许创建任意数目的窗口, Windows能以 各种不同方式来显示信息, 并负责为应用程序管理显示屏幕、控制窗口的位置 和显示, 确保不会有两个应用程序在同一时刻争用***显示器的同一部分。
应用程序窗口一般由标题栏、 菜单栏、 工具栏、 边框、 客户区、 滚动条等 组件构成。 窗口与窗口之间通常是树状连接关系, 即某一个窗口可能有 0个或 1个或 2个以上的子窗口, 而每一个子窗口只能有一个固定的父窗口。 若某个 窗口的父窗口不存在或者为桌面窗口 (窗口类为 #32769的窗口称为桌面窗口) 时, 则称这个窗口为顶层窗口。
仍然以 Windows操作***为例, Windows应用程序的运行需要依靠外部 发生的事件来驱动, 描述事件发生的信息称为消息 (message), 例如, 当用户按 下键盘的某个键时, ***就会产生一条特定的消息, 标识键盘被按下事件的发 生。 所谓事件驱动, 是指 Windows应用程序的执行顺序取决于事件发生的顺 序, 事件驱动程序设计是围绕着消息的产生与处理而展开的。 Windows应用程 序在运行时不断获得任何可能的输入消息, 进行判断, 然后再做适当的处理。
如果把应用程序获得的各种消息分类,则可以分为由硬件设备产生的输入 消息和来自 Windows***的***消息。
应用程序通过输入消息来接受输入,鼠标移动或键盘被按下都将产生输入 消息。 Windows***负责监视所有输入设备并将输入消息放入一个队列之中, 该队列是***定义的用于临时存储消息的内存块, 称为***消息队列。 在 Windows下运行的每个图形界面 ( Graphics Device Interface , GDI ) 线程都拥 有自己的消息队列。
当用户移动鼠标或敲击键盘时, 产生的输入消息首先进入***消息队列。 接着, Windows从***消息队列中每次移走一条输入消息, 确定目的窗口, 并 将输入消息送入创建该窗口的应用程序的消息队列之中。应用程序通过应用程 序队列来接收输入,它通过一个称为消息循环的控制结构从应用程序队列中检 索消息, 并将检索到的消息发送给相应的窗口, 由该窗口的窗口函数负责对消 息进行判断, 并进行相应的处理。
***消息与输入消息不同, Windows***直接将它发送给有关窗口函数, 而不通过***消息队列和应用程序队列。 Windows***通过这种方式直接将影 响某窗口的事件通知窗口。 例如, 当用户激活一个应用程序窗口时, Windows ***就会向该窗口直接发送相应的***消息。
需要说明的是, 消息发送形式大致可以分为两类: 阻塞方式 (如
SendMessage 等 ) 和非阻塞方式 (如 PostMessage、 PostThreadMessag、 SendMessageCallback % SendNotifyMessage % SendMessage Timeout等)。 其中, 在业内, 本领域技术人员通常称 SendMessage 为同步的消息发送方式, 称
PostMessage、 PostThreadMessage、 SendMessageCallback和 SendNotifyMessage 为异步的消息发送方式, 称 SendMessageTimeout为带超时机制的同步消息发 送方式。 以线程 A向窗口 B发送消息为例, 并假设窗口 B不属于线程 A (窗口 B是否属于线程 A是由创建窗口时所在的线程决定的, 即如果在线程 A中创 建的窗口 B , 则窗口 B属于线程 A, 否则, 窗口 B不属于线程 A ), 则对于不 同的发送方式分别具有以下特点:
如果是线程 A以阻塞方式向窗口 B发送一个消息 M, 则线程 A必需等待 窗口 B处理完消息 M之后才能继续执行;如果窗口 B在处理消息 M过程中发 生了死循环、 死锁等问题而导致这个处理过程无法返回, 此时可以认为窗口 B 发生了假死, 那么线程 A便无法继续运行, 也无法接收并处理其他消息, 此 时可以认为是窗口 B的假死直接导致线程 A的假死, 此时线程 A中所有的窗 口都会失去响应。
如果是以非阻塞方式发送消息, 则线程 A在将消息发送给窗口 B之后便 立即返回 , 无需等待窗口 B将消息处理完(如果是采用 PostMessage等异步方 式,则无须等待;如果是采用 SendMessageTimeout,则可以预置一个等待时间, 如果等待的时间超过预置的阈值之后就不再等待, 并返回处理其他的消息); 假设窗口 B假死了, 线程 A还是可以继续运行。
需要注意的是, 上面两种情况中提到的窗口 B所在的线程不属于线程八。 如果窗口 B属于线程 A, 那么无论是阻塞方式还是非阻塞方式均会导致假死 传递, 即窗口 B的假死都会影响线程 A。 另外, 上述窗口 B既可以是子窗口, 也可以是顶层窗口, 窗口结构不影响表现。
而对于上述应用程序获得的各类消息而言,输入消息的发送方式通常是由 应用程序决定的 (通常设置为非阻塞方式); 而***消息的发送方式一般是由 操作***决定的,以当前应用最为广泛的 Windows操作***为例,由 Windows 操作***发送的***消息均以阻塞方式(通常是以 SendMessage的方式)进行。
为了更好地理解本发明实施例提供的方法, 下面以多标签网页浏览器为 例, 对多标签浏览器中, 一旦某页面发生假死, 也无法对其他页面进行操作的 原因进行分析。
现有的多标签网页浏览器在创建窗口时通常是将不同标签对应的页面窗 口继承于同一父窗口下, 以遨游浏览器为例, 图 3表示了在遨游浏览器进行如 图 1的网页浏览时, 其各个窗口的结构图。
在图 3中, "Maxthon2— View"即为显示网页内容的窗口, 简称为页面窗口。 需要说明的是, Maxthon2_View 只是一个容器窗口, 它还有其他子窗口, 如 Internet Explorer_Server (在图中未示出)等用于显示网页内容。 由于当前开了 3个网页, 所以在窗口结构图中可以看到有 3个 Maxthon2_View页面窗口, 这 3个页面窗口都以" Afe:400000:2008:10011 :0:0,,这个窗口为父窗口。
也就是说: 每个标签对应于一个网页, 每个网页都由一组窗口 (指的是上 述结构图中 "Maxthon2_View"前面" +"下的那些未显示出来的一组子窗口) 进 行管理, 这一组窗口有一个父窗口 (即上述结构中 Maxthon2_View ), 且这个 父窗口也有一个父窗口 (即上述结构中的" Afx:400000:2008: 10011 :0:0,')。
在这种窗口结构下, 当用户对某标签对应的页面进行某种操作 (例如进行 网页缩放)时, 处理流程是这样的: 用户先点击缩放按钮, 然后这个按钮所在 的窗口向主框架窗口通知被点击的消息 ,于是主框架窗口找到当前展现的标签 所对应的页面窗口, 并向这个页面窗口发送一个进行缩放的消息, 于是该页面 窗口收到这个消息之后就去执行缩放的功能了。 当然在这期间, 由于 Windows 操作***自身的特点 (如前文所述), 还需要在窗口间交互一些***消息, 这 些***消息都是由 Windows操作***发送的, 而且是以阻塞的消息发送方式 进行发送, 因此只有当所有消息得到响应时, 才能完成对窗口的操作。
例如,在图 3所示的窗口结构中(为清楚起见,下面分别用" 05B6"、"070C"、 "0774"依次来代表页面窗口 "Window 004705B6 " " Maxthon2_View"、 "Window 006C070C " " Maxthon2_View" 、 "Window 00270774 " " Maxthon2_View" ), 假设当前展现的标签对应的页面窗口是" 05B6", 用户点击 了缩放按钮, 则在主框架窗口 "Maxthon2_Fram,,向" 05B6"页面窗口发送进行缩 放的消息的同时, "05B6"页面窗口的父窗口" Afx:400000:2008:10011 :0:0"需要 以阻塞方式向其各个子窗口 (包括 "05B6"、 "070C"及" 0774" )发送***消息, 而且, 只有各条***消息均得到响应时, 才能完成窗口的缩放。
此时,如果当前展现的" 05B6"发生假死,则如果用户想要对 "070C"进行操 作时, 该页面窗口的父窗口 "Afx:400000:2008 :10011 :0:0"仍然需要以阻塞方式 向其各个子窗口(包括" 05B6"、 "070C"及" 0774" )发送***消息。但由于 "05B6" 正处于假死状态, 因此该父窗口 "Afx:400000:2008:10011 :0:0"向" 05B6"发送系 统消息后, "05B6"无法做出响应, 进而该父窗口 "Afx:400000:2008: 10011 :0:0" 将处于永远等待状态, 使得对 "070C"的操作也无法完成。 因为要完成用户对 "070C"的操作 , 同样需要父窗口 " Afx:400000 :2008: 10011: 0 :0"以阻塞的方式向 "070C"等各子窗口发生***消息,但是, 由于此前出现^^死的" 05B6"窗口一直 无法对父窗口 "Afx:400000:2008: 10011 :0:0"予以响应, 而基于阻塞方式的发送 机制, 父窗口 "Afx:400000:2008: 10011 :0:0"在得到 "05B6"窗口的响应之前, 是 无法进行其他操作的 ,因此也就无法为了完成用户对" 070C"的操作而向个子窗 口发送***消息, 进而用户对" 070C"的操作也处于永远的等待状态, 于是 "070C"窗口也没有反应了。 基于同样的道理, 也无法完成对 "0774"的操作。 总 之, 基于" Afx:400000:2008:10011 :0:0,,窗口和 "05B6,,、 "070C,,、 "0774"三个页 面 窗 口 之 间 的 父子 关 系 , 要完 成对 页 面 窗 口 的 操作 需要 "Afx:400000:2008:10011 :0:0"窗口向各子窗口以阻塞方式发送***消息, 因此, 导致一个页面窗口发生假死会直接影响其他页面窗口也无法操作。
如果 Windows 自身所有的***消息都是通过非阻塞方式来实现的, 那么 一个应用程序很自然就能做到防假死了,只要把不同的窗口放到不同的线程中 即可。但是如前文所述, 实际上并不是这样,只有一些外设消息、绘图消息(例 如鼠标、 键盘等, 以及绘图消息 WM_PAINT、 WM_NCPAINT等)等消息是 通过非阻塞方式来发送的,其他的***消息(例如改变大小的通知 WM_SIZE、 改变位置的通知 WM_POSCHANGING、 WM POSCHANGED等)均是通过阻 塞方式完成的。
£设窗口 B已经 £死, 如果线程 A以非阻塞方式向窗口 B 发送消息, 则 线程 A的执行不会受影响 (只不过是消息没有被及时处理而已), 但是此时若 线程 A向窗口 B发送了***消息(***消息一般是通过阻塞方式发送的), 则 线程 A也会随之假死。 由于这些***消息是 windows内部实现的, 故无法通 过修改第三方应用程序 (如浏览器) 来避免假死的传递。
可见, 在多标签应用程序中进行用户消息的交互时, 通常会产生如下*** 消息, 并且是需要通过阻塞方式发送的:
一个父窗口下面有一个或多个子窗口, 当这个父窗口获得焦点(例如, 通 过操作使浏览器的主框架窗口成为当前的活动窗口)时, ***会以阻塞方式向 各个子窗口发送" WM_CHILD ACTIVATE"消息。
需要说明的是, 在一些操作***中 (如 Windows操作***), 还可能存在 以下情况: 多个顶层窗口 (A、 B、 C... )有一个共同的"所有者 (Owner ) "窗 口 0。 当某个顶层窗口 A的大小或显示状态发生变化时, 所有者窗口 O会以 阻塞方式向其他顶层窗口 ( B、 C... ) 发送 WM POSCHANGING 和 WM_POSCHANGED消息。 当然, 在其他操作***中可能不存在这种情况。
从上述分析可以看出 ,造成一个窗口假死便导致整个浏览器无法正常运行 的根本原因在于: 各个标签所在的页面窗口具有一个共同的父窗口, 各页面窗 口在响应用户的输入信息的同时, 该父窗口会向各个页面窗口发送(以阻塞方 式) ***消息, 只有各条消息均能正常被处理时, 才能完成用户信息的交互。 因此, 如果某页面窗口 A发生假死, 则其父窗口向其发送***消息时, 将无 法向父窗口返回响应消息,使得父窗口一直处于等待状态; 此时如果需要对其 他页面窗口进行操作, 该父窗口也无法响应, 因此无法完成对其他页面窗口的 操作, 甚至导致整个应用程序无法正常运行。
此外,在图 3所示的例子中,各个页面窗口是" Afx:400000:2008:10011 :0:0" 的子窗口, 而" Afx:400000:2008: 10011 :0:0"又是主框架窗口的子窗口, 因此, 在该例子中, 主框架窗口与页面窗口之间并不是直接的父子关系。 而在实际应 用中, 本领域技术人员知道, 基于不同的多标签应用程序设计不尽不同, 因此 还可能存在页面窗口直接作为主框架窗口的子窗口的情况(即两者之间是直接 的父子关系), 甚至还可能存在页面窗口与主框架窗口之间包括多层窗口的情 况, 等等。 但无论是哪种情况, 页面窗口都是有父窗口的, 其父窗口又必然会 以阻塞方式向其发送***消息, 因此, 都会存在假死传递的现象。
然而实际上,该父窗口以阻塞方式向各页面窗口发送的***消息可能并没 有实际的意义(操作***可能会用到这个消息, 但是应用程序不会用到, 也可 以理解为, 即使 Windows不发送这个消息, 程序也能够正常运行), 各页面窗 口接收到该父窗口的消息时, 只需要返回响应消息, 无须进行其他的处理。 也 就是说, 实际上如果该父窗口没有向各页面窗口发送***消息, 当前展现的页 面窗口还是可以处理用户输入信息的。
因此,本发明实施例将多标签应用程序中各标签对应的页面窗口创建为与 应用程序的主框架窗口平级的顶层窗口, 这样,便不会有父窗口以阻塞方式向 这些页面窗口发送***消息; 当然, 在 Windows等操作***中, 各个页面窗 口还可能会具有一个共同的所有者,该所有者也可能会向页面窗口发生***消 息, 因此, 为了避免所有者窗口向各个页面窗口发送***消息, 还需要将所述 顶层窗口的所有者置为空。
这样, 从窗口结构上看, 由以前的一个应用程序对应一棵树, 变为一个应 用程序对应多棵树 (树的数目由应用程序中标签的数目决定), 窗口结构如图
4 所示, 为本发明实施例建立的多标签浏览器的窗口结构示意图, 其中,
SE_AxControl 为每个标签对应的页面窗口。 可以看出, 这种结构使得标签对 应的页面窗口不再有父窗口 (或者说父窗口为桌面), 在响应用户输入信息时 也就不再有父窗口向各个页面窗口发送消息, 各个页面窗口之间相互独立, 因 此, 在响应用户输入信息的过程中, 即使某个页面窗口出现了假死, 其他各页 面窗口也不会受到影响, 用户可以继续浏览其他页面窗口, 还可以将该出现^叚 死的页面窗口关闭或进行重新加载。
由此可见,虽然原来主框架窗口与页面窗口之间的关系可能存在多种情况 (直接的父子关系或者中间又嵌套着多层窗口), 但只要釆用本发明实施例的 技术方案 (将页面窗口创建为顶层窗口), 那么就都不存在一个父窗口向作为 其子窗口的各页面窗口发送***消息的情况了,进而从根本上解决了基于操作 ***需求而存在的***消息传输导致的假死传递问题。
例如,在图 4所示的窗口结构中(为清楚起见,下面分别用 "09C6"、 "0A6E"、 "097E"来代表页面窗口" Window 01F609C6 " " SE_AxControl"、 "Window 01D50A6E " " SE_AxControl'\ "Window 0109097E " " SE_AxControl" ),假设 当前展现的标签对应的页面窗口是" 09C6" ,用户通过某种操作 (例如用户用鼠 标点击浏览器的标题栏 )使浏览器的主框架窗口成为当前的活动窗口, 则可以 利用主框架窗口 "SE_SogouExploreFrame"向" 09C6"页面窗口发送相应的消息, 然后便可以直接进行相关的操作了, 在此期间不会产生***消息, 也就是说, 由于各页面窗口 ( "09C6,,、 "0A6E,,、 "097E" ) 没有父窗口, 而且各页面窗口 的所有者也可以设为空,因此在此期间浏览器主框架窗口所在线程也不会向各 个页面窗口发送任何***消息。
此时,如果当前展现的" 09C6"发生假死, 由于不存在一个" 09C6"、 "0A6E" 和" 097E"共同的父窗口需要向这几个页面窗口以阻塞的方式发送***消息来 协助完成对页面窗口的操作, 进而, 也不存在一个 "09C6"、 "0A6E"和" 097E" 共同的父窗口由于" 09C6"无法给它响应导致自己无法处理其他***消息, 因 此, 当 用 户 还要对 "070C"进行操作时 , 只 需要由主框架窗 口 "SE— SogouExploreFrame"将输入消息发送到 "070C" , 即可完成对" 070C"的操 作,而不涉及某个父窗口向作为其子窗口的各页面窗口以阻塞方式发送***消 息来完成对页面窗口操作的问题。 基于同样的道理, 也可以完成对 "0774"的操 作。 由此可见, 采用本发明实施例的技术方案, 不会造成假死的传递, 整个应 用程序不会受到影响。
值得注意的是, 在本发明实施例中, 各种输入消息的交互既可以釆用非阻 塞方式, 也可以采用阻塞方式进行。 当然, 如果采用非阻塞方式, 可以使主框 架窗口向页面窗口发送消息时, 不必等待该窗口处理完该消息便可以返回, 并 处理其他页面窗口的消息, 效果会更佳。 本领域技术人员知道, 主框架窗口采 用何种方式向页面窗口发送消息、以及发生什么消息等都是可以由多标签应用 程序自己控制的, 换而言之, 这是可以通过修改第三方应用程序 (如浏览器) 来实现的。 而前面提及的很多情况下, 父窗口向子窗口 (现有技术中的页面窗 口) 以阻塞方式发送***消息是受 Windows操作***控制, 而不受第三方应 用程序(浏览器)控制, 因此无法通过修改第三方应用程序来改变***消息的 发送方式,这也就成为解决页面假死传递最难的问题。本发明实施例另辟蹊径, 采用将原来以子窗口形式存在的页面窗口修改为顶层窗口,从而使得各页面窗 口根本没有父窗口, 进而也就自然不存在 Windows操作***要求的某个父窗 口向各页面窗口发送***消息的情况了, 从而最终解决了页面假死传递的问 题。
如前文所述可知, 如果两个或多个窗口属于同一线程, 那么无论是釆用阻 塞方式还是非阻塞方式均还是有可能导致假死传递。因此,在本发明实施例中, 为了获得更好的防假死效果, 还可以使不同的窗口属于不同的线程(例如, 不 同的页面窗口属于不同的线程, 和 /或, 主框架窗口和页面窗口属于不同的线 程), 以此来进一步减少假死传递情况的发生。 当然, 有些多标签应用程序本 身就是多线程的,即不同的页面窗口、主框架窗口本身就是由不同线程创建的, 所以, 对于这种多标签应用程序, 就无需再进行与线程相关的改进了。
另外, 如果判定某页面窗口发生假死, 还可以向用户给出提示信息(告知 用户该页面窗口发生假死了, 提醒用户进行关闭或重新加载等操作, 参见图 5 )。 可见, 本发明实施例有效地提升了用户的体验。
关于如何判定页面窗口是否发生假死, 可以采用一些变通的方法进行检 测 , 比如在一段时间内 (例如 5秒), 这个页面窗口没有处理任何发送给它的 消息, 则认为该页面窗口可能发生假死, 等等。 需要说明的是, 实际上可能无 法准确检测页面窗口是否发生假死(这一点连 Windows自身也无法完成), 故 可能会造成一定的误判。
关于在主框架窗口与页面窗口之间进行消息交互的具体实现,需要注意的 是: 主框架窗口与标签对应的页面窗口之间具有一定的对应关系,根据这种对 应关系才能最终实现主框架窗口与页面窗口之间的通讯, 完成与用户信息交 互。在类似遨游洌览器那种传统窗口结构中, Windows可以自动建立这种对应 关系, 在主框架窗口只要用一个***函数(例如 GetWindow(CHILD) )就可以 得到页面窗口, 并向页面窗口发送消息。 而本发明实施例中打破了这种传统的窗口结构, Windows***可能无法自 动建立起主框架窗口与页面窗口之间的对应关系,进而就没有函数来调用来获 得页面窗口了。 在上述这种情况下, 为了实现主框架窗口与页面窗口之间的正 常通讯, 本发明实施例可以采用如下方式: 在将标签对应的页面窗口创建为顶 层窗口时, 建立主框架窗口与页面窗口之间的对应关系, 并将这种对应关系保 存,这样主框架窗口在接收到用户的消息后便可以根据预先保存的对应关系找 到相应的页面窗口, 并向页面窗口发送消息了, 所述消息可以是以非阻塞的消 息发送方式进行发送。然后,页面窗口根据所述接收到的消息执行相应的操作, 其中, 所述操作可以包括窗口的缩放、 切换或查看等等。 当然, 也不排除将来 的 Windows***或者其他操作***, 在采用本发明实施例所述的窗口结构下, 能够自动建立起主框架窗口与页面窗口之间的对应关系。
在本发明实施例中,可以根据实际需要随时将标签对应的页面窗口创建为 顶层窗口, 一种优选的方式是, 可以在创建新标签的同时, 就将该标签对应的 页面窗口创建为顶层窗口。 其中, 对于多标签网页浏览器, 所述创建新标签可 以包括以下两种: 一种是用户在标签栏釆用双击等的方式建立新的标签, 此时 标签对应的页面窗口可能为空白;另一种是在新标签对应的页面窗口中打开某 网页, 此时通常是在当前展现的页面中点击链接等方式, 浏览器会自动建立新 的标签。 在多标签文本编辑器中, 这种方式的意义凸显。 以 excel为例, 页面 窗口发生假死的情况不仅会发生在进行文本编辑的过程中,还可能出现在打开 excel文本的过程中, 如果在打开某 excel文本时, 其中一个标签对应的页面窗 口发生了假死, 如果标签对应的页面窗口没有创建成顶层窗口, 则可能会导致 无法查看其他没有发生假死的页面窗口中的数据。 因此, 在创建新标签时就将 其对应的页面窗口创建为顶层窗口, 可以避免这种情况的发生。
需要说明的是, 在本发明实施例的方法中, 主框架窗口与标签对应的页面 窗口是相互独立的, 而不是像传统结构中那样, 标签对应的页面窗口是主框架 窗口的某个子窗口的子窗口。如果不进行必要的设置, 主框架窗口与页面窗口 的大小以及出现的位置可以是任意的。 但是为了使用户获得更好的视觉效果, 可以将标签对应的页面窗口的位置及大小进行适应性的调整,使其与主框架窗 口的位置及大小相匹配。 也就是说, 最终呈现在用户面前的界面可能与遨游等 浏览器并没有区别, 但是实际上该界面并不是一个整体, 而是拼接在一起的。 可以将本发明实施例提供给用户的界面称为"异步用户界面 ( User Interface, UI ) "。 这种用户界面可以避免一个标签页面^ 导致浏览器框架或其他标签 页面也无法操作的现象。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可 读取存储介质中, 该程序在执行时, 包括如下步骤: 将多标签应用程序中标签 对应的页面窗口创建为顶层窗口; 在所述多标签应用程序中进行消息的交互。 所述的存储介质, 如: ROM/RAM、 磁碟、 光盘等。
与本发明实施例提供的实现多标签应用程序中进行消息交互的方法相对 应, 本发明实施例还提供了一种实现多标签应用程序中进行消息交互的***, 参见图 6 , 该***包括以下模块:
窗口管理模块 U601, 用于将多标签应用程序中标签对应的页面窗口创建 为顶层窗口; 根据前述方法实施例的介绍可知, 多标签应用程序的主框架窗口 也是顶层窗口, 因此在将页面窗口创建为顶层窗口后, 页面窗口就和主框架窗 口平级了, 都是顶层窗口。
消息交互模块 U602, 用于在所述顶层窗口中进行用户消息的交互, 也就 是进行与所述页面窗口有关的消息交互,比如应用程序主框架窗口与作为顶层 窗口的页面窗口之间的消息交互等等。
其中, 窗口管理模块 U601将多标签应用程序中标签对应的页面窗口创建 为顶层窗口, 并在所述多标签应用程序中进行消息的交互。 可以使得各标签对 应的页面窗口没有父窗口, 因此当响应消息时, 不会有父窗口向各个页面窗口 以阻塞方式发送***消息, 这样, 即使有某个页面窗口发生假死, 其他页面窗 口也不会受到影响, 从而提升了用户的体验。
其中, 在 Windows等操作***中, 为了避免顶层窗口的所有者窗口向各 页面窗口发送消息, 窗口管理模块 U601可以将多标签应用程序中标签对应的 页面窗口创建为所有者为空的顶层窗口。 需要说明的是, 在非 Windows操作 ***中,有可能涉及不到所有者为空的情况, 只需要将多标签应用程序中标签 对应的页面窗口创建为顶层窗口, 就可以达到在用户对某个页面窗口操作时, 不存在某个父窗口需要向作为其子窗口的各页面窗口以阻塞方式发送***消 息的目的, 进而达到降低 ^^死传递出现的概率的目的。
与前述方法实施例相对应, 为了进一步减少假死传递情况的发生, 消息交 互模块 U602具体可以用于多标签应用程序的主框架窗口采用非阻塞的方式向 页面窗口发送消息。
在本发明实施例所建立的窗口结构下响应消息的过程中,也可以是通过主 框架窗口向各个标签对应的页面窗口发送消息,进而由各页面窗口执行相应的 操作, 这就需要主框架窗口与页面窗口之间具有对应关系。但是由于按照上述 方法创建的窗口结构打破了传统的模式, ***无法自动建立起窗口之间的关 系, 因此, 需要在创建所述顶层窗口时, 建立起主框架窗口与页面窗口之间的 对应关系, 并进行保存。 为此, 消息交互模块 U602可以包括以下子模块: 对应关系保存子模块 U6021 ,用于建立并保存所述多标签应用程序的主框 架窗口与所述页面窗口的对应关系;
通讯子模块 U6022,用于触发所述主框架窗口将消息发送到相应的标签对 应的顶层窗口, 并触发该顶层窗口执行与所接收到的消息对应的操作。 为了使 最终呈现出的界面更加符合用户的使用习惯, 该***还可以包括:
窗口调整模块 U603 , 用于调整所述页面窗口的位置及大小, 以使所述页 面窗口与所述主框架窗口的位置及大小相匹配。
另外, 该***还可以包括:
提示模块 U604, 用于当某标签对应的页面窗口发生假死时, 向用户发出 提示信息。 包括提示用户关闭该窗口或进行重新加载, 等等。
在本发明的优选实施例中, 可以在建立新标签, 例如创建新的空白页或在 新窗口中打开等的同时, 将所述新标签对应的页面窗口创建为顶层窗口。 这种 方式对于多标签文本编辑器尤为有利,可以避免在打开文件的过程中某页面发 生假死造成整个文件无法正常打开。 当然, 也可以在根据实际需要随时将标签 对应的页面窗口创建为顶层窗口, 例如当打开了较多的页面窗口时进行创建。
与前述方法实施例相对应, 为了进一步减少假死传递情况的发生, 该*** 还可以包括:
第一创建模块,用于在不同的线程中创建所述多标签应用程序中不同标签 对应的页面窗口, 由于在哪个线程中创建窗口,该窗口就属于哪个线程, 因此, 利用该多线程创建模块,可以使得多标签应用程序中不同标签对应的页面窗口 属于不同的线程。
另外, 由于具体在进行消息交互时, 多标签应用程序的主框架窗口可能需 要向各个作为顶层窗口的页面窗口发送消息, 如前述方法实施例所述, 如果主 框架窗口与页面窗口属于同一线程,则无论以阻塞方式还是非阻塞方式发送消 息, 都还是可能造成主框架窗口和页面窗口之间发生假死传递的, 因此, 优选 的, 该***还可以包括:
第二创建模块,用于在不同的线程中创建所述多标签应用程序的主框架窗 口及标签对应的页面窗口。 即, 多标签应用程序的主框架窗口与各个页面窗口 也属于不同的线程。 这样, 如果主框架窗口需要向页面窗口发送消息, 由于两 者不在同一线程, 因此, 只要以非阻塞方式发送, 就不会造成假死传递现象的 发生了。
以上对本发明所提供的一种实现多标签应用程序中进行消息交互的方法 及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进 行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时, 对于本领域的一般技术人员, 依据本发明的思想, 在具体实施方式及应 用范围上均会有改变之处。 综上所述, 本说明书内容不应理解为对本发明的限 制。

Claims (22)

  1. 权 利 要 求
    1、 一种实现多标签应用程序中进行消息交互的方法, 其特征在于, 包括: 将多标签应用程序中标签对应的页面窗口创建为顶层窗口;
    进行与所述页面窗口有关的消息交互。
  2. 2、 根据权利要求 1所述的方法, 其特征在于, 所述将多标签应用程序中 标签对应的页面窗口创建为顶层窗口包括:
    将所述多标签应用程序中各标签对应的页面窗口创建为与所述多标签应 用程序的主框架窗口平级的顶层窗口。
  3. 3、 根据权利要求 1所述的方法, 其特征在于, 所述进行与所述页面窗口 有关的消息交互包括:
    所述多标签应用程序的主框架窗口以非阻塞的方式向所述页面窗口发送 消息。
  4. 4、 根据权利要求 3所述的方法, 其特征在于, 所述非阻塞的方式包括: 异步的消息发送方式或带超时机制的同步的消息发送方式。
  5. 5、 根据权利要求 1所述的方法, 其特征在于, 所述进行与所述页面窗口 有关的消息交互包括:建立并保存所述多标签应用程序的主框架窗口与所述页 面窗口的对应关系;
    根据所述主框架窗口与所述页面窗口的对应关系,所述主框架窗口向对应 的页面窗口发送消息;
    触发所述页面窗口执行与所接收到的消息对应的操作。
  6. 6、 根据权利要求 1至 5中任一项所述的方法, 其特征在于, 所述方法还 包括:
    调整所述页面窗口的位置及大小,以使所述页面窗口与所述多标签应用程 序的主框架窗口的位置及大小相适应。
  7. 7、 根据权利要求 1至 5中任一项所述的方法, 其特征在于, 还包括: 如果判定某标签对应的页面窗口发生假死, 则向用户发出提示信息。
  8. 8、 根据权利要求 1至 5中任一项所述的方法, 其特征在于, 所述将多标 签应用程序中标签对应的页面窗口创建为顶层窗口包括:
    在多标签应用程序中建立新标签的同时,将所述新标签对应的页面窗口创 建为顶层窗口。
  9. 9、 根据权利要求 1至 5中任意一项所述的方法, 其特征在于, 所述多标 签应用程序包括多标签网页浏览器或多标签文档编辑器或多标签阅读器。
  10. 10、 根据权利要求 1至 5中任一项所述的方法, 其特征在于, 还包括: 所述多标签应用程序中不同标签对应的页面窗口属于不同的线程; 和 /或,
    所述多标签应用程序的主框架窗口与标签对应的页面窗口属于不同的线 程。
  11. 11、 根据权利要求 1至 5中任一项所述的方法, 其特征在于, 所述将多标 签应用程序中标签对应的页面窗口创建为顶层窗口包括:
    将多标签应用程序中标签对应的页面窗口创建为所有者为空的顶层窗口。
  12. 12、一种实现多标签应用程序中进行消息交互的***,其特征在于, 包括: 窗口管理模块,用于将多标签应用程序中标签对应的页面窗口创建为顶层 窗口;
    消息交互模块, 用于进行与所述页面窗口有关的消息交互。
  13. 13、 根据权利要求 12所述的***, 其特征在于, 所述窗口管理模块具体 用于,将所述多标签应用程序中各标签对应的页面窗口创建为与所述多标签应 用程序的主框架窗口平级的顶层窗口。
  14. 14、 根据权利要求 12所述的***, 其特征在于, 所述消息交互模块, 具 体用于所述多标签应用程序的主框架窗口以非阻塞的方式向所述页面窗口发 送消息。
  15. 15、 根据权利要求 12所述的***, 其特征在于, 所述消息交互模块包括: 对应关系保存子模块,用于建立并保存所述多标签应用程序的主框架窗口 与所述页面窗口的对应关系;
    通讯子模块, 用于根据所述主框架窗口与所述页面窗口的对应关系, 所述 主框架窗口向对应的页面窗口发送消息,并触发所述页面窗口执行与所接收到 的消息对应的操作。
  16. 16、 根据权利要求 12至 15任一项所述的***, 其特征在于, 还包括: 窗口调整模块, 用于调整所述页面窗口的位置及大小, 以使所述页面窗口 与所述多标签应用程序的主框架窗口的位置及大小相匹配。
  17. 17、 根据权利要求 12至 15任一项所述的***, 其特征在于, 还包括: 提示模块, 用于页面窗口发生假死时, 向用户发出提示信息。
  18. 18、 根据权利要求 12至 15任一项所述的***, 其特征在于, 所述窗口管 理模块具体用于在多标签应用程序中建立新标签的同时,将所述新标签对应的 页面窗口创建为顶层窗口。
  19. 19、 根据权利要求 12至 15任一项所述的***, 其特征在于, 所述多标签 应用程序包括多标签网页浏览器或多标签文档编辑器或多标签阅读器。
  20. 20、 根据权利要求 12至 15任一项所述的***, 其特征在于, 还包括: 第一创建模块,用于在不同的线程中创建所述多标签应用程序中不同标签 对应的页面窗口;
    和 /或,
    第二创建模块,用于在不同的线程中创建所述多标签应用程序的主框架窗 口及标签对应的页面窗口。
  21. 21、 根据权利要求 12至 15任一项所述的***, 其特征在于, 所述窗口管 理模块具体用于将多标签应用程序中标签对应的页面窗口创建为所有者为空 的顶层窗口。
  22. 22、 一种计算机可读存储介质, 其特征在于, 包括计算机程序代码, 该计 算机程序代码由一个计算机单元执行, 使得该计算机单元:
    将多标签应用程序中标签对应的页面窗口创建为顶层窗口;
    进行与所述页面窗口有关的消息交互。
CN2010800053390A 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及*** Active CN102356391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010800053390A CN102356391B (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及***

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN200910077869.5 2009-01-23
CN2009100778695A CN101504658B (zh) 2009-01-23 2009-01-23 一种实现多标签应用程序中进行消息交互的方法及***
CN2010800053390A CN102356391B (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及***
PCT/CN2010/070326 WO2010083772A1 (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及***

Publications (2)

Publication Number Publication Date
CN102356391A true CN102356391A (zh) 2012-02-15
CN102356391B CN102356391B (zh) 2013-12-04

Family

ID=40976904

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2009100778695A Active CN101504658B (zh) 2009-01-23 2009-01-23 一种实现多标签应用程序中进行消息交互的方法及***
CN2010800053390A Active CN102356391B (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及***

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2009100778695A Active CN101504658B (zh) 2009-01-23 2009-01-23 一种实现多标签应用程序中进行消息交互的方法及***

Country Status (6)

Country Link
US (1) US8887082B2 (zh)
EP (1) EP2390796A4 (zh)
JP (1) JP2012515961A (zh)
CN (2) CN101504658B (zh)
RU (1) RU2490693C2 (zh)
WO (1) WO2010083772A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377228A (zh) * 2012-04-25 2013-10-30 阿里巴巴集团控股有限公司 一种用于浏览器的页面内容呈现方法及装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504658B (zh) * 2009-01-23 2011-09-28 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及***
CN101609470B (zh) * 2009-07-02 2011-08-10 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置
CN102141893B (zh) * 2011-05-11 2012-09-05 清华大学 面向大幅面交互式桌面的多用户窗口***
US20130031490A1 (en) * 2011-07-26 2013-01-31 Microsoft Corporation On-demand tab rehydration
CN102521026A (zh) * 2011-11-30 2012-06-27 深圳市万兴软件有限公司 一种实现与iTunes交互的方法和电子设备
CN104035815B (zh) * 2011-12-29 2017-12-12 北京奇虎科技有限公司 一种窗口防假死方法和装置
CN102591711B (zh) * 2011-12-29 2014-06-25 奇智软件(北京)有限公司 一种窗口防假死方法和装置
CN103246505B (zh) * 2012-02-13 2017-11-10 腾讯科技(深圳)有限公司 一种窗体标题栏的创建方法及装置
CN103246552B (zh) * 2012-02-14 2018-03-09 腾讯科技(深圳)有限公司 防止线程出现阻塞的方法和装置
CN102915251B (zh) * 2012-03-08 2014-06-18 北京金山安全软件有限公司 一种多页面浏览器处理消息的方法和装置
CN103034695A (zh) * 2012-12-03 2013-04-10 北京奇虎科技有限公司 浏览器中进行声音控制的方法及装置
CN104899088B (zh) * 2014-03-03 2019-04-12 腾讯科技(深圳)有限公司 一种消息处理方法及装置
CN104252538B (zh) * 2014-09-22 2018-10-12 可牛网络技术(北京)有限公司 网页处理方法和装置
CN105677658B (zh) * 2014-11-19 2020-07-28 阿里巴巴集团控股有限公司 页面展现方法及装置
CN104572271B (zh) * 2015-02-04 2018-04-13 北京瑞星网安技术股份有限公司 多标签页浏览器防假死的方法和***
CN106708613B (zh) * 2016-05-05 2019-09-17 腾讯科技(深圳)有限公司 一种输入控制灵敏度的检测方法及检测装置
CN107368357B (zh) * 2016-05-11 2020-10-09 上海高欣计算机***有限公司 资源管理窗口的多标签显示方法及模块
US10769233B2 (en) 2017-06-13 2020-09-08 Open Text Corporation Systems and methods for communication across multiple browser pages for an application
CN109992324B (zh) * 2017-12-29 2022-11-04 Oppo广东移动通信有限公司 应用程序冻结方法、装置、存储介质和终端
CN110781009A (zh) * 2018-07-30 2020-02-11 北京京东尚科信息技术有限公司 浏览器页面实时通信的方法及装置
US11036365B2 (en) * 2019-06-07 2021-06-15 Microsoft Technology Licensing, Llc Hang condition mitigation for browser applications
CN112446654A (zh) * 2019-08-29 2021-03-05 北京京东尚科信息技术有限公司 地图显示方法、装置、设备和存储介质
CN115344168A (zh) * 2021-05-13 2022-11-15 荣耀终端有限公司 消息展示方法、终端及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271858A1 (en) * 2005-05-24 2006-11-30 Yolleck Stephen M Methods and systems for operating multiple web pages in a single window
CN101299220A (zh) * 2008-06-24 2008-11-05 腾讯科技(深圳)有限公司 多页面浏览器窗口拆分方法、合并方法和多页面浏览器
CN101504658A (zh) * 2009-01-23 2009-08-12 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及***
CN101609470A (zh) * 2009-07-02 2009-12-23 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049812A (en) * 1996-11-18 2000-04-11 International Business Machines Corp. Browser and plural active URL manager for network computers
US6232971B1 (en) * 1998-09-23 2001-05-15 International Business Machines Corporation Variable modality child windows
US6489975B1 (en) * 1998-12-14 2002-12-03 International Business Machines Corporation System and method for improved navigation between open windows in an application program using window tabs
US6356908B1 (en) * 1999-07-30 2002-03-12 International Business Machines Corporation Automatic web page thumbnail generation
US6801227B2 (en) * 2001-01-16 2004-10-05 Siemens Medical Solutions Health Services Inc. System and user interface supporting user navigation and concurrent application operation
US6981223B2 (en) * 2001-03-19 2005-12-27 Ecrio, Inc. Method, apparatus and computer readable medium for multiple messaging session management with a graphical user interface
CN100433006C (zh) * 2001-03-26 2008-11-12 腾讯科技(深圳)有限公司 在浏览器的单一窗口中显示多个网页的方法和浏览***
US20030097640A1 (en) * 2001-07-25 2003-05-22 International Business Machines Corporation System and method for creating and editing documents
WO2003040955A1 (en) 2001-11-06 2003-05-15 Farooq Khan Method and apparatus for capturing and displaying web page information
GB0203617D0 (en) * 2002-02-15 2002-04-03 Ibm Application window closure in response to event in parent window
US7177815B2 (en) * 2002-07-05 2007-02-13 At&T Corp. System and method of context-sensitive help for multi-modal dialog systems
US7487460B2 (en) * 2003-03-21 2009-02-03 Microsoft Corporation Interface for presenting data representations in a screen-area inset
US7921365B2 (en) * 2005-02-15 2011-04-05 Microsoft Corporation System and method for browsing tabbed-heterogeneous windows
US7596760B2 (en) * 2005-04-07 2009-09-29 Microsoft Corporation System and method for selecting a tab within a tabbed browser
US7673255B2 (en) * 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US20070073697A1 (en) * 2005-06-20 2007-03-29 Woods Michael E System, Method, and Computer Program Product for Internet Tool
US9195372B2 (en) * 2006-06-28 2015-11-24 Scenera Technologies, Llc Methods, systems, and computer program products for grouping tabbed portion of a display object based on content relationships and user interaction levels
US7793226B2 (en) * 2006-08-14 2010-09-07 International Business Machines Corporation Method and system for grouping and stacking tab user interface objects with icon status indicators
US8595635B2 (en) * 2007-01-25 2013-11-26 Salesforce.Com, Inc. System, method and apparatus for selecting content from web sources and posting content to web logs
CN101072263A (zh) 2007-03-30 2007-11-14 腾讯科技(深圳)有限公司 一种在网络上发起voip呼叫的方法及***
KR100844070B1 (ko) * 2007-05-09 2008-07-07 엘지전자 주식회사 탭브라우징 이동통신 단말기 및 그 제어방법
CN100570610C (zh) * 2007-12-07 2009-12-16 腾讯科技(深圳)有限公司 多页面浏览器网页子窗口处理方法及多页面浏览器
US20090287559A1 (en) * 2007-12-20 2009-11-19 Michael Chen TabTab
CN101179474B (zh) 2007-12-21 2012-02-01 深圳市迅雷网络技术有限公司 一种下载方法、***及装置
US20090193358A1 (en) * 2008-01-30 2009-07-30 Intuit Inc. Method and apparatus for facilitating information access during a modal operation
US8631340B2 (en) * 2008-06-25 2014-01-14 Microsoft Corporation Tab management in a user interface window
US8819585B2 (en) * 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271858A1 (en) * 2005-05-24 2006-11-30 Yolleck Stephen M Methods and systems for operating multiple web pages in a single window
CN101299220A (zh) * 2008-06-24 2008-11-05 腾讯科技(深圳)有限公司 多页面浏览器窗口拆分方法、合并方法和多页面浏览器
CN101504658A (zh) * 2009-01-23 2009-08-12 北京搜狗科技发展有限公司 一种实现多标签应用程序中进行消息交互的方法及***
CN101609470A (zh) * 2009-07-02 2009-12-23 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377228A (zh) * 2012-04-25 2013-10-30 阿里巴巴集团控股有限公司 一种用于浏览器的页面内容呈现方法及装置
CN103377228B (zh) * 2012-04-25 2016-09-07 阿里巴巴集团控股有限公司 一种用于浏览器的页面内容呈现方法及装置

Also Published As

Publication number Publication date
RU2490693C2 (ru) 2013-08-20
WO2010083772A1 (zh) 2010-07-29
CN101504658A (zh) 2009-08-12
CN101504658B (zh) 2011-09-28
CN102356391B (zh) 2013-12-04
US20110276899A1 (en) 2011-11-10
JP2012515961A (ja) 2012-07-12
US8887082B2 (en) 2014-11-11
RU2011134656A (ru) 2013-02-27
EP2390796A1 (en) 2011-11-30
EP2390796A4 (en) 2014-09-03

Similar Documents

Publication Publication Date Title
CN102356391A (zh) 一种实现多标签应用程序中进行消息交互的方法及***
US10248294B2 (en) Modal-less interface enhancements
US9659279B2 (en) Method and system for enhanced inferred mode user interface operations
US10162511B2 (en) Self-revelation aids for interfaces
US7966558B2 (en) Snipping tool
US7272818B2 (en) Creation of an object within an object hierarchy structure
US7673251B1 (en) Panel presentation
EP2325835B1 (en) Graduated visual translucency for windows displayed on screen
US20070139430A1 (en) Rendering "gadgets" with a browser
US10296570B2 (en) Reflow narrative text objects in a document having text objects and graphical objects, wherein text object are classified as either narrative text object or annotative text object based on the distance from a left edge of a canvas of display
CN106484266A (zh) 一种文本处理方法及装置
US20150121202A1 (en) System and method for transmitting mixed content type messages
US20150121179A1 (en) System and method for creating graphically rich messages incorporating shared docments
US20150121203A1 (en) System and method for generating uniform format pages for a system for composing messages
KR20150048907A (ko) 동적 콘텐츠를 이용하여 줌 인 및 줌 아웃하기 위한 기법
US20150205454A1 (en) Systems and methods for displaying preview data
CN101882007A (zh) 一种基于输入界面进行信息输入和执行的方法、装置
US20230214094A1 (en) Methods and apparatus for related search within a browser
CN107430597A (zh) 文本选择控件的增强
CN111985183A (zh) 文字输入方法、装置及电子设备
CN105224552A (zh) 网络信息的处理方法、装置、和***
US20040201599A1 (en) System and method for displaying content without control items
US12019851B2 (en) Drawer page overlay for multitasking
CN118132699A (zh) 回复信息生成方法、装置、客户端和存储介质
CN118414612A (zh) 用于浏览器内的相关搜索的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant