BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are included to provide a further understanding of the disclosed event-based display and methods therefor and are incorporated in and constitute a part of this specification, illustrate various embodiments and, together with the description, serve to explain the principles of at least one embodiment of the disclosed event-based display and methods therefor.
In the drawings:
FIG. 1 is a screen capture illustrating an exemplary browser.
FIG. 2 is a screen capture illustrating an exemplary browser providing an event-based display.
FIG. 3 is a screen capture illustrating an exemplary browser after a user has interacted with an event-based display.
FIG. 4 is a screen capture illustrating an exemplary browser providing an alternative event-based display.
FIG. 5 is a screen capture illustrating an exemplary browser providing an alternative event-based display.
FIG. 6 is a flow chart illustrating an exemplary event-based display method.
FIG. 7 is an exemplary network architecture through which configuration information, rules, and the like can be distributed.
FIG. 8 is a table illustrating an exemplary feed format.
FIG. 9 is a table illustrating exemplary trigger types.
FIG. 10 is a table illustrating exemplary parameters that can be associated with a trigger.
DETAILED DESCRIPTION
Reference will now be made in detail to embodiments of the disclosed event-based display and methods therefor, examples of which are illustrated in the accompanying drawings. Although specific reference is made herein to network browsing software, or browsers, it should be apparent that alternative software may be substituted therefor without departing from the spirit or the scope of the invention.
FIG. 1 is a screen capture illustrating an exemplary browser 100. Examples of such browsers include, without limitation, Internet Explorer, distributed by Microsoft Corporation of Redmond, Wash., and Firefox, distributed by Mozilla Corporation of Mountain View, Calif. Helper application 110 is associated with browser 100, and adds additional functionality to browser 100. In the illustrated embodiment, helper application 110 is a dynamic application, wherein features and functions can be added to or removed from the application by the distributor of helper application 110 or another such entity.
FIG. 2 is a screen capture illustrating an exemplary browser providing an event-based display. In FIG. 2, the user has used browser 100 to navigate to a Uniform Resource Locator (“URL”). When browser 100 has loaded the web page associated with the URL, browser 100 triggers an event, which can be monitored by helper application 110. When helper application 110 receives an appropriate event, helper application 110 processes the URL or the content of the page associated with the URL. Based on rules associated with helper application 110, helper application 110 may cause browser 100 to display an event-based display, such as information window 200 of FIG. 2.
In an embodiment, the rules associated with helper application 110 include one or more Hypertext Markup Language (“HTML”)-defined displays, which can be rendered by browser 100 in response to an appropriate event being triggered by browser 100. In FIG. 2, information window 200 is generated by browser 100 based on information provided by helper application 110, and permits the user to modify the features and functions available via helper application 110. In the embodiment illustrated in FIG. 2, display 200 allows the user to add a button to helper application 110 merely by clicking on or otherwise interacting with button 210 or other such user interface element. The user can decline the addition of a button to helper application 110 by clicking on or otherwise interacting with button 220.
FIG. 3 is a screen capture illustrating an exemplary browser 100 and helper application 110 after a user has interacted with an event-based display. It should be noted that button 300 has been added to helper application 110 in response to the user authorizing such an addition. The addition of button 300 allows the user to more easily access the URL or other feature or function associated with button 300.
FIG. 4 is a screen capture illustrating an exemplary browser providing an alternative event-based display. In FIG. 4, the user has entered a search term in helper application 110 for the first time. Helper application 110 responds by causing browser 100 to display information window 400, though which the user can learn more about searching by clicking or otherwise interacting with button 410. The user can close information window 400 by clicking or otherwise interacting with close button 420. Information window 400 allows the user to access additional information relevant to the use of helper application 110.
FIG. 5 is a screen capture illustrating an exemplary browser providing an alternative event-based display. In FIG. 5, helper application 110 has caused browser 100 to display information window 500 due to the expiration of a pre-defined time interval or other event not directly related to the user's interaction with browser 100 or helper application 110. The user can add the feature or function described in information window 500 by clicking or otherwise interacting with button 510 or other such user interface element, and the user can close information window 500 by clicking or otherwise interacting with button 520.
FIG. 6 is a flow chart illustrating an exemplary event-based display method. In FIG. 6, a helper application receives a rule set from a server (Block 600). The helper application then waits for a particular event to occur, such as, without limitation, the expiration of a given time period; the triggering of an event by an external application, such as a browser or the operating system; or a user's interaction with the helper application (Block 610). The helper application then determines whether a rule exists for the event (Block 620) and, if a rule does not exist, the helper application merely returns to waiting for the next event. If a rule exists for the given event (Block 620), the helper application then processes the rule to determine whether any action should be taken (Block 630). If the rule's criteria are not met, the helper application can return to waiting for the next event. If the rule's criteria are met, then the tasks associated with the rule are performed (Block 640). Such rules may include, but are not limited to, presenting an information window or other event-based display.
FIG. 7 is an exemplary network architecture through which configuration information, rules, and the like can be distributed. In FIG. 7, client 700 represents a user computer, cellular telephone, portable digital assistant, or other computing device. Browsing application 705 represents a browser or custom application which incorporates at least some browser-like features, and which runs on client 700. Browsing application 705 can be used to display information from a standard web server 730 or other such system capable of providing information suitable for browsing application 705.
Helper application 706 represents an application associated with browsing application 705. By way of example, without limitation, helper application 706 can be additional features integrated into a traditional browser, features added to a browser by way of a “plug-in”, or features added by way of other such well-known techniques.
When helper application 706 is loaded, helper application 706 can retrieve rules and other configuration settings 708 from one or more configuration and rule storage database 725 hosted by one or more centralized servers 720. Such rules and other configuration information may be obtained via a public telecommunications network, such as Internet 710, or a private or shared communications network.
Configuration settings 708 include rules associated with helper application 706. Such rules can assist helper application in determining when an information window should be displayed by browsing application 705. By periodically retrieving the configuration settings, helper application 706 can ensure the user has access to the latest features and functions. By incorporating event-based display rules into the configuration settings, helper application 706 can also ensure that users are aware of such features and functions.
FIG. 8 is a table illustrating an exemplary feed format that incorporates rules that help determine when an information window should be displayed by a browser. Although a specific feed format embodiment is described herein, it should be apparent that alternative feed formats, including feed formats based on eXtensible Markup Language (“XML”), Standardized Generalized Markup Language (“SGML”), or the like can be substituted therefor without departing from the spirit or the scope of the invention.
The exemplary feed format can be structured to look like a helper application button, including one or more helper application button sub-items, thereby permitting the rules and related information to be transmitted to the helper application while taking advantage of existing data exchanges between the helper application and a centralized server. In the embodiment illustrated in FIG. 8, each of these helper application buttons has associated therewith an identifier type of “etp”, which allows the helper application to distinguish information display rules from other information used by the helper application. In an embodiment, a single helper application button definition can comprise a plurality of information display rules. Each information display rule can also have associated therewith master parameters controlling the interval between information window displays (“silt”) and the interval between the installation of the helper application and the display of a first information window (“silw”). Each information display rule can also have associated therewith a string comprising a plurality of attributes separated by special characters. Although special characters are advantageous as they permit a larger number of standard characters to be used within each attribute, it should be apparent that one or more standard characters can be substituted therefor without departing from the spirit or the scope of the invention.
The attributes associated with each information display rule can include, but are not limited to, title, function, identifier, trigger type, button ID, dialog ID, and AVList. The title is typically included for informational purposes, and is generally used for debugging or the like. The function is a predetermined function type recognized by the helper application that instructs the helper application to generate, or to cause the browser to generate, an information window.
The identifier is a unique identifier associated with the information to be presented in a given information window. The identifier can be used for a variety of purposes, including, without limitation, determining whether the corresponding information window has previously been displayed by the client, and whether the information window has previously been displayed to the user. In an embodiment, the helper application, browser, or a third application can maintain a list of event-based information displays that have been presented by the client and/or to the user. By way of example, without intending to limit the present invention, such a list may be stored in the registry or other database associated with the client if the client is running a Windows based operating system distributed by Microsoft Corporation. Such a list can be used to prevent a particular event-based information display from being repeatedly presented to the same user and/or on the same client.
The trigger type is an identifier used to determine an event to which a given rule corresponds. This will be discussed in more detail below with respect to FIG. 9. The button ID is an identifier corresponding to a button or other user interface element in the browser or helper application, and allows the information window to be positioned proximate to that button if the button is being displayed by the browser or the helper application when the corresponding event is triggered. In an embodiment, the dialog ID can comprise a text string that is used in the body of the information window, including text to appear in any user interface element or elements present in the information window. In an alternative embodiment, the dialog ID can comprise a URL, a pointer to a URL stored in a look-up table, or other pointer to information to be displayed in the information window. In still another embodiment, the dialog ID comprises a unique key that corresponds to one or more HTML pages that have been stored locally on the client. In this embodiment, the HTML or other information to be displayed in the information window can be loaded in an inline frame, or iFrame, within the browser display, thereby permitting browser to display both the information window and the main browser content. The AVList is a list of keys and values, and is described below with respect to FIG. 10.
FIG. 9 is a table illustrating exemplary trigger types. As described above, the trigger types are used by the helper application to determine an event to which a given rule corresponds. By way of example, without intending to limit the present invention, an information display rule may include a trigger type of “1”, indicating that the rule should be processed when a specific external application triggers a particular event. When that event occurs, the AVList is processed to determine whether the rule should be executed.
FIG. 10 is a table illustrating exemplary AVList parameters that can be associated with an information window. Such AVList parameters can include, but are not limited to, pos, rgx, msgr, avail, rep, silw, silt, silnt, to, and rghc. Pos corresponds to a button ID or the like proximate to which the information window is to be positioned. Rgx is a regular expression which is used by the helper application to determine whether a URL which the user has accessed, the text displayed within the browser, a search string entered into the helper application, or the like is pertinent to a particular information window, and should thus trigger the display of the information window. Msgr is an attribute by which the helper application can be forced to ignore the user's login status as provided by an external application, or to require that the user be logged in/logged out of the external application before the information window will be displayed. Avail is an attribute by which the helper application can be forced to only display an information window based on the availability of a particular button or other user interface element within the browser or the helper application.
Rep is an attribute by which the helper application can be forced to only display an information window based on whether a button or other user interface element has previously been clicked or otherwise subject to user interaction. Silw is an attribute that allows the information window to occur more frequently or less frequently than the master Silw associated with the master information display rule. Silt is an attribute by which the master silt time can be overridden, thereby allowing the interval between when a previous information window was displayed and the information window associated with the rule to be altered from that specified in the master silt associated with the master information display rule. Silnt in an attribute by which the time stamp associated with the display of the current information window is altered, thereby allowing the interval between the display of the current information window and the display of the next information window to be modified. To is a timeout attribute, by which the duration the information window is displayed can be controlled. Rghc is a counting attribute by which the display of an information window can be postponed until the remaining trigger conditions have occurred at least some number of times.
The rep, silt, silw, silnt, to, and rghc AVList attributes can allow the helper application to present event-based displays at intervals that make them less intrusive, which in turn can allow the user to perceive the event-based displays as more helpful. Similarly, the rgx attribute allows the helper application to present event-based displays that are relevant to the specific user's interactions with the browser and/or helper application, again making the information presented therein more useful to the user.
While detailed and specific embodiments of the event-based display and methods therefor have been described herein, it will be apparent to those skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the event-based display and methods therefor. Thus, it is intended that the present disclosure cover these modifications and variations provided they come within the scope of any appended claims and/or their equivalents.