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

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

Info

Publication number
WO2010083772A1
WO2010083772A1 PCT/CN2010/070326 CN2010070326W WO2010083772A1 WO 2010083772 A1 WO2010083772 A1 WO 2010083772A1 CN 2010070326 W CN2010070326 W CN 2010070326W WO 2010083772 A1 WO2010083772 A1 WO 2010083772A1
Authority
WO
WIPO (PCT)
Prior art keywords
window
page
label
message
application
Prior art date
Application number
PCT/CN2010/070326
Other languages
English (en)
French (fr)
Inventor
李子拓
Original Assignee
北京搜狗科技发展有限公司
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 北京搜狗科技发展有限公司 filed Critical 北京搜狗科技发展有限公司
Priority to JP2011546578A priority Critical patent/JP2012515961A/ja
Priority to RU2011134656/08A priority patent/RU2490693C2/ru
Priority to EP10733245.4A priority patent/EP2390796A4/en
Priority to CN2010800053390A priority patent/CN102356391B/zh
Publication of WO2010083772A1 publication Critical patent/WO2010083772A1/zh
Priority to US13/186,573 priority patent/US8887082B2/en

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

Definitions

  • the present invention relates to the field of multi-tag application technologies, and in particular, to a method and system for implementing message interaction in a multi-tag application.
  • the browser is the most commonly used portal for users to access the Internet. In many cases, users want to be able to pay attention to many web pages at the same time, but the size of the screen is limited, so a multi-tab browser appears.
  • each tag corresponds to a web page. Users can only focus on the content of one web page at a specific time. When they want to pay attention to the content of other web pages, they only need to switch tabs.
  • this multi-tab browser can provide convenience for users to view web pages, there are often cases where the page is suspended (that is, the user cannot operate the webpage, such as scrolling a page, clicking a link, etc.), that is, when a page window is suspended, Other page windows will also be in a suspended state. For example, a user opens 10 pages, and the current page is the sohu home page. If the user suddenly browses the page and the page suddenly dies, then the other 9 pages cannot be operated. At this point, the user has to cancel the browsing of the other 9 pages, end the browser process, then restart the browser, and then re-open these 9 pages to continue browsing. Summary of the invention
  • the embodiment of the present invention provides the following solutions:
  • a method for implementing message interaction in a multi-label application including:
  • the creating a page window corresponding to the label in the multi-label application as a top-level window includes:
  • a page window corresponding to each tag in the multi-label application is created as a top-level window that is level with the main frame window of the multi-label application.
  • the performing the message interaction related to the page window includes:
  • the main frame window of the multi-tag application sends a message to the page window in a non-blocking manner.
  • the non-blocking manner includes: an asynchronous message sending manner or a synchronous message sending manner with a timeout mechanism.
  • the performing the message interaction related to the page window includes: establishing and saving a correspondence between the main frame window of the multi-label application and the page window;
  • main frame window sends a message to the corresponding page window according to the correspondence between the main frame window and the page window;
  • Triggering the page window performs an operation corresponding to the received message.
  • the method further includes:
  • the position and size of the page window are adjusted to match the position and size of the main frame window of the multi-label application.
  • it also includes:
  • the creating a page window corresponding to the label in the multi-label application as the top-level window includes:
  • the page window corresponding to the new tag is created as a top-level window.
  • the multi-tag application comprises a multi-tag web browser or a multi-tag document editor or a multi-tag reader.
  • the method further includes: the page window corresponding to the different tags in the multi-label application belongs to different threads.
  • the method further includes: the main frame window of the multi-label application and the page window corresponding to the label belong to different threads.
  • the creating a page window corresponding to the label in the multi-label application as the top-level window includes:
  • the present invention also provides a system for implementing message interaction in a multi-label application, comprising: a window management module, configured to create a page window corresponding to a label in a multi-label application as a top-level window;
  • a message interaction module configured to perform message interaction related to the page window.
  • the window management module is specifically configured to create a page window corresponding to each label in the multi-label application as a top-level window that is level with a main frame window of the multi-label application.
  • the message interaction module is specifically configured to send a message to the page window in a non-blocking manner by a main frame window of the multi-label application.
  • the message interaction module includes:
  • Corresponding relationship saving submodule configured to establish and save a correspondence between a main frame window of the multi-label application and the page window;
  • a communication submodule configured to send a message to the corresponding page window according to the correspondence between the main frame window and the page window, and trigger the page window to perform an operation corresponding to the received message .
  • it also includes:
  • a window adjustment module configured to adjust a position and a size of the page window to match the position and size of the main frame window of the multi-label application.
  • it also includes:
  • the prompt module is used to send a prompt message to the user when the page window is suspended.
  • the window management module is specifically configured to create a new label in the multi-label application, and create a page window corresponding to the new label as a top-level window.
  • the multi-tag application comprises a multi-tag web browser or a multi-tag document editor or a multi-tag reader.
  • it also includes:
  • the first creating module is configured to create a page window corresponding to different tags in the multi-label application in different threads.
  • it also includes:
  • a second creating module configured to create a main frame window of the multi-label application and a page window corresponding to the label in different threads.
  • the window management module is specifically configured to create a page window corresponding to the label in the multi-label application as a top-level window with an empty owner.
  • the present invention also provides a computer readable storage medium comprising computer program code, the computer program code being executed by a computer unit such that the computer unit:
  • a page window corresponding to a tag in a multi-label application is created as a top-level window, so that the parent window is not present in the page window, and thus, when a message interaction related to such a page window is performed, a certain parent does not appear.
  • the window sends a system message to the page window in a blocking manner, thereby avoiding the page fake transmission caused by the system message transmission. Even if a page window is killed, it will not affect other page windows, that is, it can operate normally on other page windows without affecting the normal operation of the entire application.
  • FIG. 1 is a schematic diagram of a multi-label web browser interface in the prior art
  • FIG. 2 is a flow chart of a method for implementing message interaction in a multi-tag application according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a window of a multi-tab browser in the prior art
  • FIG. 4 is a schematic structural diagram of a window of a multi-tab browser established in an embodiment of the present invention
  • FIG. 5 is a schematic diagram of an interface when a page window is suspended in an embodiment of the present invention
  • FIG. 6 is a schematic diagram of a system for implementing message interaction in a multi-tag application according to an embodiment of the present invention.
  • a method for implementing message interaction in a multi-tag application includes the following steps:
  • S201 Create a page window corresponding to the tag in the multi-label application as a top-level window
  • S202 perform user message interaction in the top-level window, that is, perform message interaction related to the page window, such as an application main frame window Interact with messages between page windows as top-level windows, and more.
  • FIG. 1 is a schematic diagram of a multi-label web browser interface in the prior art.
  • the small rectangles that display "Travel Start Page”, “Sohu-China", and "Blank Page” are the labels for each page, and each label corresponds to a page window.
  • the so-called multi-label application is to integrate the page windows corresponding to each tag in a window, and click on these tags to switch between different pages.
  • a plurality of tags can be included in the web browser shown in Fig. 1, and is therefore referred to as a multi-tab web browser.
  • the multi-tag application described in the embodiments of the present invention includes, but is not limited to, a multi-label web browser, a multi-label document editor (such as excel, etc.), a multi-label document reader, and the like.
  • the application can be divided into a single-process application and a multi-process application, and the page window corresponding to each tag can be created in one process or in multiple different processes.
  • the page window corresponding to each tag can be created in one process or in multiple different processes.
  • there may be a problem of suspended animation and the problem solved by the embodiment of the present invention can be applied to both single-process applications and multi-process applications.
  • the window in the embodiment of the present invention refers to an area on the system display, and the application uses the window to display the output or receive the user's input.
  • the "window" described in the embodiment of the present invention is not limited to an operating system based on window class development in the traditional sense of Windows, even in a non-Windows operating system, as long as a computer interface is provided.
  • the interface of human-computer interaction (such as a dialog box, etc.) can be regarded as a window described in the embodiment of the present invention.
  • the application accesses the system display through the window; on the other hand, the application shares the system display with other applications by using the window. Only one window can receive user input at the same time, and the user can interact with the window and the application that owns the window through an input device such as a mouse or keyboard.
  • each graphical interface-based application must create at least one window, called the main frame window, which is the primary interface between the user and the application.
  • main frame window which is the primary interface between the user and the application.
  • Many applications also create some other windows, directly or indirectly, to accomplish related tasks.
  • Windows can provide various user interaction information for that window.
  • Windows can automate many of the tasks requested by users, such as moving windows, resizing windows, and more. Allowing the creation of any number of windows in a Windows environment, Windows can display information in a variety of different ways, and is responsible for managing the display screen, controlling the position and display of the window for the application, ensuring that no two applications will compete at the same time. Use the same part of the system monitor.
  • the application window is generally composed of a title bar, a menu bar, a toolbar, a border, a client area, a scroll bar, and the like.
  • a window is usually connected to a window. That is, a window may have zero or one or more child windows, and each child window can only have one fixed parent window. If the parent window of a window does not exist or is a desktop window (a window with a window class #32769 is called a desktop window), this window is called a top-level window.
  • the operation of a Windows application needs to be driven by an external event.
  • the information describing the event is called a message.
  • the system will A specific message is generated that identifies the occurrence of a keyboard pressed event.
  • the so-called event-driven refers to the order in which Windows applications are executed depends on the order in which events occur.
  • the event-driven design is built around the generation and processing of messages. Windows applications continue to get any possible input messages at runtime, make judgments, and then do the appropriate processing.
  • the application accepts input by entering a message, and an input message is generated when the mouse is moved or the keyboard is pressed.
  • the Windows system is responsible for monitoring all input devices and placing input messages into a queue, which is a system-defined block of memory used to temporarily store messages, called a system message queue.
  • GDI Graphics Device Interface
  • the resulting input message When the user moves the mouse or taps the keyboard, the resulting input message first enters the system message queue. Windows then removes an input message from the system message queue each time, determines the destination window, and feeds the input message into the message queue of the application that created the window.
  • Application through application The sequence queue receives input, it retrieves the message from the application queue through a control structure called a message loop, and sends the retrieved message to the corresponding window, and the window function of the window is responsible for judging the message and performing Corresponding processing.
  • System messages are different from input messages, and Windows systems send it directly to the relevant window functions without going through the system message queue and the application queue.
  • the Windows system directly affects the event notification window of a window. For example, when a user activates an application window, the Windows system sends the corresponding system message directly to the window.
  • blocking mode such as
  • SendMessage etc.
  • non-blocking methods such as PostMessage, PostThreadMessag, SendMessageCallback % SendNotifyMessage % SendMessage Timeout, etc.
  • PostMessage, PostThreadMessage, SendMessageCallback, and SendNotifyMessage are asynchronous message sending methods, called SendMessageTimeout, which is a synchronous message sending method with a timeout mechanism.
  • thread A sends a message M to window B in a blocking manner, thread A must wait for window B to process message M before continuing execution; if window B has an infinite loop, deadlock, etc. during processing message M, This process can not return, you can think that window B has a suspended animation, then thread A can not continue to run, and can not receive and process other messages, it can be considered that the false death of window B directly leads to the death of thread A, this All windows in thread A will lose their response.
  • thread A If the message is sent in a non-blocking manner, thread A returns immediately after sending the message to window B, without waiting for window B to process the message (if using asynchronous method such as PostMessage, there is no need to wait; if it is using SendMessageTimeout, Then, a waiting time can be preset. If the waiting time exceeds the preset threshold, it will not wait and return to process other messages. Assume that window B is suspended, and thread A can continue to run.
  • asynchronous method such as PostMessage, there is no need to wait; if it is using SendMessageTimeout, Then, a waiting time can be preset. If the waiting time exceeds the preset threshold, it will not wait and return to process other messages. Assume that window B is suspended, and thread A can continue to run.
  • window B does not belong to thread eight. If window B belongs to thread A, then both blocking mode and non-blocking mode will cause false death, that is, window B's suspended animation will affect thread A.
  • window B can be either a sub-window or a top-level window, and the window structure does not affect the performance.
  • the way the input message is sent is usually determined by the application (usually set to non-blocking mode); and the way the system message is sent is generally determined by the operating system to the current For example, the most widely used Windows operating system, system messages sent by the Windows operating system are blocked (usually in the form of SendMessage).
  • a multi-label web browser is taken as an example.
  • a multi-tab browser if a certain page is suspended, the reason for the operation of other pages cannot be analyzed.
  • FIG. 3 shows the web browsing as shown in FIG. 1 in the browsing browser.
  • Maxthon2—View is the window that displays the content of the web page, referred to as the page window. It should be noted that Maxthon2_View is just a container window, and it has other child windows, such as Internet Explorer_Server (not shown in the figure) for displaying web content. Since there are currently 3 web pages open, you can see that there are 3 Maxthon2_View page windows in the window structure diagram. These 3 page windows are all "Afe:400000:2008:10011 :0:0, this window is the parent window. .
  • each label corresponds to a web page
  • each web page is managed by a set of windows (referring to a group of sub-windows that are not displayed under "+” in front of "Maxthon2_View” in the above structure diagram).
  • This set of windows has a parent window (Maxthon2_View in the above structure), and this parent window also has a parent window (that is, "Afx:400000:2008: 10011 :0:0,” in the above structure).
  • the processing flow is as follows: the user first clicks the zoom button, and then the window in which the button is located notifies the main frame window The clicked message, then the main frame window finds the page window corresponding to the currently displayed tag, and sends a message for zooming to the page window, so the page window performs the zoom function after receiving the message.
  • the main frame window finds the page window corresponding to the currently displayed tag, and sends a message for zooming to the page window, so the page window performs the zoom function after receiving the message.
  • some system messages need to be exchanged between windows. These system messages are sent by the Windows operating system, and are blocked messages. Sending is done, so the operation of the window can only be completed when all messages get a response.
  • the parent window "Afx:400000:2008:10011 :0:0" of the "05B6" page window needs to send system messages to its various child windows (including “05B6", “070C” and "0774") in blocking mode. And, only when each system message is responded, the window can be zoomed.
  • the parent window "Afx:400000 :2008: 10011: 0 :0” is also required to block the system message to each sub-window such as "070C”, but since ⁇ ⁇ The dead "05B6" window has been unable to respond to the parent window "Afx:400000:2008: 10011 :0:0", and based on the blocking mode of the sending mechanism, the parent window "Afx:400000:2008: 10011 :0:0 "Before getting the response of the "05B6" window, no other operations can be performed, so it is impossible to send a system message to the child window in order to complete the user's operation on "070C", and the user's operation on "070C” is also forever.
  • top-level windows (A, B, C%) have a common "Owner" window 0 .
  • the owner window O sends WM POSCHANGING and WM_POSCHANGED messages to other top-level windows (B, C%) in a blocking manner.
  • this may not be the case in other operating systems.
  • the root cause of the window death caused by the entire browser is that the page window where each label is located has a common parent window, and each page window responds to the user's input information.
  • the parent window sends (in blocking mode) system messages to each page window, and the user information can be completed only when each message can be processed normally. Therefore, if a page window A has a suspended animation, when the parent window sends a system message to it, it will not be able to return a response message to the parent window, so that the parent window is always in a waiting state; if it needs to operate on other page windows, The parent window also failed to respond, so the operation of other page windows could not be completed, and the entire application could not function properly.
  • each page window is a child window of "Afx:400000:2008:10011:0:0", and "Afx:400000:2008: 10011 :0:0" is the main frame.
  • the child window of the window therefore, In this example, there is no direct parent-child relationship between the main frame window and the page window.
  • the page window is directly used as a child window of the main frame window (ie, the direct father and son between the two. Relationship), there may even be cases where a multi-layer window is included between the page window and the main frame window, and so on.
  • the page window has a parent window, and its parent window will inevitably send system messages to it in a blocking manner. Therefore, there will be a phenomenon of suspended animation.
  • the system message sent by the parent window to each page window in blocking mode may not have any practical meaning (the operating system may use this message, but the application will not use it, it can be understood as even if Windows does not When this message is sent, the program can also run normally.
  • each page window receives the message of the parent window, it only needs to return a response message, and no other processing is required. That is to say, in fact, if the parent window does not send a system message to each page window, the currently displayed page window can still process the user input information.
  • the embodiment of the present invention creates a page window corresponding to each tag in the multi-label application as a top-level window that is level with the main frame window of the application, so that no parent window sends the system to the page window in a blocking manner.
  • Message may also have a common owner, the owner may also generate system messages to the page window, therefore, in order to avoid the owner window to send the system to each page window The message also needs to leave the owner of the top-level window empty.
  • a previous application corresponds to a tree
  • an application corresponds to multiple trees (the number of trees is determined by the number of tags in the application), and the window structure is as shown in the figure.
  • FIG. 4 is a schematic diagram of a window structure of a multi-tab browser established according to an embodiment of the present invention, where
  • SE_AxControl is the page window for each tag. It can be seen that this structure makes the page window corresponding to the label no longer have a parent window (or the parent window is a desktop), and in response to the user input information, there is no longer a parent window to send a message to each page window, each page window They are independent of each other. Therefore, in response to the user inputting information, even if a page window has a suspended animation, the other page windows will not be affected. The user can continue to browse other page windows, and the user can also appear. The dead page window is closed or reloaded.
  • the interaction of various input messages may be performed in a non-blocking manner or in a blocking manner.
  • you can make the main frame window send a message to the page window you can return without waiting for the window to process the message, and process the messages of other page windows, the effect will be better.
  • the manner in which the main frame window sends messages to the page window and what messages occur can be controlled by the multi-tag application itself. In other words, it is possible to modify the third-party application. (such as a browser) To achieve.
  • the parent window sends the system message to the child window (the page window in the prior art) in a blocking manner, which is controlled by the Windows operating system and is not controlled by the third party application (browser). It is impossible to change the way a system message is sent by modifying a third-party application, which is the most difficult problem to solve the problem of page fatality.
  • Another embodiment of the present invention is to modify a page window that is originally in the form of a child window to be a top-level window, so that each page window has no parent window at all, and thus there is naturally no parent window required by the Windows operating system to each page. The window sends a system message, which finally solves the problem of page fake transmission.
  • different windows may be caused to belong to different threads (for example, different page windows belong to different threads, and/or, main frame window and page window) Belong to different threads), in order to further reduce the occurrence of suspended animation.
  • different threads for example, different page windows belong to different threads, and/or, main frame window and page window
  • main frame window and page window Belong to different threads
  • the user may be given a prompt message (informing the user that the page window is suspended, reminding the user to perform the operation such as closing or reloading, see FIG. 5). It can be seen that the embodiment of the present invention effectively improves the user experience.
  • a page window is suspended or not, it can be detected by some alternative methods. For example, if the page window does not process any message sent to it for a period of time (for example, 5 seconds), it is considered that the page window may be suspended. and many more. It should be noted that in fact, it may not be possible to accurately detect whether a page window has a suspended animation (this cannot be done by Windows itself), which may cause certain false positives.
  • the main frame window and the page window corresponding to the label have a certain correspondence relationship, according to the corresponding relationship, the main frame window can be finally realized.
  • a traditional window structure like a browser, Windows can automatically establish this correspondence.
  • you can use a system function such as GetWindow(CHILD)
  • GetWindow(CHILD) GetWindow(CHILD)
  • the traditional window structure is broken, and the Windows system may not automatically establish the correspondence between the main frame window and the page window, and thus there is no function to call to obtain the page window.
  • the embodiment of the present invention may adopt the following manner: When the page window corresponding to the tag is created as the top window, the main frame window and the page window are established. Corresponding relationship between the two, and the corresponding relationship is saved, so that after receiving the message of the user, the main frame window can find a corresponding page window according to the pre-saved correspondence relationship, and send a message to the page window, the message It can be sent in a non-blocking message transmission mode. Then, the page window performs a corresponding operation according to the received message, wherein the operation may include zooming, switching, or viewing of the window, and the like. Of course, the future Windows system or other operating system is not excluded. Under the window structure described in the embodiment of the present invention, the correspondence between the main frame window and the page window can be automatically established.
  • the page window corresponding to the label can be created as the top window at any time according to actual needs.
  • the page window corresponding to the label can be created as the top window while the new label is created.
  • the creation of the new label may include the following two types: one is that the user creates a new label by double-clicking on the label bar, and the page window corresponding to the label may be blank; One is to open a web page in the page window corresponding to the new tab. At this time, the link is usually clicked on the currently displayed page, and the browser automatically creates a new tab. In a multi-label text editor, the meaning of this approach is highlighted.
  • the occurrence of suspended animation in the page window will not only occur during the process of text editing, but also during the process of opening excel text. If an excel text is opened, the page window corresponding to one of the tags occurs. If the page window corresponding to the label is not created as a top-level window, it may result in the inability to view other data in the page window where no suspended animation occurs. Therefore, when a new tag is created, its corresponding page window is created as a top-level window, which can prevent this from happening.
  • the page window corresponding to the label of the main frame window is independent of each other, instead of the page window corresponding to the label being a sub-window of the main frame window, as in the conventional structure. Child window. If the necessary settings are not made, the size of the main frame window and the page window and the position where they appear can be arbitrary. However, in order to obtain a better visual effect for the user, the position and size of the page window corresponding to the label can be adaptively adjusted to match the position and size of the main frame window. In other words, the interface that is ultimately presented to the user may be related to migration, etc. There is no difference between browsers, but in fact the interface is not a whole, but is stitched together.
  • An interface that can be provided to a user by an embodiment of the present invention is referred to as an "Asynchronous User Interface (UI)." This kind of user interface can prevent a tab page ⁇ from causing the browser framework or other tab pages to be inoperable.
  • UI Asynchronous User Interface
  • the method includes the following steps: creating a page window corresponding to the label in the multi-label application as a top-level window; performing message interaction in the multi-label application.
  • the storage medium is, for example, a ROM/RAM, a magnetic disk, an optical disk, or the like.
  • the embodiment of the present invention further provides a system for implementing message interaction in a multi-label application.
  • the system includes the following: Module:
  • the window management module U601 is configured to create a page window corresponding to the label in the multi-label application as a top-level window.
  • the main frame window of the multi-label application is also a top-level window, so the page window is created. After the top-level window, the page window is level with the main frame window, which is the top-level window.
  • the message interaction module U602 is configured to perform interaction of the user message in the top-level window, that is, perform message interaction related to the page window, such as message interaction between the application main frame window and the page window as the top-level window. and many more.
  • the window management module U601 creates a page window corresponding to the tag in the multi-label application as a top-level window, and performs message interaction in the multi-label application.
  • the page window corresponding to each tag can be made to have no parent window, so when the message is responded, there is no parent window sending the system message to each page window in a blocking manner, so that even if a certain page window is suspended, other page windows are not Will be affected, which will enhance the user experience.
  • the window management module U601 may create a page window corresponding to the label in the multi-label application as a top-level window with an empty owner. It should be noted that in a non-Windows operating system, there may be cases where the owner is not empty, and only the page window corresponding to the label in the multi-label application needs to be created as a top-level window, so that the user can When the page window operates, There is no purpose that a parent window needs to send system messages to each page window as its child window in a blocking manner, thereby achieving the purpose of reducing the probability of occurrence of death transmission.
  • the message interaction module U602 can be specifically used for the main frame window of the multi-label application to send a message to the page window in a non-blocking manner.
  • the message may be sent to the page window corresponding to each label through the main frame window, and then the corresponding operation is performed by each page window, which requires the main frame window. Correspond to the page window.
  • the message interaction module U602 may include the following sub-modules: a correspondence relationship saving sub-module U6021, configured to establish and save a correspondence between the main frame window of the multi-label application and the page window;
  • the communication sub-module U6022 is configured to trigger the main frame window to send a message to a top-level window corresponding to the corresponding tag, and trigger the top-level window to perform an operation corresponding to the received message.
  • the system can also include:
  • the window adjustment module U603 is configured to adjust a position and a size of the page window to match the position and size of the page frame to the main frame window.
  • system can also include:
  • the prompting module U604 is configured to send a prompt message to the user when a page window corresponding to a label is suspended. This includes prompting the user to close the window or reload, and so on.
  • the page window corresponding to the new tag may be created as a top-level window while creating a new tag, such as creating a new blank page or opening it in a new window.
  • This method is especially beneficial for multi-label text editors, which can prevent the entire file from being opened normally due to the suspended animation of a page during the process of opening the file.
  • the page window corresponding to the label can be created as a top-level window at any time according to actual needs, for example, when more page windows are opened.
  • the system may further include:
  • the multi-threaded creation module can make the page windows corresponding to different tags in the multi-label application belong to different threads.
  • the system may further include:
  • a second creating module configured to create a main frame window of the multi-label application and a page window corresponding to the label in different threads. That is, the main frame window of the multi-label application and the individual page windows also belong to different threads. Thus, if the main frame window needs to send a message to the page window, since the two are not in the same thread, as long as they are sent in a non-blocking manner, the phenomenon of suspended animation will not occur.

Landscapes

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

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

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

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011546578A JP2012515961A (ja) 2009-01-23 2010-01-22 マルチタブアプリケーションにおけるメッセージ対話を実現する方法およびシステム
RU2011134656/08A RU2490693C2 (ru) 2009-01-23 2010-01-22 Способ и система для реализации обмена сообщениями в прикладной программе с несколькими вкладками
EP10733245.4A EP2390796A4 (en) 2009-01-23 2010-01-22 METHOD AND SYSTEM FOR MESSAGE INTERACTION IN A MULTI-TAB APPLICATION
CN2010800053390A CN102356391B (zh) 2009-01-23 2010-01-22 一种实现多标签应用程序中进行消息交互的方法及系统
US13/186,573 US8887082B2 (en) 2009-01-23 2011-07-20 Method and system for realizing message interactions in a multi-tabs application

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/186,573 Continuation US8887082B2 (en) 2009-01-23 2011-07-20 Method and system for realizing message interactions in a multi-tabs application

Publications (1)

Publication Number Publication Date
WO2010083772A1 true WO2010083772A1 (zh) 2010-07-29

Family

ID=40976904

Family Applications (1)

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

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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591711A (zh) * 2011-12-29 2012-07-18 奇智软件(北京)有限公司 一种窗口防假死方法和装置
CN102915251A (zh) * 2012-03-08 2013-02-06 北京金山安全软件有限公司 一种多页面浏览器处理消息的方法和装置
CN104035815A (zh) * 2011-12-29 2014-09-10 北京奇虎科技有限公司 一种窗口防假死方法和装置

Families Citing this family (21)

* 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交互的方法和电子设备
CN103246505B (zh) * 2012-02-13 2017-11-10 腾讯科技(深圳)有限公司 一种窗体标题栏的创建方法及装置
CN103246552B (zh) * 2012-02-14 2018-03-09 腾讯科技(深圳)有限公司 防止线程出现阻塞的方法和装置
CN103377228B (zh) * 2012-04-25 2016-09-07 阿里巴巴集团控股有限公司 一种用于浏览器的页面内容呈现方法及装置
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 北京京东尚科信息技术有限公司 地图显示方法、装置、设备和存储介质
CN115344168B (zh) * 2021-05-13 2024-08-09 荣耀终端有限公司 消息展示方法、终端及计算机可读存储介质

Citations (5)

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

Family Cites Families (26)

* 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
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 엘지전자 주식회사 탭브라우징 이동통신 단말기 및 그 제어방법
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
CN101609470B (zh) * 2009-07-02 2011-08-10 腾讯科技(深圳)有限公司 一种多页面浏览器防假死方法及装置

Patent Citations (5)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591711A (zh) * 2011-12-29 2012-07-18 奇智软件(北京)有限公司 一种窗口防假死方法和装置
CN102591711B (zh) * 2011-12-29 2014-06-25 奇智软件(北京)有限公司 一种窗口防假死方法和装置
CN104035815A (zh) * 2011-12-29 2014-09-10 北京奇虎科技有限公司 一种窗口防假死方法和装置
US9575821B2 (en) 2011-12-29 2017-02-21 Beijing Qihoo Technology Company Limited Method and device for preventing window's lagging
CN104035815B (zh) * 2011-12-29 2017-12-12 北京奇虎科技有限公司 一种窗口防假死方法和装置
CN102915251A (zh) * 2012-03-08 2013-02-06 北京金山安全软件有限公司 一种多页面浏览器处理消息的方法和装置

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2010083772A1 (zh) 一种实现多标签应用程序中进行消息交互的方法及系统
US10831363B2 (en) Content manipulation using swipe gesture recognition technology
WO2020238815A1 (zh) 显示控制方法及装置、电子设备和存储介质
US8838808B2 (en) Asynchronous communication in web applications
US8782127B2 (en) Notification based web applications
US8788627B2 (en) Interactive web application framework
JP5430743B2 (ja) グラフィカルユーザインタフェース内でスクレープされたウェブページを提供するための方法および装置
US20020199025A1 (en) System and method to create an application and to manipulate application components within the application
US20150149951A1 (en) Live previews for multitasking and state management
US20140282217A1 (en) Window grouping and management across applications and devices
CN106775647A (zh) 一种移动终端的控制方法、控制装置及移动终端
CN103365546B (zh) 浏览器窗口创建方法及装置
CN111813308A (zh) 界面处理方法、装置、电子设备及存储介质
WO2024183458A1 (zh) 控件处理方法、设备、系统及存储介质
CN103902727B (zh) 网络搜索方法和装置
US20110258169A1 (en) Customization of Information Using a Desktop Module
US20230359343A1 (en) Interface processing method and apparatus, electronic device, and computer-readable storage medium
US20110258578A1 (en) Interfacing Between Applications Utilizing a Desktop Module
CN115454296B (zh) 一种跨运行环境的用户行为智能融合方法
WO1999040512A9 (en) Method and system for user defined interactions between plurality of active software applications
US20240095141A1 (en) Displaying information flow
US8566724B2 (en) Online customization of information using a site management module
CN116107575B (zh) 一种窗口管理器
CN117472489A (zh) 弹窗显示方法、装置、设备及存储介质
CN117519875A (zh) 弹窗处理方法、装置、设备及介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080005339.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10733245

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011546578

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010733245

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011134656

Country of ref document: RU