1. Technical Field
The invention relates generally to providing content over a network, and more particularly, to a solution for providing content that gives an end user a more responsive experience.
2. Background Art
Content, such as a web page, is increasingly provided over networks such as the Internet for display at a client. Many web pages are retrieved from a web server and displayed at the client with little or no required processing. As a result, a user at the client expects a particular time period within which a requested web page is obtained and displayed. When the requested web page is not displayed within the expected time period, the user will frequently attribute the delay to lost communications or a poor performing web server. In the former case, the user may re-request the web page in an attempt to reinitiate the communications, while in the latter case, the user may leave the web site and go to another web site. In either case, the user may have a poor impression of the web site.
However, the longer time period may be due to the inclusion of slow-loading data in the web page. For example, the web page may include data that must be retrieved from a database, data that must be compiled from multiple sources, data located at a remote server, or the like. In any event, the time required to access and compile the data for display at the client may be longer than the time period expected by the user. Further, the user does not necessarily have the ability to recognize the fact that slow-loading data is present. As a result, there is a need to provide the user a more responsive experience when display content (e.g., a web page) is requested that includes slow-loading data.
A current solution is to insert custom code into the display content that will insert a placeholder such as “Please wait, page is loading” in place of the slow-loading data. For example, the custom code can be written in a client-side scripting language (e.g., JavaScript) and/or server-side scripting language, which is included in a web page or the like. However, this code can be complex, and is often not reusable from one web page to another. Additionally, not all clients support or desire to support scripting language(s). In an alternative solution, the connection between a server and browser is left open, so that the browser can “push” the slow-loading data after it is received. However, this solution fails to provide the user any feedback while the slow-loading data is being received and requires specialized functionality in the browser for support.
In light of this, a need exists for an improved solution for providing content over a network. In particular, a need exists for a solution for providing feedback to a user on the status of requested display content without requiring the inclusion of custom code in the display content.
The invention provides a solution for providing content over a network. Specifically, under the present invention, a client requests display content that includes slow-loading data. In response, temporary content such as a progress indication is generated and provided for display at the client while the slow-loading data is obtained and incorporated into the display content to generate complete content. Subsequently, the complete content is provided for display at the client. In one embodiment, an indicator is included in the temporary content, which instructs the client to generate an update request for the display content after a time period has elapsed.
A first aspect of the invention provides a method of providing content over a network, the method comprising: receiving display content over the network, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; generating temporary content by replacing the tag in the display content with a placeholder; and providing the temporary content for display at a client.
A second aspect of the invention provides a method of providing content over a network, the method comprising: receiving display content from a content provider, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; generating temporary content by replacing the tag in the display content with a placeholder; providing the temporary content over the network for display at a client; receiving the slow-loading data from a data source; generating complete content based on the display content and the slow-loading data; and providing the complete content over the network for display at the client.
A third aspect of the invention provides a system for providing content over a network, the system comprising: a display system for receiving display content over the network, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; a temporary content system for generating temporary content by replacing the tag in the display content with a placeholder; and an interface system for providing the temporary content for display at a client.
A fourth aspect of the invention provides a program product stored on a recordable medium for providing content over a network, the program product comprising: program code for receiving display content, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; program code for generating temporary content by replacing the tag in the display content with a placeholder; and program code for providing the temporary content over the network for display at a client.
A fifth aspect of the invention provides a method of deploying an application for providing content over a network, the method comprising: providing a computer infrastructure being operable to: receive display content, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; generate temporary content by replacing the tag in the display content with a placeholder; provide the temporary content over the network for display at a client; receive the slow-loading data; generate complete content based on the display content and the slow-loading data; and provide the complete content over the network for display at the client.
A sixth aspect of the invention provides computer software embodied in a propagated signal for providing content over a network, the computer software comprising instructions to cause a computer system to perform the following functions: receive display content, wherein the display content includes a tag that indicates slow-loading data to be incorporated into the display content; generate temporary content by replacing the tag in the display content with a placeholder; provide the temporary content over the network for display at a client; receive the slow-loading data; generate complete content based on the display content and the slow-loading data; and provide the complete content over the network for display at the client.
The illustrative aspects of the present invention are designed to solve the problems herein described and other problems not discussed, which are discoverable by a skilled artisan.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various embodiments of the invention, in which:
It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
As indicated above, the invention provides a solution for providing content over a network. Specifically, under the present invention, a client requests display content that includes slow-loading data. In response, temporary content such as a progress indication is generated and provided for display at the client while the slow-loading data is obtained and incorporated into the display content to generate complete content. Subsequently, the complete content is provided for display at the client. In one embodiment, an indicator is included in the temporary content, which instructs the client to generate an update request for the display content after a time period has elapsed.
Turning to the drawings,
For some display content, content management system 30 will need to obtain slow-loading data from data source 20 for inclusion in the display content. As used herein, the term “slow-loading data” means any data for which an expected time period for obtaining and/or processing the data for display at client 14 is anticipated to exceed an acceptable time period for user 22. For example, slow-loading data can comprise data that is remotely located from content provider 12 and/or surrogate 16 and is obtained over a network 18. Further, slow-loading data can comprise data that is obtained as a result of processing other data. In any event, the expected time period can be calculated based on a history of obtaining and/or processing the slow-loading data, while the acceptable time period can be a set time period such as ten seconds, a selectable time period, or the like.
Regardless, communications between each of the computing devices (e.g., content provider 12, client 14, surrogate 16, and/or data source 20) can occur over one or more networks 18. To this extent, network 18 can comprise any combination of various types of communications links. For example, network 18 can comprise addressable connections that may utilize any combination of wireline and/or wireless transmission methods. In this instance, the computing devices may utilize conventional network connectivity, such as Token Ring, Ethernet, WiFi or other conventional communications standards. Further, network 18 can comprise one or more of any type of network, including the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc. Where a computing device such as client 14 communicates via the Internet, connectivity could be provided by conventional TCP/IP sockets-based protocol, and client 14 could utilize an Internet service provider to establish connectivity to network 18.
It is understood that each computing device can comprise any type of computing device such as a network server, a desktop computer, a laptop, a handheld device, a mobile phone, a pager, a personal data assistant, etc., that is capable of communicating with one or more other computing devices. For example,
In general, processor 20 executes computer program code, such as content management system 30, that is stored in memory 22 and/or storage system 29. While executing computer program code (e.g., content management system 30), processor 20 can read and/or write data (e.g., slow-loading data 50) to/from memory 22, storage system 29, and/or I/O interface 24. Bus 26 provides a communication link between each of the components in surrogate 16, while I/O device 28 comprises a device that enables a user to interact with surrogate 16 (e.g., keyboard, pointing device, display, etc.), and/or a device that enables surrogate 16 to communicate with one or more other computing devices such as client 14 shown in
Surrogate 16 is only representative of various possible combinations of hardware. For example, processor 20 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Similarly, memory 22 and/or storage system 29 can comprise any combination of various types of data storage and/or transmission media that reside at one or more physical locations. Further, I/O interface 24 can comprise any system for exchanging information with one or more I/O devices 28. Still further, it is understood that one or more additional components (e.g., system software, math co-processor, etc.) not shown in
It is understood that the other computing devices shown in
As discussed above, content management system 30 obtains display content from content provider 12 (
To this extent, content management system 30 is shown including a display system 32 for obtaining display content, a temporary content system 34 for generating temporary content, an interface system 36 for providing the temporary content for display at client 14 (
Display system 32 can obtain the display content from content provider 12 based on the request information. In particular, display system 32 can request the display content from content provider 12, which can provide the display content in response. In this case, display system 32 will receive the display content, and determine if the display content requires the incorporation of slow-loading data. When the display content does not require any slow-loading data, display system 32 can forward the display content to interface system 36, which can provide the display content for display at client 14.
However, when slow-loading data is to be incorporated into the display content, display system 32 can provide the display content to temporary content system 34 for further processing. The display content can use any solution for identifying slow-loading content to be incorporated. In one embodiment, the display content includes a tag that indicates the slow-loading data to be incorporated into the display content. The tag can identify the location of the slow-loading data, one or more operations (e.g., calculations) to be performed on data to generate the slow-loading data, etc. Additionally, the tag can include a placeholder that comprises display data that is temporarily inserted into the display content in place of the slow-loading data, and/or a time period that obtaining the slow-loading data is expected to take.
In any event, temporary content system 34 can generate temporary content for display at client 14 by replacing the tag in the display content with a placeholder. As mentioned above, the placeholder can be included in the display content or a standard placeholder (e.g., “Please wait, the page is loading . . . ”) can be inserted in place of the tag. Additionally, temporary content system 34 can add an indicator, such as a meta refresh tag or the like, to the temporary content. The indicator can signal client 14 to generate an update request for the display content. Further, the indicator can include a time period that client 14 should wait before generating the update request. The time period can be based on the time period that obtaining the slow-loading data is expected to take. In one embodiment, temporary content system 34 can adaptively determine the time period based on the amount of time that previous requests for the same slow-loading data, slow-loading data from the same source, and/or slow-loading data requiring similar processing have taken. For example, temporary content system 34 can maintain and use a running average of the ten most recent requests for the slow-loading data, or the like. Regardless, temporary content system 34 can provide the temporary content to interface system 36, which can provide the temporary content over network 18 (
Temporary content system 34 can further provide information on obtaining the slow-loading data to data system 38. The information can comprise the portion of the tag that identifies the source and/or processing required to obtain the slow-loading data. In any event, data system 38 can then request the slow-loading data from data source 20. As previously shown, data source 20 can be remotely located (e.g.,
Data system 38 can provide the slow-loading data to integration system 40, and temporary content system 34 can provide the display content to integration system 40. Integration system 40 will generate complete content based on the slow-loading data and the display content. For example, integration system 40 can replace the tag in the display content with the slow-loading data using any known solution. In any event, when interface system 36 receives an update request for the display content from client 14, integration system 40 can provide the complete content to interface system 36, which can provide the complete content for display at client 14.
It is understood that numerous variations are possible. For example, the complete content may not be available when the update request is received from client 14. In this case, interface system 36 can again provide temporary content that includes the indicator and/or time period so that client 14 will generate another update request. Similarly, the display content may comprise a plurality of tags indicating slow-loading data. In this case, the time period included in the temporary content can be selected based on the shortest expected time (more responsive), the longest expected time (fewer requests), or the like. Additionally, when an update request is received before all of the slow-loading data has been obtained, integration system 14 can provide temporary content that includes the slow-loading data already obtained and one or more placeholders for the remaining slow-loading data. Still further, it is understood that display content can be provided to client 14 without the use of surrogate 16 (
In any event,
When one or more tags are present, then in step S5, temporary content system 34 generates temporary content, and in step S6, temporary content system 34 inserts an indicator for client 14 to generate an update request. In step S7, interface system 36 provides the temporary content for display at client 14. Additionally, in step S8, data system 38 obtains slow-loading data from data source 20. Subsequently, in step S9, integration system 40 generates complete data based on the display content and the slow-loading data. In step S10, interface system 36 receives an update request for the display content from client 14, and in step S11, interface system 36 provides the complete content for display at client 14.
Various additional steps and/or enhancements can be performed in alternative embodiments of the invention. For example, prior to step S1, a developer such as a web page author generates the display content and can include one or more tags in the display content. Subsequently, the display content is deployed to content provider 12 (
It should be appreciated that the teachings of the present invention could be offered as a business method on a subscription or fee basis. For example, surrogate 16 (
The present invention also can be embedded in a computer program product or a propagated signal, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, propagated signal, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.