Network resource browsing or navigating

System and method of data transmission for computer networks utilizing HTTP

6944827

Abstract

The present invention permits textual data to be exchanged between a Web page displayed in a standard Microsoft Web browser window and a server, utilizing a non-persistent HTTP connection. Traditionally, each time textual data is received to the displayed Web page a record is added to the history list. This is problematic as it clutters the history list, compromises the functionality of the browser "Back" and "Forward" buttons, and results in undesirable server operations to be executed. The present invention utilizes several methods for loading textual data to a displayed Web page, without adding a URL to the history list. In one aspect of the invention, a

Claims

1. A method for bringing new data to a Web page displayed in Microsoft Web browser window at a client device, the method comprising:

displaying, in Microsoft Web browser window of a client device, a Web page, wherein said Web page no longer has any active HTTP connections;

transmitting, to a server, an HTTP request; and

receiving, from said server, an HTTP response associated with said HTTP request,

wherein the transmitting and receiving actions do not utilize Web browser plug-in, Java Applet, or ActiveX technology, and do not add a Universal Resource Locator (URL) to said application's history list.

2. A method as defined in claim 1, wherein information in said HTTP response is delivered to an HTML element of a Web page that is capable of loading a text file.

3. A method as defined in claim 2, wherein information in said HTTP response is delivered to an HTML
4. A method as defined in claim 3, wherein information in said HTTP response contains only one JavaScript instruction or line of JavaScript code.

5. A method as defined in claim 4, wherein said JavaScript instruction automatically executes a JavaScript function defined in said Web page.

6. A method as defined in claim 2, wherein information in said HTTP response is delivered to an HTML
7. A method as defined in claim 2, wherein information in said HTTP response is delivered to an HTML
8. A method as defined in claims 3,6, or 7, wherein said information from said HTTP response is displayed on said Web page.

9. A method as defined in claims 3,6, or 7, wherein said information from said HTTP response is processed by program code of a Web page.


Description

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not Applicable

REFERENCE TO A MICROFICHE APPENDIX

Not Applicable

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to transmitting information over computer networks, and more particularly, to a system and method of transmitting data from a server to a Web page displayed in a Web browser.

2. Description of the Related Art

The Internet is a computer network that provides access to the World Wide Web ("the Web"); a vast collection of pages comprised of text, hyperlinks, graphical elements, input elements (e.g. HTML text box), and program code (e.g. JavaScript). Graphical user interface programs called Web browsers are employed by Internet users to receive, or download, the Web pages from servers and display the pages at their client devices. A Web browser displays Web pages by interpreting the HTML document and executing any program code, which results in the showing text, hyperlinks, graphical elements, and input elements on a client display screen.

The rapid increase in the number of Internet users and the ubiquity of the Web browser have prompted companies to adopt Web pages for delivering, to end-users, time-sensitive information and mission-critical software applications. These Web-based applications generally require numerous transmissions of data between a server and the Web browser. Traditionally, for each transmission of data, a new page must be transmitted back to the user or their existing page must be refreshed. This traditional data transmission model, when used in the context of delivering web-based applications to end-users, greatly increases the number of redundant Web page refreshes. Web page refreshes are problematic, because they result in unnecessary server and bandwidth utilization, and force the user to wait for redundant pages to load. This negatively impacts the Web-based application's effectiveness and the Internet user's productivity, while compromising network efficiency and scalability.

Several developments illustrate the great effort at reducing redundant page refreshes and for providing a rich interactive user experience for Web pages without utilizing Web browser plug-ins, such as Macromedia's Flash player or Microsoft's ActiveX controls. One of which was developed and promoted by Microsoft.

