A main document and referenced frame documents to be rendered by a browser for a display page are parsed by the browser to identify where text and graphics objected are to be located. The location of a cursor that is used by the user to interact with the browser is tracked, and the object nearest to the cursor is determined. This object is then rendered prior to the rendering of other objects in the display page that would normally be rendered prior to the nearest object under conventional rendering schemes. Optionally, objects related to the nearest objects may be rendered the same time, and various other objects may be rendered or partially rendered while data corresponding to the nearest object is being received by the browser.
|
0. 36. An apparatus, comprising
means for requesting a main document from a network server, said main document comprising code defining a layout of objects to be rendered in a display page on a display;
means for parsing said code of the main document to identify locations where said objects are to be rendered within the display page;
means for determining, for one or more graphic objects of the objects to be rendered in the display page, one or more respective sizes and locations for the graphic objects in the display page and rendering one or more placeholders of the determined respective sizes at the respective locations in the display page;
means for identifying a location of a cursor relative to the display page;
means for identifying and selecting a graphic object to be rendered in the display page nearest the location of the cursor;
means for rendering, in the display page, the graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the rendering is performed before rendering remaining to-be-rendered objects; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page by the computing device means for rendering thereafter the remaining graphic objects.
0. 23. A method, comprising
requesting, by a computing device, a main document from a network server, said main document comprising code defining a layout of objects to be rendered in a display page on a display;
parsing, by the computing device, said code of the main document to identify locations where said objects are to be rendered within the display page; and
during rendering of the display page:
for one or more graphic objects of the objects to be rendered in the display page, determining, by the computing device, one or more respective sizes and locations for the graphic objects in the display page and rendering one or more placeholders of the determined respective sizes at the respective locations in the display page;
identifying, by the computing device, a location of a cursor relative to the display page;
identifying and selecting, by the computing device, a graphic object to be rendered in the display page nearest the location of the cursor;
rendering in the display page by the computing device, the graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the rendering is performed before rendering remaining to-be-rendered objects; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page by the computing device rendering thereafter the remaining graphic objects.
0. 32. An article of manufacture including a tangible non-transitory computer-readable medium having instructions stored thereon that, in response to execution of the instructions by a computing device, cause the computing device to perform a plurality of operations comprising:
requesting a main document from a network server, said main document comprising code defining a layout of objects to be rendered in a display page on a display;
parsing said code of the main document to identify locations where said objects are to be rendered within the display page; and
during rendering of the display page:
for one or more graphic objects of the objects to be rendered in the display page, determining one or more respective sizes and locations for the graphic objects in the display page and rendering one or more placeholders of the determined respective sizes at the respective locations in the display page;
identifying a location of a cursor relative to the display page;
identifying and selecting a graphic object to be rendered in the display page nearest the location of the cursor;
rendering, in the display page, the graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the rendering is performed before rendering remaining to-be-rendered objects; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page by rendering thereafter the remaining graphic objects.
0. 27. A system, comprising:
a memory in which machine instructions comprising a browser computer program are stored;
a processor coupled to the memory for executing the machine instructions;
a display, coupled to the memory and processor; and
said machine instructions implementing a plurality of functions in response to execution of the machine instructions by the processor, including functions to:
request a main document from a network server, said main document comprising code defining a layout of objects to be rendered in a display page on the display;
parse said code of the main document to identify locations where said objects are to be rendered within the display page; and
during render of the display page:
for one or more graphic objects of the objects to be rendered in the display page, determine one or more respective sizes and locations for the graphic objects in the display page and render one or more placeholders of the determined respective sizes at the respective locations in the display page;
identify a location of a cursor relative to the display page;
identify and select a graphic object to be rendered in the display page nearest the location of the cursor;
render, in the display page the object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the render is performed before rendering remaining to-be-rendered objects; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page through a render thereafter of the remaining graphic objects.
1. A method for controlling an order in which objects are rendered on a display page by a browser, comprising
requesting, by a computing device, a main document corresponding to the display page from a network server, said main document comprising code defining a layout of internal objects and external objects to be rendered in the display page, wherein the internal objects are included in the main document and the external objects are referenced by the main document, said external objects including and include any frame documents referenced in the main document;
parsing, by the computing device, said code of the main document and any frame documents referenced by the main document to identify locations where said internal and external objects are to be rendered on in the display page; and
during rendering of the display page:
for one or more graphic objects of the internal and external objects, determining, by the computing device, one or more respective sizes and locations for the graphic objects in the display page and rendering one or more placeholders of the determined respective sizes at the respective locations in the display page;
identifying, by the computing device, a location of a cursor relative to the display page;
identifying an internal or external and selecting, by the computing device, a to-be-rendered graphic object nearest the location of the cursor;
rendering in the display page, by the computing device, the internal/external graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the rendering is performed before rendering remaining to-be-rendered graphic objects in the display page; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page by the computing device rendering other internal and external thereafter the remaining graphic objects to complete rendering of the display page.
16. An article of manufacture for controlling an order in which objects are rendered on a display page, comprising:
a memory media adapted to be used with a computer;
a plurality of machine instructions stored on the memory media, said machine instructions effecting a plurality of functions when executed operations in response to execution of the machine instructions by the computer, the operations including:
requesting a main document corresponding to the display page from a network server, said main document comprising code defining a layout of internal objects and external objects to be rendered in the display page, wherein the internal objects are included in the main document and the external objects are referenced by the main document, said external objects including and include any frame documents referenced in the main documents;
parsing said code of the main document and any frame documents referenced by the main document to identify locations where said internal and external objects are to be rendered on in the display page; and
during rendering of the display page:
for one or more graphic objects of the internal and external objects, determining one or more respective sizes and locations for the graphic objects in the display page and rendering one or more placeholders of the determined respective sizes at the respective locations in the display page;
identifying a location of a cursor relative to the display page;
identifying an internal or external and selecting a to-be-rendered graphic object nearest the location of the cursor;
rendering, in the display page, the internal/external graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the rendering is performed before rendering remaining to-be-rendered graphic objects in the display page; and
after rendering the graphic object that is identified to be nearest the location of the cursor, continuing rendering of the display page by rendering other internal and external thereafter the remaining graphic objects to complete rendering of the display page.
8. A system for controlling an order in which objects are rendered on a display page, comprising:
a memory in which machine instructions comprising a browser computer program are stored;
a processor coupled to the memory for executing the machine instructions;
a display, coupled to the memory and processor; and
said processor machine instructions implementing a plurality of functions when executing in response to execution of the machine instructions by the processor, including functions to:
requesting request a main document corresponding to the display page from a network server, said main document comprising code defining a layout of internal objects and external objects to be rendered in the display page, wherein the internal objects are included in the main document and the external objects are referenced by the main document, said external objects including and include any frame documents referenced in the main documents;
parsing parse said code of the main document and any frame documents referenced by the main document to identify locations where said internal and external objects are to be rendered on in the display pages page; and
during render of the display page;
for one or more graphic objects of the internal and external objects, determine one or more respective sizes and locations for the graphic objects in the display page and render one or more placeholders of the determined respective sizes at the respective locations in the display page;
identifying identify a location of a cursor relative to the display page;
identifying an internal or external identify and select a to-be-rendered graphic object nearest the location of the cursor;
rendering render, in the display page, the internal/external graphic object that is identified to be nearest the location of the cursor in place of a placeholder associated with the graphic object that is identified to be nearest the location of the cursor, such that the render is performed before render of remaining to-be-rendered graphic objects in the display page; and
rendering other after render of the internal/external object that is identified to be nearest the location of the cursor, continuing render of the display page through a render thereafter of the remaining internal and external objects complete rendering of the display page.
0. 2. The method of
0. 3. The method of
4. The method of
5. The method of
6. The method of
determining, by the computing device, if the cursor has been moved, and that it is nearest an internal/external a graphic object that has yet to be rendered on in the display page; and
rendering, by the computing device, the internal/external graphic object nearest the cursor prior to rendering other internal/external objects if it is determined in response to determining that the cursor has been moved.
0. 7. The method of
0. 9. The system of
0. 10. The system of
11. The system of
12. The system of
13. The system of
determining if determine whether the cursor has been moved, and that it is nearest an internal/external a graphic object that has yet to be rendered on in the display page; and
rendering render the internal/external graphic object nearest the cursor prior to rendering other internal/external objects if it is determined in response to determining that the cursor has been moved.
0. 14. The system of
15. The system of
0. 17. The article of manufacture of
0. 18. The article of manufacture of
19. The article of manufacture of
20. The article of manufacture of
21. The article of manufacture of
determining if the cursor has been moved, and that it is nearest an internal/external a graphic object that has yet to be rendered on in the display page; and
rendering the internal/external graphic object nearest the cursor prior to rendering other internal/external objects if it is determined in response to determining that the cursor has been moved.
0. 22. The article of manufacture of
0. 24. The method of claim 23, further comprising rendering, by the computing device, objects related to the graphic object determined to be nearest the cursor prior to rendering other objects within the display page.
0. 25. The method of claim 23, further comprising rendering, by the computing device, a portion of the objects included in or referenced by the main document while data corresponding to the graphic object determined to be nearest the cursor are being received by the browser from the network server or another network server.
0. 26. The method of claim 23, further comprising:
determining, by the computing device, if the cursor has been moved, and that it is nearest a graphic object that has yet to be rendered within the display page; and
rendering in the display page, by the computing device, the graphic object nearest the cursor prior to rendering other objects in response to determining that the cursor has been moved.
0. 28. The system of claim 27, wherein execution of the machine instructions by the processor further implements a function to render objects related to the graphic object determined to be nearest the cursor prior to rendering other objects within the display page.
0. 29. The system of claim 27, wherein execution of the machine instructions by the processor further implements a function to render a portion of the objects included in or referenced by the main document while data corresponding to the graphic object determined to be nearest the cursor are being received by the browser from the network server or another network server.
0. 30. The system of claim 27, wherein execution of the machine instructions by the processor further implements a function to:
determine whether the cursor has been moved, and that it is nearest a graphic object that has yet to be rendered within the display page; and
render, in the display page, the graphic object nearest the cursor prior to rendering other objects in response to determining that the cursor has been moved.
0. 31. The system of claim 27, wherein said system is a selected one of a desktop computer, a set top box, a notebook sized computer, a palm sized personal digital assistant, or a wireless cell phone.
0. 33. The article of manufacture of claim 32, wherein said operations effectuated in response to execution of the instructions by the computing device further include rendering objects related to the graphic object determined to be nearest the cursor prior to rendering other objects within the display page.
0. 34. The article of manufacture of claim 32, wherein said operations effectuated in response to execution of the instructions by the computing device further include rendering a portion of the objects included in the main document while data corresponding to the graphic object determined to be nearest the cursor are being received by the browser from the network server or another network server.
0. 35. The article of manufacture of claim 32, wherein said operations effectuated in response to execution of the instructions by the computing device further include:
determining if the cursor has been moved, and that it is nearest a graphic object that has yet to be rendered within the display page; and
rendering, in the display page, the graphic object nearest the cursor prior to rendering other objects in response to determining that the cursor has been moved.
|
1. Field of the Invention
The present invention is related to the field of data processing. More specifically, the present invention is related to the rendering of display data.
2. Background Information
With advances in integrated circuit, microprocessor, networking and communication technologies, increasing number of devices, in particular, digital computing devices, are being networked together (wirelessly or via wire lines). As a result of this trend of increased connectivity, increasing number of client/server based and network dependent applications are being deployed. Examples of these client/server based and network dependent applications include but are not limited to, email, net based telephony, world wide web and various types of e-commerce.
Among the client/server based and network dependent applications, thin-client architecture, also known as web-client architecture, perhaps because of its “ease of implementation” on the client side, is especially popular. Typically, the architecture merely involves a “user-agent”, such as a Web browser or a WAP (Wireless Access Protocol) Browser, on the client side. There is no need for the client to have any application specific programs installed. Application specific logic are run on the server side, and the client just has to run the browser to render the content to displayed at a particular point in time (provided by the server or servers). Each collection instance of these content is often referred as a “page” or a “web page”. Typically, the browser retrieves for each page, a set of descriptions specifying the content to be displayed and their layout, and then the content themselves from the server or other servers. The descriptions are typically authored in a browser specific language, such as HTML (Hypertext Markup Language) for Web browser, HDML/WML (Handheld Device Markup Language or Wireless Markup Language) for WAP browser. The browser then renders the content on a display screen as specified by the retrieved descriptions, in the order the contents are received.
Often time, a user may be interested in only a portion of the page, e.g. in a log-in home page, where the user is just interested in getting the log-in “box” rendered, so the user can start the log-in process, or a user is interested in only a particular summary section of a customized home page (such as a stock summary section, a headline section, a sport section or a weather section, where the user can quickly take a look at the latest information on whatever the subject of interest may be (e.g. latest stock prices for a short list of stocks, latest headlines, latest sport scores, latest weather and so forth).
Under prior art browsers, a user has no control over the order in which the various sections of a page is displayed. If the section or sections of most interest happen to be displayed last or near last, that's just tough luck for the user. Thus, under the prior art, users are often frustrated, in waiting for the section or sections of interest to be displayed.
Accordingly, a more user friendly approach to rendering display content is desired.
The present invention addresses the foregoing desires by providing a method and system that enables users to control the order in which objects are rendered on a display page. In accord with the method, a main HTML document corresponding to the display page is requested from a network server, such as an Internet web server, and the web server initiates sending of the document to a client comprising a browser running on a computer the user is operating. The main document comprises markup language code, such as HTML, which is used to define the layout of internal text objects included in the document and external text and graphic objects referenced by the document. For instance, the document may contain references to separately stored graphic images; in such instances, files corresponding to these graphic images will be sent by the network server to the browser, or the network server will request that the files be sent from another server from which they are served to the browser.
Upon receiving the main document, the browser parses the document to identify the locations of where the text and graphic objects that make up the display page are to be located when the page is rendered. As the page begins to be rendered, the location of the cursor on the display page is identified, and it is compared with the locations of the text and graphic objects to determine which object is nearest the cursor. That object is then rendered prior to other objects on the display page, thereby enabling the user to control the order in which the objects are rendered. Preferably, the method also includes rendering placeholders corresponding to where respective objects are to appear on the display page so that the user can better select the object(s) the user desires to have rendered prior to the rendering of other objects. In addition, related objects may be rendered along with the selected (i.e., nearest to the cursor) object, which is especially beneficial when a user desires to access multiple user-input objects, such as logins requiring a user name and password or access code.
The method further enables users to selectively control whether a page is rendered using a conventional rendering scheme or using the foregoing user-controlled rendering scheme through the use of a program setting (e.g., a menu option) and/or a user interaction, such as a double click. For example, if a user double-clicks a display area or a placeholder prior to having an underlying object rendered, this would tell the browser to render the object(s) corresponding to this display area or placeholder prior to rendering other objects. In addition, the method provides for rendering of other objects while data corresponding to the selected object are being received by the browser to enhance the rendering speed of the display page. Additional aspects of the invention include a system and article of manufacture for implementing the foregoing method.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same becomes better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
A horizontal group of links 36 is disposed at the top of frame 14, and includes a “QUOTES” link 38A, a “HOT PICKS” link 40A, a “CALENDARS” link 42A, and a “NEWS” link 44A. An advertisement banner 46A is displayed just below the horizontal group of links and just above a “NEWS SPARKS MARKET” headline 48A. Frame 14 also includes a pair of graphic objects, including a DOW chart 50A and a NASDAQ chart 52A. A set of user input objects is disposed adjacent to DOW chart 50A within a graphic object 54A, including an “ACCOUNT #” input box 55A, an “ACCESS CODE” input box 56A, and a “LOGIN” button 57A. In addition to the foregoing objects, frame 14 also includes text objects 58A and 60A.
With reference to
An HTML listing corresponding to web page 10 is presented below as LISTING 1. Note that LISTING 1 sometimes refers to object descriptions and link paths rather than the text or path location of actual objects for simplicity, and that other elements commonly found in HTML pages, such as META entries, are omitted for clarity.
LISTING 1
1.
<html>
2.
<head><title>“MARKET HOME”</title></head>
3.
4.
<body bgcolor=“#FFFFFF” link=“0033CC” vlink=“0033CC”>
5.
6.
<frameset cols=“25%,75% frameborder=0 border=0>
7.
<frame>
8.
<align=left><align=top>
9.
<img sr=“/directory path/logo.gif” align = left border=“0” height=“80” width=“100”>
10.
<br><br>
11.
<t3>TEXT HEADER #1 align=left</t3><br>
12.
13.
<table width=“90%” border=0 cellspacing=10 cellpadding=0 bgcolor=“#000000”
14.
align=center>
15.
<tr>
16.
<a href=“URL or path for LINK #5” <img src=“/directory
17.
path/GRAPHIC#2” height=“[001b]50” width =“150></a>
18.
<tr>
19.
<a href=“URL or path for LINK #6” <img src=“/directory
20.
path/GRAPHIC#3” height=“50” width =“150></a>
21.
<tr>
22.
<a href=“URL or path for LINK #7” <img src=“/directory
23.
path/GRAPHIC#4” height=“50” width =“150></a>
24.
<tr>
25.
<a href=“URL or path for LINK #8” <img src=“/directory
26.
path/GRAPHIC#5” height=“50” width =“150></a>
27.
</table>
28.
<br>
29.
<t3>TEXT HEADER #1 align=left</t3>
30.
<br>
31.
<table width=“90%” border=0 cellspacing=10 cellpadding=0 bgcolor=“#000000”
32.
align=center>
33.
<tr>
34.
<a href=“URL or path for LINK #9” <img src=“/directory
35.
path/GRAPHIC#6” height=“50” width =“150></a>
36.
<tr>
37.
<a href=“URL or path for LINK #10” <img src=“/directory
38.
path/GRAPHIC#7” height=“50” width =“150></a>
39.
<tr>
40.
<a href=“URL or path for LINK #11” <img src=“/directory
41.
path/GRAPHIC#8” height=“50” width =“150></a>
42.
43.
</table>
44.
</frame>
45.
46.
<frame>
47.
48.
<table>
49.
<tr>
50.
<table width=“100%”border=0 cellspacing=15 cellpadding=0
51.
bgcolor=“#000000” align=center>
52.
<tr>
53.
<td><a href=“URL or path for link#1”>alt=“QUOTES”</a>
54.
<td><a href=“URL or path for link#2”>alt=“HOT PICKS”</a>
55.
<td><a href=“URL or path for link#3>alt=“CALENDERS”</a>
56.
<td><a href=“URL or path for link#4>alt=“NEWS”</a>
57.
</table><br>
58.
<br>
59.
<img src=“URL for GRAPHIC #9” align=center
60.
border=“0” height=“80” width=“325”>
61.
<br><t1>HEADLINE TEXT>/t1>
62.
<table>
63.
<Colgroup span=“2”>
64.
<Col width = “400” align=“center”>
65.
<Col width = “200” align=“center”>
66.
<tr><td>
67.
<img src=“/directory path/GRAPHIC #10” align = center
68.
border=“0” height=“200” width =“350”>
69.
<td>
70.
/* INPUT FOR ACCOUNT NUMBER AND ACCESS CODE */
71.
<SCRIPT LANGUAGE =“Javascript”>
72.
<!---
73.
[Javascript variable declarations]
74.
[Javascript functions to enable login] --!>
75.
</SCRIPT>
76.
<table>
77.
<td>
78.
<img src=“/directory path/GRAPHIC #11” align = center
79.
<table width=“150” height=“25”>
80.
<td>
81.
<font size=−2 face=“arial,helvetica,verdana”>Account #</font>
82.
<tr><input type=text name=“USERID” maxlength=9 size=20>
83.
<tr><font size=−2 face=“arial, helvetica”>Access Code: </font>
84.
<tr><input type=password name=“PASSWORD” maxlength=10 size=20
85.
onKeyDown=“SuppressEnterBell(event)”
86
onKeyPress=“SuppressEnterBell(event)”
87
onKeyUp=“SubmitOnEnter(event)”>
88.
<br>
89.
<br><input type=“button” value=“Login”
90.
OnClick=“ProcessForm( )”>&nbsp;&nbsp;<input type=“reset”>
91.
<br>&nbsp;
92.
<td>
93.
</table>
94.
</table>
95.
<tr>
96.
<img src=“/directory path/GRAPHIC #12” border=“0
97.
height=“200” width=“350”>
98.
<tr>
99.
<p>TEXT FOR TEXT OBJECT #1</p><br>
100.
<p>TEXT FOR TEXT OBJECT #2</p>
101.
</table>
102.
</frame>
103.
</frameset>
104.
</html>
Web page documents comprise HTML code that is parsed, interpreted, and rendered by a browser. An HTML document comprises a plurality of HTML “markup” elements (tags) with corresponding attributes, that are used to describe the layout and formatting of various objects, including plain text and graphic objects, embedded between tag pairs. Exemplary elements include text tags (e.g., <b></b> for bolding text), links (e.g., <a href=“URL”></a>), formatting (e.g., <p></p> for creating a new paragraph, graphical (e.g., img src=“name”>), wherein “name” defines an absolute or relative location at where an image is stored, tables (e.g., <table></table> creates a table, and forms (e.g., <form></form> creates all forms).
As of Netscape Navigator 3.0 (and other later browsers), web pages could include frames. When using frames, the display page is divided into multiple framed areas. Framing enables a single display page to include source code from several HTML documents (one for each frame) or optionally, enables a single document to include more complicated grouping of contents whereby different content groups are contained in separate frames. Frames are commonly found on the web pages at sites that display a great deal of text and graphical content, such as MSN.com, ESPN.com, and USAToday.com.
Display of a web page on a monitor involves the work of both a client (the web browser and the computer it runs on) and a server (the web server). The client and web server work in tandem to produce the desired display page, in the following manner. First, a request for a web page is made by the browser to the network server from which the web page is served through use of a Uniform Resource Locator (URL). The requested page, in the form of a main HTML document sent in one or more packets, is then transmitted over a network (e.g., the Internet) from the server to the computer on which the browser is running using the Hypertext transport protocol (HTTP). If only a single document is referenced in the HTML, this document will contain the HTML of the web page. If the page comprises frames based on separate HTML files, then these files will be identified by the server, and requested to be sent from the server (or other servers) to the browser. In addition, if the HTML includes tags identifying graphic image files, sound files and/or video files, the server will request that these files be sent to the browser as well. As the different objects of the page arrive at the client, they are stored in a cache, a combination staging area and storage area. Meanwhile, the browser begins using the elements in the cache to reassemble the Web page on screen, following the HTML codes in the main document to determine where to place the text, graphic, and video objects on the display page. Since all portions of the page do not arrive at the client computer at the same time, different parts of the page are rendered before others. Text, which typically comprises the primary non-tag content in the main HTML document and frame documents, is usually rendered first, followed by still and animated graphics, sounds and music, and then videos. In addition, further processing is necessary for many objects once they arrive at the client computer, such as decompressing the graphic, sound, and video files.
As discussed above, when the browser receives the HTML corresponding to the main document (and frame documents, if appropriate) a pre-rendering parsing of the HTML is performed to determine where to place the various objects on the display page. For example, elements such as tables, column definition, graphic images, paragraphs and line breaks are identified. If frames are included, each frame is examined in the sequential order it appears in the HTML document, or the order in which the HTML documents corresponding to the frames in a frameset are downloaded to the browser. During further processing, the actual objects are rendered in their respective positions. Some of these objects are rendered almost immediately, such as plain text, while other objects, such as graphic objects, must first be retrieved prior to being fully-rendered. With respect to tables, there are some instances in which the all of the objects corresponding to the cells in the table must be retrieved prior to rendering any of the table, while a well-designed table can be rendered incrementally. For example, by using Column grouping, the format of the corresponding table can be quickly determined by the browser.
While text objects are generally rendered very quickly, the rendering of graphic objects is generally much more time consuming. This is true for several reasons: the size of graphic objects (in terms of binary data) is many times greater than text that occupies the same area; many graphic images are stored in compressed formats (e.g., JPEG), and must be decompressed before they can be displayed; and graphic images are sent to the client separately from the HTML content of the page. In order to accommodate this, browsers typically rendering other portions of a page while the graphic images are being received from the web server and/or other servers on which the graphic image files are served from. With more advanced browsers, such as Netscape Navigator 3.0 or later and Microsoft Internet Explorer 4.0 and later, the approximate screen area where graphic elements are to be displayed are indicated with outlined “placeholder” boxes, and the graphical content of the images corresponding to each outline box is rendered when the content has been retrieved by the browser.
With reference to
A partially-rendered web page 64 corresponding to web page 10 and the foregoing conditions is shown in
As discussed above, after the browser has identified where various graphic objects are to be placed, placeholders comprising boxes that approximately cover the areas in which corresponding graphic images are to be rendered are displayed on the page prior to the rendering of such graphic images. In
Suppose that web page 10 is the home page for an online stock brokerage site, and it is the first page users of the brokerage site see when they link to the Internet site. Many users might want to request that a trade be made, which would requiring logging into the site first. However, under the foregoing conventional rendering scheme, the users would have to wait until the login objects (i.e., “ACCOUNT #” input box 55A, “ACCESS CODE” input box 56A, and “LOGIN” button 57A) are rendered before they could login to the web site. This would be very frustrating to many users.
This type of problem is addressed by the present invention, which enables the order in which display page objects are rendered based on where the browser user places the cursor on the display page in the following manner. With reference to the flowchart of
As the main document is received by the browser, it is parsed to identify a list of objects that must be requested from the server or other servers in order to complete render the page, block 102. The identity of the identified objects and the locations from which the identified objects are to be requested are placed onto a “request list”. The “request list” is implemented as a data structure in memory. The data structure may be constructed using any one of a number of data organization techniques known in the art. The browser also identifies the location of the various text and graphic objects are to be when the page is rendered, in accord with a block 104. This step comprises building a virtual layout of the page in memory, such as that shown in
In browsers that run under Microsoft WINDOWS™ operating systems (e.g., WINDOWS™ 95, 98, 2000 and NT), the display page is maintained as a virtual page with a resolution much higher than the final resolution of the display page. In this manner, a single page layout description can be mapped to various client computer display resolutions. For example, the virtual page resolution might be 20,000×20,000 units, which is mapped to display resolutions of 640×480 pixels, 1024×768 pixels or 1280×1024 pixels, etc.
While the page begins to be rendered, in a block 108, the browser determines if there are object requests to be made. If there are object requests in the request list to be processed, the browser determines the current location of the cursor on the display, block 110, and in particular, whether it is within the browser display window, block 112. Under WINDOWS™ operating systems, the position of the cursor is internally tracked by the operating system, and API (application program interface) calls are provided to enable application programs to obtain such information from the operating system. As discussed above, the operating system maintains a virtual page layout description through which a single layout description can be mapped to a variety of different display resolutions. The position of the mouse cursor is tracked using this same virtual page layout.
If the cursor is outside the browser's display window, the browser would simply obtain the “next” object request to be processed at the “top” or “start” of the request list, block 114. On the other hand, if the cursor is within the browser's display window, the browser would identify the object nearest to the current location of the cursor, yet to be rendered, and obtain the corresponding object request from the request list to process instead, block 116. [Note that by recursively checking for the current location of the cursor for as long as there are object requests to be processed, the present invention allows for the movement of the cursor while a page is being rendered.]
The task of identifying an object nearest to the current location of a cursor is normally performed by typical browser and is well known in the art. For example, when a user clicks on an object with an underlying link on the display page (such as a text hyperlink or a graphic with an underlying hyperlink), the browser knows what link to activate based on the location of the link on the virtual page and the location of the mouse when it is clicked on the virtual page.
Whether it is the “next” object request or an object request corresponding to an object closest to the current location of the cursor is obtained from the request list for processing, the browser continues its processing at block 118, wherein the browser requests a server for the object. Upon receipt of the object, the browser parses the object to determine whether further objects are to be requested, block 120. If there are, the browser appends additional requests into the request list for subsequent processing, block 120.
Thereafter, the browser inserts the received object in the queue for rendering in due course, 122. In one embodiment, if the object is received as a result of obtaining an object request corresponding to an object that is nearest to the current location of a cursor, the browser inserts the received object at the “head” of the queue to cause the received object to be rendered first. On the other hand, if the object is received merely as a result of obtaining the object request from the “top” of the request list, the browser appends the received object to the “end” of the queue to cause the received object to be rendered first. Further, the browser removes the processed object request from the request list, block 124.
It is noted that the foregoing description of an exemplary implementation of the present invention for browsers that run under WINDOWS™ operating systems is not meant to be limiting, as the present invention is applicable to other operating systems as well, including UNIX and APPLE™ operating systems.
It is preferable that users be able to tell the browsers they are using to activate and deactivate the reordering of the rendering of objects provided by the present invention. In accord With one approach, the browser should include a menu option for activating and deactivating the feature. Furthermore, it may be preferable to have the feature activated on a more selected basis, such as enabling the user to activate the feature on the fly. For instance, the user may activate the feature by double-clicking a right mouse button, whereby the rendering of a display page proceeds in its normal mode until such a user action is detected, whereupon, the method of the present invention is initiated to render the object nearest the mouse at the time the user action occurred. Other user actions, such as activating a key on a keyboard, could also initiate the method.
An exemplary rendered page 76 corresponding to web page 10 illustrates how the user-controlled ordering of the rendering of objects on a display page provided by the present invention would enable the stock brokerage site user to login without having to wait for most of the other objects on the page to be rendered. Suppose the user places a cursor 78 over “ACCOUNT#” input box 55A. In accord with the foregoing discussion, “ACCOUNT#” input box 55A will be the object closest to cursor 78, and therefore will be rendered first. (As discussed above, other objects that do not require data from outside the main HTML document (e.g., text objects 18A, 20A, 48A, 58A and 60A) preferably will be rendered at the same time “ACCOUNT#” input box 55A is loaded into the browser and rendered). Additionally, some graphic objects, such as “DOW” link 22A, may be rendered during this same time. Furthermore, since ACCOUNT# is contained within a local table definition, all of graphic object 54A, ACCESS CODE input box 56A, and LOGIN button 57A are logically related. Accordingly, these objects are rendered at approximately the same time as “ACCOUNT#” input box 55A.
As shown in exemplary display page 78, various objects that were rendered in display page 64 have been replaced with placeholders, including a placeholder 80 for graphic object #1(16B), a placeholder 82 for graphic object #3(24B), a placeholder 84 for graphic object #4(26B), a placeholder 88 for graphic object #10(50B), and a placeholder 90 for graphic object #12(52B). During subsequent rendering of display page 78, the placeholders will be replaced by their corresponding graphic objects when the data for such objects are received by the browser and reformatted for the display page.
With reference to
Personal computer 100 also optionally includes a compact disk-read only memory (CD-ROM) drive 114 into which a CD-ROM disk may be inserted so that executable files and data on the disk can be read for transfer into the memory and/or into storage on hard drive 106 of personal computer 100. Other mass memory storage devices such as an optical recorded medium or DVD drive may be included. The machine instructions comprising the software program that causes the CPU to implement the functions of the present invention that have been discussed above will likely be distributed on floppy disks or CD-ROMs (or other memory media) and stored in the hard drive until loaded into random access memory (RAM) for execution by the CPU.
The above description of illustrated embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise forms disclosed. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For examples, the present invention specifically contemplates that the cursor location based manner of controlling the order of rendering display content may be practiced on a set-up box, a notebook sized portable computer, a palm sized personal digital assistant (PDA), or a wireless cell phone, having the appropriate browser or “user agent” installed thereon. Accordingly, it is not intended that the scope of the invention in any way be limited by the above description, but instead be determined entirely by reference to the claims that follow.
Patent | Priority | Assignee | Title |
9344522, | Aug 24 2006 | BBY SOLUTIONS, INC. | Systems and methods for widget rendering and sharing on a personal electronic device |
Patent | Priority | Assignee | Title |
5546521, | Oct 15 1991 | International Business Machines Corporation | Dynamic presentation of contextual help and status information |
5675721, | Aug 08 1996 | REALITYWAVE INC | Computer network data distribution and selective retrieval system |
5692073, | Jul 30 1996 | Xerox Corporation | Formless forms and paper web using a reference-based mark extraction technique |
5778372, | Apr 18 1996 | Microsoft Technology Licensing, LLC | Remote retrieval and display management of electronic document with incorporated images |
5784058, | May 28 1996 | Oracle America, Inc | User-controllable persistent browser display pages |
5802292, | Apr 28 1995 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method for predictive prefetching of information over a communications network |
5835712, | May 03 1996 | Open Invention Network, LLC | Client-server system using embedded hypertext tags for application and database development |
5918239, | Jan 21 1997 | International Business Machines Corporation | Deferred display of web pages corresponding to links selected by user |
5987466, | Nov 25 1997 | International Business Machines Corporation | Presenting web pages with discrete, browser-controlled complexity levels |
5991760, | Jun 26 1997 | Hewlett Packard Enterprise Development LP | Method and apparatus for modifying copies of remotely stored documents using a web browser |
6018345, | Feb 18 1997 | Wistron Corporation | Cursor change indication of links in document interface |
6021418, | Feb 18 1997 | International Business Machines Corporation | Apparatus and method for displaying control-objects |
6023714, | Apr 24 1997 | Microsoft Technology Licensing, LLC | Method and system for dynamically adapting the layout of a document to an output device |
6031989, | Feb 27 1997 | Microsoft Technology Licensing, LLC | Method of formatting and displaying nested documents |
6046740, | Feb 07 1997 | JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT | Application testing with virtual object recognition |
6078935, | May 07 1996 | Sun Microsystems, Inc. | Tooltips on webpages |
6105028, | Jun 26 1997 | Hewlett-Packard Company | Method and apparatus for accessing copies of documents using a web browser request interceptor |
6118449, | Jun 25 1997 | LEXOS MEDIA IP, LLC | Server system and method for modifying a cursor image |
6201996, | May 29 1998 | Control Technology Corporationa | Object-oriented programmable industrial controller with distributed interface architecture |
6226642, | Sep 11 1997 | Wistron Corporation | Content modification of internet web pages for a television class display |
6252579, | Aug 23 1997 | IMMERSION CORPORATION DELAWARE CORPORATION | Interface device and method for providing enhanced cursor control with force feedback |
6263364, | Nov 02 1999 | R2 SOLUTIONS LLC | Web crawler system using plurality of parallel priority level queues having distinct associated download priority levels for prioritizing document downloading and maintaining document freshness |
6279006, | Apr 14 1998 | GOOGLE LLC | Structured data management system and computer-readable recording medium storing structured data management program |
6356283, | Nov 26 1997 | TUMBLEWEED HOLDINGS LLC | Method and system for HTML-driven interactive image client |
6362840, | Oct 06 1998 | Open Invention Network, LLC | Method and system for graphic display of link actions |
6393407, | Sep 11 1997 | ANDREAS ACQUISITION LLC | Tracking user micro-interactions with web page advertising |
6405221, | Oct 20 1995 | Oracle America, Inc | Method and apparatus for creating the appearance of multiple embedded pages of information in a single web browser display |
6510468, | Jan 22 1999 | Micro Focus International Limited | Adaptively transforming data from a first computer program for use in a second computer program |
6585776, | Sep 08 1997 | International Business Machines Corporation | Computer system and method of displaying hypertext documents with internal hypertext link definitions |
6608634, | Dec 23 1999 | THRYV, INC | System and method for demonstration of dynamic web sites with integrated database without connecting to a network |
6697859, | Mar 30 1998 | Canon Kabushiki Kaisha | Apparatus, method, program, and information processing system for prioritized data transfer to a network terminal |
6763496, | Mar 31 1999 | Microsoft Technology Licensing, LLC | Method for promoting contextual information to display pages containing hyperlinks |
6785865, | Mar 06 1997 | Microsoft Technology Licensing, LLC | Discoverability and navigation of hyperlinks via tabs |
6859821, | Jul 19 1999 | Microsoft Technology Licensing, LLC | Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration |
6961901, | Jan 29 1999 | International Business Machines Corporation | System for prioritizing of document presented on constrained receiving station interfaces to users of the internet personalized to each user's needs and interests |
6980205, | Aug 17 1999 | International Business Machines Corporation | Method and apparatus for fixing display information |
6990534, | Jul 20 2001 | RPX Corporation | Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions |
6993531, | Feb 04 1999 | WEB NAVIGATION TECHNOLOGIES LLC | System and method of routine navigation |
7073199, | Aug 28 2000 | ContentGuard Holdings, Inc.; CONTENTGUARD HOLDINGS, INC | Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine |
7272781, | Mar 06 1997 | Microsoft Technology Licensing, LLC | Stopping the downloading of at least one image on a browser by selecting a placeholder representing the image |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 08 2004 | XOUCIN INC | Hall Aluminum LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025356 | /0282 | |
Nov 23 2005 | Hall Aluminum LLC | (assignment on the face of the patent) | / | |||
May 23 2013 | Hall Aluminum LLC | Intellectual Ventures I LLC | MERGER SEE DOCUMENT FOR DETAILS | 030638 | /0422 |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Jul 28 2018 | 4 years fee payment window open |
Jan 28 2019 | 6 months grace period start (w surcharge) |
Jul 28 2019 | patent expiry (for year 4) |
Jul 28 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 28 2022 | 8 years fee payment window open |
Jan 28 2023 | 6 months grace period start (w surcharge) |
Jul 28 2023 | patent expiry (for year 8) |
Jul 28 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 28 2026 | 12 years fee payment window open |
Jan 28 2027 | 6 months grace period start (w surcharge) |
Jul 28 2027 | patent expiry (for year 12) |
Jul 28 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |