1. Technical Field of the Invention
The present invention generally relates to navigation within a Website. More particularly, the present invention is directed to a method and system for dynamically generating and maintaining a client-side breadcrumb navigation trail for improving navigation of a plurality of web pages within a Website.
2. Description of the Prior Art
Navigation within a Website generally falls within a simple linear navigation architecture, or the more complex breadth-emphasizing and/or depth-emphasizing navigational architectures. Invariably, a well-designed Website on the World Wide Web (i.e., “WWW”) and more generally on the Internet, adheres to a navigational architecture that enables a user to easily navigate through the Website's information space (i.e., plurality of web pages). The breadth-emphasizing navigation structure reminds the user of the full array of information within its information space. That is, such a structure depicts all top levels of the Website (i.e., categories) on a particular web page of the Website (i.e., as links to those top level web pages), such as at the left margin of the web page running the length of the web page or across the top of the web page running from the left margin to the right margin. The depth-emphasizing navigation structure depicts a hierarchical path through the information space from broader categories through more narrower categories through to a final web page, i.e., displaying links from a home page of the Website through a plurality intermediary web pages representing categories (i.e., child web pages) to the current page (i.e., also a child web page) atop the current web page as breadcrumbs, i.e., breadcrumb navigation. Particular web sites that implement breadcrumb navigation include CNET.com, Yahoo.com, ZDNnet.com, Sun.com, and the like.
Presently, myriad web sites implement breadcrumb navigation within their websites. Breadcrumbs are Hypertext Markup Language (i.e., HTML”) links that are displayed atop of web pages of a Website that link users to web pages that the user navigated through while at the Website. Furthermore, the links are displayed in order from a first web page (i.e., parent page) to subsequently visited web pages (i.e., child web pages). For example, the following links represent breadcrumb navigation from a parent web page to a plurality of subsequent web pages: “Home>Computers>Software>Internet>TCP/IP”. In the foregoing example of breadcrumb navigation, a user is presented with all of the pages that the user has visited from the parent web page “Home” to the current child web page “TCP/IP” in the information space of the Website. It should be noted that all of the pages except the last page “TCP/IP” are HTML links, since the last page represents a web page that is currently displayed. If, for example, the user were to click on the “Computers” link, a child web page associated with this link would include the following breadcrumb navigation “Home>Computers”. Thus, a user is enabled to traverse the visited web pages of a Website via the links atop each of the web pages by clicking on the appropriate link associated with a visited web page. Separators that distinguish one link from another generally include: “>”, “→”, “/” and the like.
Different breadcrumbing methods are known in the art. One of the methods hard codes breadcrumbs as static links in web pages requested by a user (i.e., hard-coded breadcrumbing). Another method implements breadcrumbs generated, maintained and inserted into web pages by a Website server (i.e., server-side breadcrumbing) and transmitted to the user requesting the web pages. Both of the foregoing methods provide for navigation of the Website's information space (i.e., plurality of web pages at the Website) for the user. A deficiency of the hard-coded breadcrumbing method is that the breadcrumbs (i.e., HTML links) may not accurately reflect correct order, link name and associated web pages for the navigation structure through the information space of the Website. That is, in order to correctly reflect the user's navigation through the Website's information space, breadcrumbs must be maintained and updated as the Website changes, i.e., changes occurring in the web page organization including renaming, deleting, adding and moving web pages within the Website. A deficiency of the server-side breadcrumbing is that such an implementation places an inordinate load on the server in terms of execution time and storage space required to satisfy all user requests for web pages utilizing breadcrumbs.
Therefore there is a need in the art for dynamic client-side breadcrumbing for abating deficiencies of the prior art breadcrumbing systems requiring hard coding of the breadcrumbs or placing a load upon the Website's server resources for performing breadcrumbing.