Microsoft developed a Java Applet-based technology called "Remote Scripting", which allows information to be exchanged between a displayed Web page and the server, without having to refresh the page. After several years of promotion by Microsoft, however, "Remote Scripting" technology has not been widely adopted by Web developers. There are several reasons for this:

    • 1. Slow: In order to use "Remote Scripting," each Web page must include a Java Applet, acting as the client-side communication proxy, which must initialize Java Virtual Machine at the client's computer. Initialization of Java Virtual Machine and loading of the Java Applet is a slow process that introduces an undesirable delay in displaying the Web page for most personal computers.


  • 2. Limited Server Compatibility: "Remote Scripting" only supports Microsoft Web server software, such as Microsoft's IIS (Internet Information Server). Most high traffic and established commercial Websites, however, use a non-Microsoft platform or wish not to be limited to only using the Microsoft platform in the future.

    As a result of these serious limitations, most Web-based applications do not or cannot take advantage of Microsoft's "Remote Scripting" technology.

    Consequently, the most common method for achieving real-time Web page interactivity today, without Web browser plug-ins, is by using a
    Specifically, each time new information is loaded into an
    • 1. Clutters the history list: users must navigate through a large directory tree full of redundant entries before finding the desired Web page.
    • 2. Compromises Web page navigation: users must repeatedly click on the "Back" or "Forward" buttons before being able to leave the current Web page.
    • 3. Produces undesirable application operations: users will trigger duplicate operations at the server (e.g. charge my credit card) when navigating with the browser's "Back" and "Forward" buttons.
      These problems affect many Internet users today as the majority of these users utilize a Microsoft Web browser. Furthermore, as Netscape winds down its Web browser business and Microsoft becomes the de facto Web browser, this problem will soon plague every single Internet user, and thus cannot be ignored.


    From the discussion above, it should be apparent that there is a need for better method of transmitting data from a server to a displayed Web page over HTTP. Specifically, a method that offers at least the same benefits of the
    BRIEF SUMMARY OF THE INVENTION

    The present invention permits the downloading of new information to a Web page within a Microsoft Web browser through a non-persistent HTTP connection, and without utilizing Web browser plug-in, Java Applet, or ActiveX technology. Furthermore, the present invention accomplishes the downloading action to the Web page without adding a record or URL to the Web browser's history list.

    Other features and advantages of the present invention should be apparent and will be better understood by reference to the drawings and the following detailed description, which illustrate, by way of example, the principles of the invention.

    BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

    FIG. 1 shows a system having Web pages on client computers and Web server constructed in accordance with the present invention.

    DETAILED DESCRIPTION OF THE INVENTION

    Generally speaking, new data is transmitted from a server to a Web page within a Web browser over a non-persistent or persistent connection, either by utilizing browser-native or non-browser-native client-side technology. A non-persistent connection is established through the standard use of HTTP, whereas a persistent connection is typically established through the use of TCP/IP or through some non-standard use of HTTP. Browser-native client-side technologies include HTML and JavaScript, whereas non-browser-native client-side technologies require some type of web-browser plug-in, such as Microsoft Corporation's ActiveX, Sun Microsystems' Java Virtual Machine, Macromedia Corporation's Flash, Active State's Tcl/Tk, or Curl Corporation's Surge, just to name a few.

    Typically, when transmitting data from a server to a Web page within a Microsoft Web browser, utilizing a non-persistent connection and browser-native client-side technology is superior for the following reasons:
    • 1. Low overhead: HTTP (i.e. a non-persistent connection) closes the socket after data has been transmitted, whereas a persistent connection does not. Thus, because each open socket consumes server resources, using HTTP in a non-persistent connection manner lowers the server overhead required.
    • 2. Broad reach: Non-browser-native client-side technology requires a Web browser plug-in to function, which usually is not included with the Web browser and requires a software download. Most users are weary of installing new software on their machines, and/or are reluctant to wait for the download to complete. Thus, a Web page that does not require a Web browser plug-in is accessible by all Internet users.
    • 3. High performance: many of us who have experience with Java Applets and other non-browser native technology are all too familiar with the performance issues of such technologies. They are generally slow to load and run, offer inconsistent performance across various system configurations, and can even crash the Web browser and operating system. On the other hand, HTML and JavaScript are fast and stable, offering consistent performance and reliability across any computer configuration.
      One disadvantage of utilizing browser-native client-side technology for downloading data is that each time a new text file or Web page is download to the browser, that action is recorded in the Web browser's history list. The Microsoft Web browser provides no means for erasing a given history record, once it has been added.


  • The present invention outlines a system and provides several implementations for downloading new information to a Web page through a non-persistent HTTP connection, utilizing browser-native client-side technology, and preventing the creation of a given history record.

    System Configuration

    FIG. 1 shows a system 100 consisting of a Microsoft browser 101, Web page 102, a data receiver 103, a non-persistent HTTP network connection 104, a Web server 105, and a data transport file 106. The Microsoft Web browser 101 utilizes the HTTP connection 104 to request the Web page 102. Meanwhile, a file exists at the Web server that contains some data, the data transport file 106, or some mechanism exists for dynamically generating its data at runtime. The Web page 102 sends a request for the data transport file 106, which is downloaded to the data receiver 103. Once the data transport file 106 is contained within the Web browser 101, its data is either displayed to the user or processed by some client-side scripting (e.g. JavaScript).

    System Implementation

    Because the data receiver is lacking today, it is the key stumbling block in this outlined system. Furthermore, in order for this system to be effective, the data receiver must be able to download the data transport file without adding a URL to the Web browser's history list. The data receiver can potentially be implemented by any HTML element that has a "SRC" property and can load a text file (e.g. the data transport file). Examples of these supported by the Microsoft Web browser are the HTML

    The outlined system can be generally implemented as follows. We will use a HTML
    A global variable is defined in client.htm for future use. When the data transport file is delivered to the data receiver, the global variable data_holder will hold its data so it may be accessible to some JavaScript code or so it may be displayed to the user.
    • var data_holder;


  • A empty HTML