[go: up one dir, main page]

US20140143644A1 - Web browser page transition acceleration - Google Patents

Web browser page transition acceleration Download PDF

Info

Publication number
US20140143644A1
US20140143644A1 US14/046,811 US201314046811A US2014143644A1 US 20140143644 A1 US20140143644 A1 US 20140143644A1 US 201314046811 A US201314046811 A US 201314046811A US 2014143644 A1 US2014143644 A1 US 2014143644A1
Authority
US
United States
Prior art keywords
page
web page
master
detail
web
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/046,811
Inventor
Michael Smedberg
Dan Fabulich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Redfin Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US14/046,811 priority Critical patent/US20140143644A1/en
Publication of US20140143644A1 publication Critical patent/US20140143644A1/en
Assigned to REDFIN CORPORATION reassignment REDFIN CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FABULICH, DAN
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06F17/2247
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • G06F17/2235
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0257User requested
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Electronic shopping [e-shopping] using intermediate agents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Electronic shopping [e-shopping] by investigating goods or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/16Real estate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services

Definitions

  • a standard method to address this performance problem is to program pages M and D as, effectively, a single page.
  • client side code in page M typically JavaScript
  • logic is invoked which redraws the contents of the page to look like page M. This avoids cost of making a second request for page M to the server.
  • This approach works well, but is difficult for web developers to code. If a developer has already created a system that implements pages M, D, D′, and D′′ in the simple but slow manner, converting to the more performant solution generally involves substantial changes to the logic used to generate all pages, at significant expense.
  • FIG. 1 is a block diagram that illustrates components of the page transition system, in one embodiment.
  • FIG. 2 is a flow diagram that illustrates processing of the page transition system to transition from displaying a master web page to a detail web page, in one embodiment.
  • FIG. 3 is a flow diagram that illustrates processing of the page transition system to transition from displaying a detail web page to a previously displayed master web page, in one embodiment.
  • FIG. 4 is a display diagram that illustrates a visual representation of the operation of the page transition system, in one embodiment.
  • Embodiments of the invention may be operational with numerous general purpose or special purpose computing system environments or configurations.
  • Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer and/or by computer-readable media on which such instructions or modules can be stored.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • Embodiments of the invention may include or be implemented in a variety of computer readable media.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer.
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • the combination of software or computer-executable instructions with a computer-readable medium results in the creation of a machine or apparatus.
  • the execution of software or computer-executable instructions by a processing device results in the creation of a machine or apparatus, which may be distinguishable from the processing device, itself, according to an embodiment.
  • a computer-readable medium is transformed by storing software or computer-executable instructions thereon.
  • a processing device is transformed in the course of executing software or computer-executable instructions.
  • a first set of data input to a processing device during, or otherwise in association with, the execution of software or computer-executable instructions by the processing device is transformed into a second set of data as a consequence of such execution.
  • This second data set may subsequently be stored, displayed, or otherwise communicated.
  • Such transformation may also be a consequence of, or otherwise involve, the physical alteration of, for example, the states of registers and/or counters associated with a processing device during execution of software or computer-executable instructions by the processing device.
  • a process that is performed “automatically” may mean that the process is performed as a result of machine-executed instructions and does not, other than the establishment of user preferences, require manual effort.
  • a page transition system is described herein that allows for fast switching between a master page and one or more detail pages of a website, without substantial recoding of the website.
  • a software library e.g., implemented in JavaScript
  • HTML hypertext markup language
  • the system provides for the manipulation of a displayed URL, browser history, and page title to make transitions seamless and appear to the user like the user has navigated from M to D or back even though the user has not done so.
  • the page transition system provides smooth page transitions that are faster for users and lower in burden on the server.
  • the page transition system is implemented by placing all visible content in page M within a single DOM element with a known identifier (ID) (e.g., a single HTML DIV tag). Links in page M that refer to pages D, D′, D′′, and so on are handled via an “OnClick” handler or similar device.
  • ID e.g., a single HTML DIV tag.
  • the hander Upon receiving an indication that a user wants to forward navigate to one of the detail pages, the hander hides the known DOM element in page M, creates an IFRAME that fills the entire browser viewport and displays content from page D, sets the visible URL for the current page to the URL of page D (e.g., using the browser history manipulation application programming interface (API) that was introduced in HTML5), fills the IFRAME with placeholder content while content for D is loading (e.g., the text “Loading . . . ”), and when the content for page D has loaded, copies the title from the IFRAME into the title of the topmost frame (so that the title visible in the browser corresponds to the title for page D).
  • Any other links on page M act as normal. For instance, if a link on page M links to page X, it does not need to change.
  • the system detects the pressing or invocation of the browser back function.
  • the IFRAME displaying content for page D is then hidden or destroyed (if it is expected that the user may return to page D, it may be hidden to allow for a fast re-display of D).
  • the known DOM element for page M is unhidden to display the content for M.
  • the browser title is returned to the title of page M. If page M has any “OnReturn” logic, it is invoked by the system at this point.
  • Page D may also contain links to other details pages, such as D′ or D′′. These links can also display in the IFRAME, as if the user had clicked to them from page M. The steps to click from page D to D′ are similar to those for clicking from M to D′.
  • the IFRAME has to be updated with content from D′, the browser title and URL are updated, and so forth.
  • Page D may also contain links to pages other than M, and D′. For example, page D may link to page X, which is unrelated to M or D.
  • the browser breaks out of the IFRAME that is displaying content for page D. To do this, the browser navigates to page X by setting “window.top.location” or similar depending on the browser (instead of the more typical “window.location”).
  • FIG. 1 is a block diagram that illustrates components of the page transition system, in one embodiment.
  • the system 100 includes a server communication component 110 , a page loading component 120 , a master management component 130 , a page rewriting component 140 , a detail management component 150 , a forward transition component 160 , a backward transition component 170 , and a system cleanup component 180 .
  • a server communication component 110 includes a page loading component 120 , a master management component 130 , a page rewriting component 140 , a detail management component 150 , a forward transition component 160 , a backward transition component 170 , and a system cleanup component 180 .
  • the server communication component 110 communicates from a client browser to a web server that provides web pages for a web-based application.
  • the component 110 uses one or more well-known and/or proprietary protocols, such as hypertext transport protocol (HTTP) to transmit requests for web pages and to receive web-based responses, such as HTML, XML, or other data.
  • HTTP hypertext transport protocol
  • the server communication component 110 may offer a variety of communication modes, such as synchronous web requests as well as asynchronous web requests. An asynchronous web request can allow the web browser to request additional data from the web server without leaving a currently displayed web page.
  • the page loading component 120 receives web-based information from the web server and prepares the web-based information for display.
  • the information may include HTML or other formatted information for display to the user, and may be arranged using a document object model (DOM) or other hierarchical or non-hierarchical format that can be accessed, modified, and rendered by client side scripting and the web browser.
  • DOM document object model
  • a user requests a web page by providing a URL to a web site or page within a website, the browser requests information from the specified domain and virtual directory at the URL, and the web server returns information associated with that URL.
  • the page loading component 120 then renders the returned information for display to the user.
  • the master management component 130 manages rendering and display to a user of a master web page from which a user can navigate to one or more detail web pages.
  • the master web page is an ordinary web page that in the context of a particular web application may be one that a user navigates to frequently.
  • the page that displays the user's inbox may be a master web page.
  • the search page or results list may be a master web page.
  • the master management component 130 handles the incorporation of the master web page content received from the server into a client side construct, such as an HTML DIV tag, where the display of the master web page can be managed by the client without modifying the web responses received from the server.
  • the component 130 also includes one or more scripts downloaded and executed at the client, that manage the transition to and from master web pages and handle any links on the master web page.
  • the page rewriting component 140 performs one or more modifications to the master and other web pages received from the server to manage more efficient transitions between master and detail web pages. For example, the component 140 may identify links on a master page that refer to a detail page, and links on a detail page that refer to the master page, and replace those links with references to scripts that carry out the smooth transitions between pages described herein.
  • the page rewriting component 140 is responsible for modifying and or removing any web content on a page that might interfere with or break the illusion of a smooth transition between pages that is designed to look like normal navigation to another page or normal navigation back from one page to a previously visited page.
  • the detail management component 150 manages rendering and display to the user of one or more detail web pages referenced by the master web page.
  • a detail web page is typically one that the user visits and then returns to the master web page.
  • An example is a car listing on an auto classifieds web site, in which a user may receive a list of results and successively navigate to detail web pages for each of the cars in the results.
  • the rendering of the master and detail web pages typically involves loading data from the server and is time consuming enough to want to avoid reloading the data when possible.
  • Typical web and browser caching is often ineffective for web pages with moderate to high levels of dynamic and personalized content, such that the content is frequently reloaded, possibly as often as each visit to the web page.
  • the forward transition component 160 navigates a user from the master web page to one of the detail web pages in a manner that hides rather than discarding the master web page.
  • the component 160 effects a transition to the detail web page not by submitting a typical browser request and navigating fully to the detail web page, but rather by requesting and inserting the detail web page into an IFRAME tag or other similar construct on the client side that may allow display of only the detail web page content and hiding of the master web page content. While the detail web page is being displayed, both the master and detail web page content are available in the browser's memory.
  • the forward transition component 160 may also modify various elements of the browser experience to provide an illusion to users that the usual behavior of page navigation has occurred. For example, the component 160 may modify the title bar, displayed URL, and browser history to have the same values as navigating to the detail web page separately.
  • the backward transition component 170 navigates a user form a detail web page back to the master web page by unhiding an in-memory copy of the master web page rather than re-requesting the master web page from the server.
  • the user may press the back button of the browser, select a link to the master web page from the detail web page, or perform some other action that requests navigation to the master web page.
  • the component 170 hides or discards the detail web page information and unhides the master web page information so that it is once again displayed without having to make any requests to the server or wait for the response.
  • the transition is both faster and less resource intensive to the server.
  • the system 100 does this with little to no modification of web server content.
  • a web site owner can turn on the system 100 by simply including a script to be downloaded to the client, and an identification of which pages should be treated as master and detail pages. The client then invokes the script, which handles the transitions transparently to the server.
  • the backward transition component 170 may keep the detail page in memory in the event that the user selects it again.
  • the system 100 can use a variety of heuristics to determine when to discard detail web pages, such as keeping a fixed number in a most recently used cache, discarding a detail page only after another detail page is selected, and so forth. Keeping more detail web pages in memory uses more memory but also allows fast transitions for a greater variety of potential user requests.
  • the system cleanup component 180 cleans up resources used by the system 100 upon an exit from the master and detail web pages. For example, if the user navigates to another page entirely, the system may clean up resources, such as in-memory cached versions of pages, used to effect the smooth transitions described herein.
  • the system cleanup component 180 may also destroy or discard from memory detail web pages that have not been requested for a certain amount of time or after other pages are requested that indicate that the detail page is no longer likely to be requested.
  • FIG. 2 is a flow diagram that illustrates processing of the page transition system to transition from displaying a master web page to a detail web page, in one embodiment.
  • the system receives a request from a client web browser to load a master web page from a server.
  • the request may be received in response to the user typing a URL into an address bar, following a link on a loaded web page, or other user action.
  • the master web page is a web page that provides a leaping off point to a number of other pages, and is frequently revisited by the user.
  • the master web page may be a list of search results, where the user navigates to each result and then back to the master web page until the user finds what he or she is looking for.
  • the system requests and loads the requested master web page from the server.
  • the server provides the master web page as HTML or other markup language and potentially other types of content, such as dynamically loaded personalized content.
  • the dynamically loaded content may include asynchronous JavaScript and XML (AJAX) or other calls that retrieve information from the server after or during loading of the main page content.
  • AJAX asynchronous JavaScript and XML
  • the process used to load the master web page from the server is sufficiently complex and time consuming that it is desirable not to repeat the process unnecessarily.
  • the system described herein promotes reuse of the effort spent to load the master web page by avoiding common scenarios under which the master web page's loaded contents are discarded.
  • the system displays the loaded master web page to the user in a window of the client web browser.
  • the master web page may include a variety of static and interactive elements for the user to view and interact with.
  • the system rewrites portions of the page received from the server before displaying the master web page to the user. Because the system wants to reduce discarding the master web page upon navigation to another page, the system may rewrite links to select other pages on the master web page to cause scripting actions to be invoked rather than navigating away from the master web page.
  • the system intercepts a request to load a detail page from the master web page.
  • the request may originate from the user clicking on a link within the master web page, or performing some other action to select the detail page.
  • the system intercepts the request by previously rewriting the link to point to client side script controlled by the system, rather than the original link target.
  • the system may provide an OnClick handler that is invoked by the client web browser when the user clicks on the link that previously referenced the detail page.
  • the system requests and loads the detail page from the server.
  • the detail page may contain a variety of static and dynamic content, delivered synchronously and asynchronously to the client web browser.
  • the system causes the client web browser to load the detail web page while the master web page is still in memory and displayable.
  • the system may display a loading indication to the user, such as an hourglass or temporary web page (e.g., with the text “Loading . . . ”) that indicates to the user that more content is coming soon.
  • the system stores the loaded master web page in a hidden section of a container page.
  • the container page includes containers for isolating multiple pages that can be switched between or among in a single page.
  • the containers may include common HTML tags, such as DIV and IFRAME that are suitable for isolating web content from other web content on the same page, and that allow turning visibility off and on so that various containers can be switched on and off at any given time and under any given circumstances.
  • the system places the master web page in one such container and invokes the DOM of the container page to indicate that the container may not be visible to the user.
  • the system places the loaded detail page in a second section of the container page, and makes the second section visible to the user.
  • the second section may be a container that is an IFRAME, where the IFRAME displays as the entire content of the page, from the user's perspective.
  • both the master web page and the detail web page are loaded in the web browser's memory, and should the user elect to return to the master web page the system can cause that to happen by simply hiding the detail page section of the container page and showing the master page section of the container page. This process is described further with reference to FIG. 3 .
  • the system displays the loaded detail page to the user in a window of the client web browser.
  • the detail page appears as if it is the only page loaded, even though the master web page is still in memory.
  • the system may also rewrite portions of the detail web page to cause the system to be invoked upon certain user actions, such as navigating away from the detail page and back to the master web page. Any links on the detail page to the master web page may be overwritten by the system to invoke a script-based handler function that effects the transition smoothly from the in-memory copy of the master web page.
  • the system may also hook the back button using browser scripting elements that allow modification and/or control of the client.
  • the system optionally modifies browser info to complete an appearance to the user that the detail page has been loaded. These actions may include modifying the address bar, title bar, browser history, and other elements to make it appear to the user that the detail page has been loaded in the traditional manner, rather than being loaded in conjunction with the master web page within the same container page. After block 290 , these steps conclude.
  • FIG. 3 is a flow diagram that illustrates processing of the page transition system to transition from displaying a detail web page to a previously displayed master web page, in one embodiment.
  • the system receives in a client web browser a request to navigate to a previously displayed master web page while displaying a detail page, wherein upon loading the detail page the master web page was retained hidden in a container page that includes the master web page and detail page rather than being discarded.
  • the request to navigate back may come from the user selecting a back button or menu item of the client web browser, clicking a link on the detail page that refers to the master web page, or performing some other action.
  • the system invokes client side script to begin performing the steps to hide the detail page and restore the visible state of the master web page.
  • the system hides the detail page by selecting an element of the container page that includes the detail web page and hiding that element.
  • the system may execute client side script that accesses a document object model (DOM) representing the container page and included master web page and detail page. Through the DOM, the system can set a visibility property of various sections of the container page, including the element container the detail web page. In addition to hiding the detail page, the system may also destroy the detail page by removing it from memory.
  • DOM document object model
  • the system optionally destroys the hidden detail page by removing the page from memory and from the container page. Whether the system keeps a detail page in memory depends largely on the type and purpose of the web application employing the system. In applications where users are likely to request the same detail page again, it may be worth retaining the detail page in memory for some amount of time or under certain conditions. For other applications, the extra memory consumed by keeping one or more detail pages in memory after they are no longer being displayed may be undesirable and thus the detail pages may be discarded upon return to the master web page.
  • the system locates the master web page in memory by identifying an element of the container page that contains the master web page.
  • the system may locate the master web page by invoking the DOM through client script and identifying a DIV or other tag that contains the master web page within the container page.
  • the system unhides the master web page by modifying the visibility of the element of the container page that contains the master web page. In this way, the detail page has been hidden and the master web page exposed, so that the user once again may see only the master web page. From the user's perspective, the back action has done what it normally does to load the master web page. However, a substantial amount of typical effort has been saved. Namely, the server has not been burdened with another request for the master web page and any dynamic and personalized content of the master web page has already been received and processed for display. Thus, the system displays the master web page much more rapidly than traditional methods, and does so without asking for significant modification of the web pages associated with a web application.
  • the system restores any modified browser info to complete an appearance that the client web browser has navigated back to the master web page. For example, the system may modify the address bar, title, history, and other browser elements to make it appear to the user that the user has navigated back to the master web page. If the master web page has any “OnReturn” or similar logic, the system also invokes it so that the master web page can refresh any needed content. After block 360 , these steps conclude.
  • the detail page may also contain links to other details pages.
  • the system may also handle and display these other detail pages in an IFRAME or similar element, as if the user had clicked to them from the master web page.
  • the steps to navigate from the first detail page to the second detail page are similar to those for navigating from the master web page to the second detail page.
  • FIG. 4 is a display diagram that illustrates a visual representation of the operation of the page transition system, in one embodiment.
  • the diagram includes a first display 410 showing the display of the master page in a client web browser to a user.
  • the display 410 includes the master web page displayed in a window 420 associated with content placed in a visible HTML DIV tag.
  • the diagram also includes a second display 430 showing the display of a detail page after navigation there form the master web page.
  • the master page 440 is still in the DIV, but the DIV has been hidden by client side scripting calls that modified the HTML DOM.
  • the second display 430 also contains an HTML IFRAME 450 that includes the content of the detail page.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Primary Health Care (AREA)
  • Game Theory and Decision Science (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A page transition system is described herein that allows for fast switching between a master page and one or more detail pages of a website, without substantial recoding of the website. The system includes a software library that handles link click events in the master page and the back button in detail pages. When the user clicks a link in the master page, the content of the master page is hidden and the content of the detail page is displayed in a hypertext markup language (HTML) iframe or similar construct that occupies the entirety of the browser viewport. When the user clicks the back button in the detail page to return to the master page M, the iframe is hidden or destroyed, and the content for the master page is unhidden. Thus, the system provides smooth page transitions that are faster for users and lower in burden on the server.

Description

    PRIORITY CLAIM
  • The present application claims priority from U.S. Provisional Application No. 61/710,606, filed Oct. 5, 2012, which is incorporated by reference as if fully set forth herein.
  • BACKGROUND
  • Many websites today include multiple pages in a normal workflow that the user visits. For example, consider an e-commerce website in which a user may start with a search or product catalog before drilling down to a detail page of a particular product. Another example is a real estate website, in which a user starts with an area search for homes and drills down to a home detail page, and perhaps ever further down to photos or other specific details of an individual home. Thus, given a web site comprised of a master page M and numerous details pages D, D′, D″, and so on, in normal usage, a user views page M, then page D, then presses the browser back button to return to page M, then views page D′, and so forth. An email reader is another common example of such a system in which a user starts at a list of messages, and then opens each message in succession.
  • As web pages have become more complex and included more dynamic and personalized content, the cost and resources consumed loading each page becomes substantial and has noticeable performance implications for the user. In the examples above, standard web programming practice is to implement pages M, D, D′, and D″ as different pages with different uniform resource locators (URLs). Each time the user views a page, the browser will request the resources from that page from the server, which may involve considerable overhead, forcing the user to wait. In particular, when the user navigates from page M to page D, then back to page M, the browser will request the resources for page M twice—once for the original viewing, and again when the user presses the back button. The user expects the back button to immediately display the content for page M, but in some cases, displaying the correct content for page M may involve considerable delay.
  • A standard method to address this performance problem is to program pages M and D as, effectively, a single page. When a user navigates from page M to page D, the browser does not make a full page request to a new URL. Instead, client side code in page M (typically JavaScript) redraws the contents of the page such that it looks like page D by dynamically swapping in and out (or making visible and invisible) particular content. It appears to the user that the browser has navigated to page D, but in fact, it has not. When the user presses the back button, logic is invoked which redraws the contents of the page to look like page M. This avoids cost of making a second request for page M to the server. This approach works well, but is difficult for web developers to code. If a developer has already created a system that implements pages M, D, D′, and D″ in the simple but slow manner, converting to the more performant solution generally involves substantial changes to the logic used to generate all pages, at significant expense.
  • BRIEF DESCRIPTION OF THE DRAWING
  • FIG. 1 is a block diagram that illustrates components of the page transition system, in one embodiment.
  • FIG. 2 is a flow diagram that illustrates processing of the page transition system to transition from displaying a master web page to a detail web page, in one embodiment.
  • FIG. 3 is a flow diagram that illustrates processing of the page transition system to transition from displaying a detail web page to a previously displayed master web page, in one embodiment.
  • FIG. 4 is a display diagram that illustrates a visual representation of the operation of the page transition system, in one embodiment.
  • DETAILED DESCRIPTION
  • Embodiments of the invention may be operational with numerous general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer and/or by computer-readable media on which such instructions or modules can be stored. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
  • Embodiments of the invention may include or be implemented in a variety of computer readable media. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • According to one or more embodiments, the combination of software or computer-executable instructions with a computer-readable medium results in the creation of a machine or apparatus. Similarly, the execution of software or computer-executable instructions by a processing device results in the creation of a machine or apparatus, which may be distinguishable from the processing device, itself, according to an embodiment.
  • Correspondingly, it is to be understood that a computer-readable medium is transformed by storing software or computer-executable instructions thereon. Likewise, a processing device is transformed in the course of executing software or computer-executable instructions. Additionally, it is to be understood that a first set of data input to a processing device during, or otherwise in association with, the execution of software or computer-executable instructions by the processing device is transformed into a second set of data as a consequence of such execution. This second data set may subsequently be stored, displayed, or otherwise communicated. Such transformation, alluded to in each of the above examples, may be a consequence of, or otherwise involve, the physical alteration of portions of a computer-readable medium. Such transformation, alluded to in each of the above examples, may also be a consequence of, or otherwise involve, the physical alteration of, for example, the states of registers and/or counters associated with a processing device during execution of software or computer-executable instructions by the processing device.
  • As used herein, a process that is performed “automatically” may mean that the process is performed as a result of machine-executed instructions and does not, other than the establishment of user preferences, require manual effort.
  • A page transition system is described herein that allows for fast switching between a master page and one or more detail pages of a website, without substantial recoding of the website. Instead of substantially recoding pages M and D in the example above to be a single page with intertwining (and complicated) logic, a software library (e.g., implemented in JavaScript) is introduced that handles link-click events in page M, and the back button in page D. When the user clicks a link in M, the content of page M is hidden and the content of page D is displayed in a hypertext markup language (HTML) iframe or similar construct that occupies the entirety of the browser viewport. When the user clicks the back button in page D to return to page M, the iframe is hidden or destroyed, and the content for page M is unhidden (a virtually instantaneous operation). During this process, the content of M may be only loaded once, and is not re-requested from the server when the user returns from D to M. In this way, the system can be dropped into place for existing large websites and web applications, and provides immediate client performance and server scalability benefits without costly recoding. The system also preserves master content contained in hidden document object model (DOM) elements, so page logic continues to work as expected. The system provides for the manipulation of a displayed URL, browser history, and page title to make transitions seamless and appear to the user like the user has navigated from M to D or back even though the user has not done so. Thus, the page transition system provides smooth page transitions that are faster for users and lower in burden on the server.
  • In some embodiments, the page transition system is implemented by placing all visible content in page M within a single DOM element with a known identifier (ID) (e.g., a single HTML DIV tag). Links in page M that refer to pages D, D′, D″, and so on are handled via an “OnClick” handler or similar device. Upon receiving an indication that a user wants to forward navigate to one of the detail pages, the hander hides the known DOM element in page M, creates an IFRAME that fills the entire browser viewport and displays content from page D, sets the visible URL for the current page to the URL of page D (e.g., using the browser history manipulation application programming interface (API) that was introduced in HTML5), fills the IFRAME with placeholder content while content for D is loading (e.g., the text “Loading . . . ”), and when the content for page D has loaded, copies the title from the IFRAME into the title of the topmost frame (so that the title visible in the browser corresponds to the title for page D). Any other links on page M act as normal. For instance, if a link on page M links to page X, it does not need to change.
  • When the user wants to backward navigate to a previous page, the system detects the pressing or invocation of the browser back function. The IFRAME displaying content for page D is then hidden or destroyed (if it is expected that the user may return to page D, it may be hidden to allow for a fast re-display of D). The known DOM element for page M is unhidden to display the content for M. The browser title is returned to the title of page M. If page M has any “OnReturn” logic, it is invoked by the system at this point.
  • On page D, there may be other links to page M, in addition to the “back” button. These links may be overridden or intercepted to perform the same work as the back button. Page D may also contain links to other details pages, such as D′ or D″. These links can also display in the IFRAME, as if the user had clicked to them from page M. The steps to click from page D to D′ are similar to those for clicking from M to D′. The IFRAME has to be updated with content from D′, the browser title and URL are updated, and so forth. Page D may also contain links to pages other than M, and D′. For example, page D may link to page X, which is unrelated to M or D. When the user clicks the link to X, the browser breaks out of the IFRAME that is displaying content for page D. To do this, the browser navigates to page X by setting “window.top.location” or similar depending on the browser (instead of the more typical “window.location”).
  • FIG. 1 is a block diagram that illustrates components of the page transition system, in one embodiment. The system 100 includes a server communication component 110, a page loading component 120, a master management component 130, a page rewriting component 140, a detail management component 150, a forward transition component 160, a backward transition component 170, and a system cleanup component 180. Each of these components is described in further detail herein.
  • The server communication component 110 communicates from a client browser to a web server that provides web pages for a web-based application. The component 110 uses one or more well-known and/or proprietary protocols, such as hypertext transport protocol (HTTP) to transmit requests for web pages and to receive web-based responses, such as HTML, XML, or other data. The server communication component 110 may offer a variety of communication modes, such as synchronous web requests as well as asynchronous web requests. An asynchronous web request can allow the web browser to request additional data from the web server without leaving a currently displayed web page.
  • The page loading component 120 receives web-based information from the web server and prepares the web-based information for display. The information may include HTML or other formatted information for display to the user, and may be arranged using a document object model (DOM) or other hierarchical or non-hierarchical format that can be accessed, modified, and rendered by client side scripting and the web browser. Typically, a user requests a web page by providing a URL to a web site or page within a website, the browser requests information from the specified domain and virtual directory at the URL, and the web server returns information associated with that URL. The page loading component 120 then renders the returned information for display to the user.
  • The master management component 130 manages rendering and display to a user of a master web page from which a user can navigate to one or more detail web pages. The master web page is an ordinary web page that in the context of a particular web application may be one that a user navigates to frequently. For example, for a web-based email application the page that displays the user's inbox may be a master web page. For a real estate finding application, the search page or results list may be a master web page. The master management component 130 handles the incorporation of the master web page content received from the server into a client side construct, such as an HTML DIV tag, where the display of the master web page can be managed by the client without modifying the web responses received from the server. The component 130 also includes one or more scripts downloaded and executed at the client, that manage the transition to and from master web pages and handle any links on the master web page.
  • The page rewriting component 140 performs one or more modifications to the master and other web pages received from the server to manage more efficient transitions between master and detail web pages. For example, the component 140 may identify links on a master page that refer to a detail page, and links on a detail page that refer to the master page, and replace those links with references to scripts that carry out the smooth transitions between pages described herein. The page rewriting component 140 is responsible for modifying and or removing any web content on a page that might interfere with or break the illusion of a smooth transition between pages that is designed to look like normal navigation to another page or normal navigation back from one page to a previously visited page.
  • The detail management component 150 manages rendering and display to the user of one or more detail web pages referenced by the master web page. A detail web page is typically one that the user visits and then returns to the master web page. An example is a car listing on an auto classifieds web site, in which a user may receive a list of results and successively navigate to detail web pages for each of the cars in the results. The rendering of the master and detail web pages typically involves loading data from the server and is time consuming enough to want to avoid reloading the data when possible. Typical web and browser caching is often ineffective for web pages with moderate to high levels of dynamic and personalized content, such that the content is frequently reloaded, possibly as often as each visit to the web page.
  • The forward transition component 160 navigates a user from the master web page to one of the detail web pages in a manner that hides rather than discarding the master web page. The component 160 effects a transition to the detail web page not by submitting a typical browser request and navigating fully to the detail web page, but rather by requesting and inserting the detail web page into an IFRAME tag or other similar construct on the client side that may allow display of only the detail web page content and hiding of the master web page content. While the detail web page is being displayed, both the master and detail web page content are available in the browser's memory. One reason for this is so that if the user follows the usual model of exiting the detail web page to return to the master web page, the content of the master web page need not be re-retrieved and re-computed to render it to the user. The forward transition component 160 may also modify various elements of the browser experience to provide an illusion to users that the usual behavior of page navigation has occurred. For example, the component 160 may modify the title bar, displayed URL, and browser history to have the same values as navigating to the detail web page separately.
  • The backward transition component 170 navigates a user form a detail web page back to the master web page by unhiding an in-memory copy of the master web page rather than re-requesting the master web page from the server. The user may press the back button of the browser, select a link to the master web page from the detail web page, or perform some other action that requests navigation to the master web page. In response, the component 170 hides or discards the detail web page information and unhides the master web page information so that it is once again displayed without having to make any requests to the server or wait for the response. Thus, the transition is both faster and less resource intensive to the server. The system 100 does this with little to no modification of web server content. Rather than modifying each page, a web site owner can turn on the system 100 by simply including a script to be downloaded to the client, and an identification of which pages should be treated as master and detail pages. The client then invokes the script, which handles the transitions transparently to the server.
  • The backward transition component 170 may keep the detail page in memory in the event that the user selects it again. The system 100 can use a variety of heuristics to determine when to discard detail web pages, such as keeping a fixed number in a most recently used cache, discarding a detail page only after another detail page is selected, and so forth. Keeping more detail web pages in memory uses more memory but also allows fast transitions for a greater variety of potential user requests.
  • The system cleanup component 180 cleans up resources used by the system 100 upon an exit from the master and detail web pages. For example, if the user navigates to another page entirely, the system may clean up resources, such as in-memory cached versions of pages, used to effect the smooth transitions described herein. The system cleanup component 180 may also destroy or discard from memory detail web pages that have not been requested for a certain amount of time or after other pages are requested that indicate that the detail page is no longer likely to be requested.
  • FIG. 2 is a flow diagram that illustrates processing of the page transition system to transition from displaying a master web page to a detail web page, in one embodiment. Beginning in block 210, the system receives a request from a client web browser to load a master web page from a server. The request may be received in response to the user typing a URL into an address bar, following a link on a loaded web page, or other user action. The master web page is a web page that provides a leaping off point to a number of other pages, and is frequently revisited by the user. For example, the master web page may be a list of search results, where the user navigates to each result and then back to the master web page until the user finds what he or she is looking for.
  • Continuing in block 220, the system requests and loads the requested master web page from the server. The server provides the master web page as HTML or other markup language and potentially other types of content, such as dynamically loaded personalized content. The dynamically loaded content may include asynchronous JavaScript and XML (AJAX) or other calls that retrieve information from the server after or during loading of the main page content. The process used to load the master web page from the server is sufficiently complex and time consuming that it is desirable not to repeat the process unnecessarily. Thus, the system described herein promotes reuse of the effort spent to load the master web page by avoiding common scenarios under which the master web page's loaded contents are discarded.
  • Continuing in block 230, the system displays the loaded master web page to the user in a window of the client web browser. The master web page may include a variety of static and interactive elements for the user to view and interact with. In some cases, the system rewrites portions of the page received from the server before displaying the master web page to the user. Because the system wants to reduce discarding the master web page upon navigation to another page, the system may rewrite links to select other pages on the master web page to cause scripting actions to be invoked rather than navigating away from the master web page.
  • Continuing in block 240, the system intercepts a request to load a detail page from the master web page. The request may originate from the user clicking on a link within the master web page, or performing some other action to select the detail page. The system intercepts the request by previously rewriting the link to point to client side script controlled by the system, rather than the original link target. For example, the system may provide an OnClick handler that is invoked by the client web browser when the user clicks on the link that previously referenced the detail page.
  • Continuing in block 250, the system requests and loads the detail page from the server. As the master web page, the detail page may contain a variety of static and dynamic content, delivered synchronously and asynchronously to the client web browser. Rather than navigate away from the master web page and load the detail page, the system causes the client web browser to load the detail web page while the master web page is still in memory and displayable. In some embodiments, the system may display a loading indication to the user, such as an hourglass or temporary web page (e.g., with the text “Loading . . . ”) that indicates to the user that more content is coming soon.
  • Continuing in block 260, the system stores the loaded master web page in a hidden section of a container page. The container page includes containers for isolating multiple pages that can be switched between or among in a single page. The containers may include common HTML tags, such as DIV and IFRAME that are suitable for isolating web content from other web content on the same page, and that allow turning visibility off and on so that various containers can be switched on and off at any given time and under any given circumstances. The system places the master web page in one such container and invokes the DOM of the container page to indicate that the container may not be visible to the user.
  • Continuing in block 270, the system places the loaded detail page in a second section of the container page, and makes the second section visible to the user. The second section may be a container that is an IFRAME, where the IFRAME displays as the entire content of the page, from the user's perspective. At this point, both the master web page and the detail web page are loaded in the web browser's memory, and should the user elect to return to the master web page the system can cause that to happen by simply hiding the detail page section of the container page and showing the master page section of the container page. This process is described further with reference to FIG. 3.
  • Continuing in block 280, the system displays the loaded detail page to the user in a window of the client web browser. To the user, the detail page appears as if it is the only page loaded, even though the master web page is still in memory. The system may also rewrite portions of the detail web page to cause the system to be invoked upon certain user actions, such as navigating away from the detail page and back to the master web page. Any links on the detail page to the master web page may be overwritten by the system to invoke a script-based handler function that effects the transition smoothly from the in-memory copy of the master web page. The system may also hook the back button using browser scripting elements that allow modification and/or control of the client.
  • Continuing in block 290, the system optionally modifies browser info to complete an appearance to the user that the detail page has been loaded. These actions may include modifying the address bar, title bar, browser history, and other elements to make it appear to the user that the detail page has been loaded in the traditional manner, rather than being loaded in conjunction with the master web page within the same container page. After block 290, these steps conclude.
  • FIG. 3 is a flow diagram that illustrates processing of the page transition system to transition from displaying a detail web page to a previously displayed master web page, in one embodiment. Beginning in block 310, the system receives in a client web browser a request to navigate to a previously displayed master web page while displaying a detail page, wherein upon loading the detail page the master web page was retained hidden in a container page that includes the master web page and detail page rather than being discarded. The request to navigate back may come from the user selecting a back button or menu item of the client web browser, clicking a link on the detail page that refers to the master web page, or performing some other action. Upon receiving the request, the system invokes client side script to begin performing the steps to hide the detail page and restore the visible state of the master web page.
  • Continuing in block 320, the system hides the detail page by selecting an element of the container page that includes the detail web page and hiding that element. The system may execute client side script that accesses a document object model (DOM) representing the container page and included master web page and detail page. Through the DOM, the system can set a visibility property of various sections of the container page, including the element container the detail web page. In addition to hiding the detail page, the system may also destroy the detail page by removing it from memory.
  • Continuing in block 330, the system optionally destroys the hidden detail page by removing the page from memory and from the container page. Whether the system keeps a detail page in memory depends largely on the type and purpose of the web application employing the system. In applications where users are likely to request the same detail page again, it may be worth retaining the detail page in memory for some amount of time or under certain conditions. For other applications, the extra memory consumed by keeping one or more detail pages in memory after they are no longer being displayed may be undesirable and thus the detail pages may be discarded upon return to the master web page.
  • Continuing in block 340, the system locates the master web page in memory by identifying an element of the container page that contains the master web page. The system may locate the master web page by invoking the DOM through client script and identifying a DIV or other tag that contains the master web page within the container page.
  • Continuing in block 350, the system unhides the master web page by modifying the visibility of the element of the container page that contains the master web page. In this way, the detail page has been hidden and the master web page exposed, so that the user once again may see only the master web page. From the user's perspective, the back action has done what it normally does to load the master web page. However, a substantial amount of typical effort has been saved. Namely, the server has not been burdened with another request for the master web page and any dynamic and personalized content of the master web page has already been received and processed for display. Thus, the system displays the master web page much more rapidly than traditional methods, and does so without asking for significant modification of the web pages associated with a web application.
  • Continuing in block 360, the system restores any modified browser info to complete an appearance that the client web browser has navigated back to the master web page. For example, the system may modify the address bar, title, history, and other browser elements to make it appear to the user that the user has navigated back to the master web page. If the master web page has any “OnReturn” or similar logic, the system also invokes it so that the master web page can refresh any needed content. After block 360, these steps conclude.
  • The detail page may also contain links to other details pages. The system may also handle and display these other detail pages in an IFRAME or similar element, as if the user had clicked to them from the master web page. The steps to navigate from the first detail page to the second detail page are similar to those for navigating from the master web page to the second detail page.
  • FIG. 4 is a display diagram that illustrates a visual representation of the operation of the page transition system, in one embodiment. The diagram includes a first display 410 showing the display of the master page in a client web browser to a user. The display 410 includes the master web page displayed in a window 420 associated with content placed in a visible HTML DIV tag. The diagram also includes a second display 430 showing the display of a detail page after navigation there form the master web page. In the second display 430, the master page 440 is still in the DIV, but the DIV has been hidden by client side scripting calls that modified the HTML DOM. The second display 430 also contains an HTML IFRAME 450 that includes the content of the detail page. By selectively making either the master page DIV or the detail page IFRAME visible the system can make it appear to the user that the browser is navigating back and forth between these two pages.
  • From the foregoing, it will be appreciated that specific embodiments of the page transition system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.

Claims (20)

1. A computer-implemented method to transition from displaying a master web page to a detail web page of a web site, the method comprising:
receiving a request from a client web browser to load a master web page from a server;
requesting and loading the requested master web page from the server;
displaying the loaded master web page to the user in a window of the client web browser;
intercepting a request to load a detail page from the master web page;
requesting and loading the detail page from the server;
storing the loaded master web page in a hidden section of a container page, wherein the container page includes containers for isolating multiple pages that can be switched between or among in a single page by altering each container's visibility;
placing the loaded detail page in a second section of the container page, and displaying the second section to the user; and
displaying the loaded detail page to the user in a window of the client web browser, while the master web page is still in memory,
wherein the preceding steps are performed by at least one processor.
2. The method of claim 1 wherein receiving the request to load the master web page comprises receiving an indication that the user typed a uniform resource locator (URL) for the master web page in an address bar of the web browser.
3. The method of claim 1 wherein the master web page is a web page that provides an access point to a number of other detail web pages, and is frequently revisited by the user.
4. The method of claim 1 wherein requesting the master web page from the server comprises receiving static and dynamic, personalized content from the server representing the master web page.
5. The method of claim 1 wherein requesting the master web page from the server comprises performing multiple synchronous and asynchronous calls to the server to retrieve content of the master web page.
6. The method of claim 1 wherein the method promotes reuse of effort spent to load the master web page by avoiding common scenarios under which the master web page's loaded contents are discarded.
7. The method of claim 1 wherein displaying the master web page comprises placing the master web page within a hypertext markup language (HTML) DIV tag having a known identifier so that the master web page can later be hidden by hiding the DIV tag contents.
8. The method of claim 1 wherein displaying the master web page comprises rewriting one or more elements of the master web page that refer to select other pages to cause scripting actions to be invoked rather than navigating away from the master web page upon activation of the elements.
9. The method of claim 1 wherein intercepting the request to load the detail page comprises receiving a call to an OnClick handler for a link selected by the user.
10. The method of claim 1 wherein loading the detail page comprises causing the client web browser to load the detail web page while the master web page is still in memory and displayable.
11. The method of claim 1 wherein loading the detail page comprises displaying a temporary loading indication to the user that indicates to the user that more content is coming soon.
12. The method of claim 1 wherein placing the loaded detail page in the second section comprises placing the detail page in an HTML IFRAME, where the IFRAME displays as the entire content of the page from the user's perspective.
13. The method of claim 1 further comprising modifying browser information to complete an appearance to the user that the detail page has been loaded, including an action selected from the group consisting of modifying the address bar, title bar, and browser history to make it appear that the detail page is the only current loaded page.
14. A computer system for web browser page transition acceleration, the system comprising:
a processor and memory configured to execute software instructions embodied within the following components;
a server communication component that communicates from a client browser to a web server that provides web pages for a web-based application;
a page loading component that receives web-based information from the web server and prepares the web-based information for display;
a master management component that manages rendering and display to a user of a master web page from which a user can navigate to one or more detail web pages;
a page rewriting component that performs one or more modifications to the master and other web pages received from the server to manage more efficient transitions between master and detail web pages;
a detail management component that manages rendering and display to the user of one or more detail web pages referenced by the master web page;
a forward transition component that navigates a user from the master web page to one of the detail web pages in a manner that hides rather than discarding the master web page; and
a backward transition component that navigates a user form a detail web page back to the master web page by unhiding an in-memory copy of the master web page rather than re-requesting the master web page from the server.
15. The system of claim 14 wherein the master management component handles incorporation of the master web page content received from the server into a client side construct where the display of the master web page can be managed by the client without modifying the web responses received from the server.
16. The system of claim 14 wherein the page rewriting component identifies links on the master web page that refer to a detail page, and links on the detail page that refer to the master web page, and replaces those links with references to scripts that carry out fast transitions between pages by showing and hiding appropriate pages loaded into a single container page.
17. The system of claim 14 wherein the forward transition component effects a transition to the detail web page not by submitting a typical browser request and navigating fully to the detail web page, but rather requests and inserts the detail web page into an IFRAME tag or other similar construct on the client side that allows display of only the detail web page content and hiding of the master web page content.
18. The system of claim 14 wherein while the detail web page is being displayed, both the master and detail web page content are available in the browser's memory so that the system can quickly transition back from the detail page to the master web page upon request.
19. The system of claim 14 wherein the backward transition component keeps the detail page in memory in the event that the user selects it again.
20. A computer-readable storage medium comprising instructions for controlling a computer system to transition from displaying a detail web page to a previously displayed master web page, wherein the instructions, upon execution, cause a processor to perform actions comprising:
receiving in a client web browser a request to navigate to a previously displayed master web page while displaying a detail page, wherein upon loading the detail page the master web page was retained hidden in a container page that includes the master web page and detail page rather than being discarded;
hiding the detail page by selecting an element of the container page that includes the detail web page and hiding that element;
locating the master web page in memory by identifying an element of the container page that contains the master web page;
unhiding the master web page by modifying the visibility of the element of the container page that contains the master web page; and
restoring previously modified browser information to complete an appearance that the client web browser has navigated back to the master web page.
US14/046,811 2012-10-05 2013-10-04 Web browser page transition acceleration Abandoned US20140143644A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/046,811 US20140143644A1 (en) 2012-10-05 2013-10-04 Web browser page transition acceleration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261710606P 2012-10-05 2012-10-05
US14/046,811 US20140143644A1 (en) 2012-10-05 2013-10-04 Web browser page transition acceleration

Publications (1)

Publication Number Publication Date
US20140143644A1 true US20140143644A1 (en) 2014-05-22

Family

ID=50433414

Family Applications (8)

Application Number Title Priority Date Filing Date
US13/907,632 Active 2034-02-04 US9406082B2 (en) 2012-10-05 2013-05-31 Multiplexing web requests for improved performance
US13/907,724 Abandoned US20140100956A1 (en) 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data
US13/907,681 Abandoned US20140236768A1 (en) 2012-10-05 2013-05-31 Physical references for providing supplemental real estate information
US14/046,811 Abandoned US20140143644A1 (en) 2012-10-05 2013-10-04 Web browser page transition acceleration
US14/046,833 Active US9706011B2 (en) 2012-10-05 2013-10-04 Personalized real estate event feed
US14/047,820 Abandoned US20140100905A1 (en) 2012-10-05 2013-10-07 Home tour and open house scheduler
US15/198,786 Abandoned US20160337481A1 (en) 2012-10-05 2016-06-30 Multiplexing web requests for improved performance
US15/616,721 Abandoned US20180007169A1 (en) 2012-10-05 2017-06-07 Personalized real estate event feed

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US13/907,632 Active 2034-02-04 US9406082B2 (en) 2012-10-05 2013-05-31 Multiplexing web requests for improved performance
US13/907,724 Abandoned US20140100956A1 (en) 2012-10-05 2013-05-31 Providing fast alerts for rapidly changing real estate data
US13/907,681 Abandoned US20140236768A1 (en) 2012-10-05 2013-05-31 Physical references for providing supplemental real estate information

Family Applications After (4)

Application Number Title Priority Date Filing Date
US14/046,833 Active US9706011B2 (en) 2012-10-05 2013-10-04 Personalized real estate event feed
US14/047,820 Abandoned US20140100905A1 (en) 2012-10-05 2013-10-07 Home tour and open house scheduler
US15/198,786 Abandoned US20160337481A1 (en) 2012-10-05 2016-06-30 Multiplexing web requests for improved performance
US15/616,721 Abandoned US20180007169A1 (en) 2012-10-05 2017-06-07 Personalized real estate event feed

Country Status (1)

Country Link
US (8) US9406082B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183890A (en) * 2015-09-28 2015-12-23 北京奇虎科技有限公司 Webpage loading method based on browser and browser device
US10839140B2 (en) * 2018-06-25 2020-11-17 Baidu Online Network Technology (Beijing) Co., Ltd. Page displaying method, apparatus based on H5 webpage, and computer readable storage medium
US11042426B2 (en) 2018-08-23 2021-06-22 International Business Machines Corporation Utilizing reusable AJAX requests
US20220244820A1 (en) * 2021-02-02 2022-08-04 Taboola.Com Ltd In-page navigation
US12271967B2 (en) 2021-11-19 2025-04-08 R.E. Data Lab, Inc. Comparative searching in a real estate search engine

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9536308B2 (en) * 2012-12-10 2017-01-03 Verint Systems Ltd. Irregular event detection in push notifications
US20140279176A1 (en) * 2013-03-15 2014-09-18 Redfin Corporation Provision of real-estate market information
US20140379799A1 (en) * 2013-06-21 2014-12-25 Microsoft Corporation Augmenting content obtained from different content sources
US20150012530A1 (en) * 2013-07-05 2015-01-08 Accenture Global Services Limited Determining an emergent identity over time
US20150106278A1 (en) * 2013-10-11 2015-04-16 Costar Realty Information, Inc. Method and apparatus for search and analysis of real estate data
US9507761B2 (en) * 2013-12-26 2016-11-29 International Business Machines Corporation Comparing webpage elements having asynchronous functionality
GB2530781A (en) * 2014-10-02 2016-04-06 Ibm Processing messages for retrieval from a message queuing system
US10425348B2 (en) * 2015-07-22 2019-09-24 The Regents Of The University Of Colorado Stateless network functions
CN105046256B (en) * 2015-07-22 2018-10-16 福建新大陆自动识别技术有限公司 QR codes coding/decoding method based on distorted image correction and system
CA2941893C (en) 2015-09-14 2020-02-25 The Toronto-Dominion Bank Connected device-based property evaluation
US10229214B2 (en) * 2015-12-31 2019-03-12 Ca, Inc. Dynamic web page navigation
US10075549B2 (en) * 2016-01-25 2018-09-11 Quest Software Inc. Optimizer module in high load client/server systems
US11194572B2 (en) * 2016-02-22 2021-12-07 International Business Machines Corporation Managing external feeds in an event-based computing system
CN107103004B (en) * 2016-02-23 2020-11-06 创新先进技术有限公司 Data processing method, device and system in web page
WO2017160295A1 (en) * 2016-03-17 2017-09-21 Google Inc. Multi-provider data provision with request batching
US11170059B2 (en) * 2016-03-30 2021-11-09 International Business Machines Corporation Personalized content selection for time-constrained sessions
US20170330296A1 (en) * 2016-05-12 2017-11-16 Joseph C. Burke Consumer Oriented Mobile Solution to Track Your Closing
US10250716B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Priority-driven boxcarring of action requests from component-driven cloud applications
US10250715B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Dynamic adjustment of boxcarring of action requests from component-driven cloud applications
US20180060980A1 (en) * 2016-08-25 2018-03-01 Barbara Carey Stachowski Search with home tour navigation
US10540620B2 (en) 2016-10-31 2020-01-21 Microsoft Technology Licensing, Llc Personalized aggregated project team activity feed
US10574723B2 (en) * 2016-11-30 2020-02-25 Nutanix, Inc. Web services communication management
US20180218387A1 (en) * 2017-01-30 2018-08-02 Price-Mars Delly Feedback system through an online community format
US10620996B2 (en) * 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
US10540364B2 (en) 2017-05-02 2020-01-21 Home Box Office, Inc. Data delivery architecture for transforming client response data
US11062407B2 (en) * 2017-09-05 2021-07-13 Shelterzoom Corp. Blockchain-powered real estate sales and rental system
US10460748B2 (en) 2017-10-04 2019-10-29 The Toronto-Dominion Bank Conversational interface determining lexical personality score for response generation with synonym replacement
US10339931B2 (en) 2017-10-04 2019-07-02 The Toronto-Dominion Bank Persona-based conversational interface personalization using social network preferences
CN107862352B (en) * 2017-10-12 2021-06-29 深圳思为科技有限公司 Two-dimensional code sharing method and two-dimensional code sharing equipment
WO2019136387A1 (en) 2018-01-08 2019-07-11 Ebay Inc. Artificial assistant system notifications
US20190251644A1 (en) * 2018-02-09 2019-08-15 Gregory D. Hague Method and system for rapid notification of new real estate listings
US11393056B1 (en) * 2018-03-06 2022-07-19 TourZazz, Inc. Property tour management system
US10846776B1 (en) * 2018-03-19 2020-11-24 Amazon Technologies, Inc. Account customized item list system
CN110430521B (en) * 2018-04-27 2020-10-30 上海大唐移动通信设备有限公司 WIFI indoor positioning-based clothing sales analysis system and method
US11593718B2 (en) * 2018-07-20 2023-02-28 Tour24, Inc. Systems and methods for scheduling and performing self-guided tours of multi-unit residential facilities
UA122556C2 (en) 2018-12-03 2020-11-25 Олександр Вікторович Романєєв MULTI-USER MULTILINGUAL SYSTEM FOR CREATING ORDERS AND MANUFACTURING WINDOWS AND DOORS
CN109978656B (en) * 2019-02-12 2024-02-06 平安科技(深圳)有限公司 House personalized configuration management method, device, computer equipment and storage medium
US11379546B2 (en) 2019-02-13 2022-07-05 The Toronto-Dominion Bank System and method for controlling visibility of elements of displayed electronic content
US11430077B2 (en) * 2019-02-13 2022-08-30 The Toronto-Dominion Bank System and method for searching and monitoring assets available for acquisition
EP3715790A1 (en) * 2019-03-29 2020-09-30 Naver Corporation System and method for generating tours
KR102654689B1 (en) * 2019-05-24 2024-04-03 삼성에스디에스 주식회사 Accelerated processing apparatus for transaction considering transaction failure probability and method thereof
KR20200139034A (en) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 Blockchain based computing system and method for managing transaction thereof
US20210042861A1 (en) 2019-08-09 2021-02-11 Zenlist, Inc. Method and apparatus for automated collaboration in a real property merchandising system
US11720724B2 (en) 2020-02-14 2023-08-08 Cibo Technologies, Inc. Method and apparatus for generation of land parcel valuation tailored for use
US11798043B2 (en) 2020-02-14 2023-10-24 Cibo Technologies, Inc. Method and apparatus for generation and employment of agro-economic metrics for land parcel valuation
US11823296B2 (en) 2020-02-14 2023-11-21 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel productivity attributes for land parcel valuation
US11682090B2 (en) 2020-02-14 2023-06-20 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel production stability attributes for land parcel valuation
US11720723B2 (en) 2020-02-14 2023-08-08 Cibo Technologies, Inc. Method and apparatus for generation and employment of parcel sustainability attributes for land parcel valuation
US11727170B2 (en) 2020-02-14 2023-08-15 Cibo Technologies, Inc. Method and apparatus for generation of land parcel valuation based on supplemented parcel productivity attributes
US11500815B2 (en) * 2020-03-26 2022-11-15 EMC IP Holding Company LLC Dual relationship-based hash structure for non-volatile memory technology
KR20210140851A (en) * 2020-05-14 2021-11-23 삼성에스디에스 주식회사 Method for associating data between a plurality of blockchain networks and apparatus thereof
US11657042B2 (en) 2020-07-08 2023-05-23 Cibo Technologies, Inc. Method and apparatus for generation and promotion of type ahead results in a multi-source agricultural parcel search
US11768840B2 (en) 2020-07-08 2023-09-26 Cibo Technologies, Inc. Method and apparatus for rapid search for agricultural parcels and generation of relevant search results
US11580116B2 (en) 2020-07-08 2023-02-14 Cibo Technologies, Inc. Viewport location based method and apparatus for generation and promotion of type ahead results in a multi-source agricultural parcel search
US20220028014A1 (en) * 2020-07-21 2022-01-27 Michael J. Huth Home History Records and Database
US12393432B2 (en) 2020-09-02 2025-08-19 Samsung Electronics Co., Ltd. Mechanism to discover computational storage functions and devices
US12443436B2 (en) 2020-09-02 2025-10-14 Samsung Electronics Co., Ltd. Systems and method for batching requests in computational devices
CN112348713A (en) * 2020-09-25 2021-02-09 贝壳技术有限公司 QLRunner-based data processing method, device, electronic equipment and medium
US12399639B2 (en) 2021-01-27 2025-08-26 Samsung Electronics Co., Ltd. Systems and methods for data transfer for computational storage devices
US12003588B2 (en) 2021-04-01 2024-06-04 Stateless, Inc. Coalescing packets with multiple writers in a stateless network function
US12423117B2 (en) 2021-06-03 2025-09-23 Samsung Electronics Co., Ltd. Plugin framework mechanism to manage computational storage devices
US20220414805A1 (en) * 2021-06-24 2022-12-29 Hometagz, Llc Marketing and analytic system and method for real estate industry
US11960490B2 (en) * 2021-11-01 2024-04-16 Chasing Bacon, LLC Property resource location and information sharing system
US11769219B2 (en) 2021-11-15 2023-09-26 Anthony Makins Computer-implemented and interactive real estate contract generation and editing process
CN114518912B (en) * 2022-02-21 2023-04-25 度小满科技(北京)有限公司 Page loading method, device, equipment and readable storage medium
US20240062322A1 (en) * 2022-02-23 2024-02-22 AboutTimeTours, LLC Property tour management systems
CN116308218A (en) * 2023-05-22 2023-06-23 北京焦点新干线信息技术有限公司 Early warning method, device, equipment and storage medium for online house selection system
US20240394812A1 (en) * 2023-05-23 2024-11-28 Sriram Varadhan Online application and method of transaction for buyers, sellers, renters and 3rd party real estate providers

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030066031A1 (en) * 2001-09-28 2003-04-03 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US20050108418A1 (en) * 2003-11-19 2005-05-19 International Business Machines Corporation Method and system for updating/reloading the content of pages browsed over a network
US20050257131A1 (en) * 2004-02-11 2005-11-17 Lim Jing Y Frame environment that supports the navigation buttons of a web browser
US20060168540A1 (en) * 2004-12-16 2006-07-27 Hans-Peter Cejka Preserving and accessing active components in web pages
US20060224406A1 (en) * 2005-03-30 2006-10-05 Jean-Michel Leon Methods and systems to browse data items
US20060248444A1 (en) * 2005-04-27 2006-11-02 Microsoft Corporation Providing travel log integration for objects hosted in a browser
US20080183573A1 (en) * 2007-01-31 2008-07-31 James Edward Muschetto Method and Apparatus for Increasing Accessibility and Effectiveness of Advertisements Delivered via a Network
US20080235594A1 (en) * 2005-12-23 2008-09-25 Soujanya Bhumkar Methods and systems for enhancing internet experiences
US20100313116A1 (en) * 2009-06-05 2010-12-09 Michael Hyman Microsite Delivery
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US20120198361A1 (en) * 2010-12-20 2012-08-02 Infor Global Solutions (Michigan), Inc. Method and System for Seamless Navigation and Drill Back Among a Plurality of Web Applications

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032989A (en) 1986-03-19 1991-07-16 Realpro, Ltd. Real estate search and location system and method
US5636117A (en) 1991-03-11 1997-06-03 Rothstein; Robert E. Method and apparatus for monitoring the strength of a real estate market or commodity market and making lending and insurance decisions therefrom
US5758313A (en) 1992-10-16 1998-05-26 Mobile Information Systems, Inc. Method and apparatus for tracking vehicle location
US5844570A (en) 1995-05-02 1998-12-01 Ames Research Laboratories Method and apparatus for generating digital map images of a uniform format
JP4179655B2 (en) 1998-01-29 2008-11-12 ソニー株式会社 Information providing apparatus and method, information transmitting apparatus, and information providing system
US7840440B2 (en) 1998-08-06 2010-11-23 Cybersettle Holdings, Inc. Computerized transaction bargaining system and method
US20030158786A1 (en) 1999-02-26 2003-08-21 Skyline Software Systems, Inc. Sending three-dimensional images over a network
US6684196B1 (en) 1999-07-07 2004-01-27 Ziprealty, Inc. Beginning-to-end online automation of real estate transactions
US8397177B2 (en) 1999-07-22 2013-03-12 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
US6307573B1 (en) 1999-07-22 2001-10-23 Barbara L. Barros Graphic-information flow method and system for visually analyzing patterns and relationships
US6799166B2 (en) * 1999-09-02 2004-09-28 International Business Machines Corporation Method and apparatus for preventing duplicate transactions on batch mode failure recovery in a data processing system
US20040078464A1 (en) * 1999-09-16 2004-04-22 Rajan Sreeranga P. Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services
US6839880B1 (en) 1999-10-21 2005-01-04 Home Debut, Inc. Electronic property viewing system for providing virtual tours via a public communications network, and a method of exchanging the same
US20020049624A1 (en) 1999-12-10 2002-04-25 Raveis William M. System and method for tracking real estate transactions
US20020022980A1 (en) * 2000-01-04 2002-02-21 Bahram Mozayeny Method and system for coordinating real estate appointments
CA2396274A1 (en) 2000-01-04 2001-07-12 Callnetics Corporation A method and system for coordinating real estate appointments
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US6871140B1 (en) 2000-02-25 2005-03-22 Costar Group, Inc. System and method for collection, distribution, and use of information in connection with commercial real estate
US20010037273A1 (en) 2000-03-02 2001-11-01 Greenlee George Richard Commercial real estate lease automation system
US20010039506A1 (en) 2000-04-04 2001-11-08 Robbins Michael L. Process for automated real estate valuation
WO2001080099A1 (en) 2000-04-14 2001-10-25 The Orton Family Foundation Integrated system for and method of supporting spatial decision making and land-use scenario analysis
CN1386240A (en) 2000-04-18 2002-12-18 阿玛斯韩国株式会社 Method for generating identification code and system and method for providing electronic notice service and electronic meter reading service using same
US7454355B2 (en) 2000-04-27 2008-11-18 Milman Robert N Method and system for providing real estate information using a computer network, such as the internet
AU2001255738A1 (en) 2000-04-28 2001-11-12 Ecplatforms, Inc. Multimode negotiation in a networking environment
US6882313B1 (en) 2000-06-21 2005-04-19 At Road, Inc. Dual platform location-relevant service
US6624742B1 (en) 2000-06-24 2003-09-23 Motorola, Inc. Wireless intelligent real estate sign and electronic lock box
US7249036B2 (en) * 2000-07-06 2007-07-24 Cary Gresham Bayne Method for clinician house calls utilizing portable computing and communications equipment
US20020052814A1 (en) * 2000-07-10 2002-05-02 Ketterer Robert M. Virtual real estate brokage system
US7333943B1 (en) * 2000-08-11 2008-02-19 The Prudential Insurance Company Of America Method and system for managing real property transactions having internet access and control
AU2001288502A1 (en) 2000-08-28 2002-03-13 Isdi.Net, Llc Value your home
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US6873998B1 (en) 2000-10-18 2005-03-29 Navteq North America, Llc System and method for updating a geographic database using satellite imagery
US7487114B2 (en) 2000-10-23 2009-02-03 Costar Group, Inc. System and method for associating aerial images, map features, and information
US7197160B2 (en) 2001-03-05 2007-03-27 Digimarc Corporation Geographic information systems using digital watermarks
US20020133374A1 (en) 2001-03-13 2002-09-19 Agoni Anthony Angelo System and method for facilitating services
US6883002B2 (en) 2001-03-26 2005-04-19 David Allen Faudman Real estate information exchange process and system
US7346519B2 (en) 2001-04-10 2008-03-18 Metropolitan Regional Information Systems, Inc Method and system for MRIS platinum database
US20050125237A1 (en) 2001-05-04 2005-06-09 Craig Harrison System for selling real estate products and services through the internet
CA2352844C (en) 2001-07-10 2009-11-17 Geojet Information Solutions Inc. 3-d map data visualization
US20030040934A1 (en) 2001-08-23 2003-02-27 Brent Skidmore Integrated home inspection and home warranty system
US20030101063A1 (en) 2001-09-28 2003-05-29 Sexton Ashley K. Real estate information system
US7092957B2 (en) 2002-01-18 2006-08-15 Boundary Solutions Incorporated Computerized national online parcel-level map data portal
US20030158668A1 (en) 2002-02-15 2003-08-21 Anderson James J. System and method of geospatially mapping topological regions and displaying their attributes
US20040243533A1 (en) 2002-04-08 2004-12-02 Wsi Corporation Method for interactively creating real-time visualizations of traffic information
US7328163B2 (en) 2002-04-26 2008-02-05 At&T Delaware Intellectual Property, Inc. System and method for distributing information
US7212670B1 (en) 2002-05-03 2007-05-01 Imagetree Corp. Method of feature identification and analysis
US7389242B2 (en) 2002-05-07 2008-06-17 Re3W Worldwide Limited Interactive processing of real estate transactions
US20040039629A1 (en) 2002-05-23 2004-02-26 Kevin Hoffman Web based method and system for managing and transferring business information
US20050010423A1 (en) 2002-05-24 2005-01-13 Dan Bagbey Real estate related and ancilliary services provided through a single point of sale
US20040046798A1 (en) 2002-06-12 2004-03-11 Arlene Alen Real estate presentation device and method
US9811805B2 (en) 2002-09-18 2017-11-07 eSys Technologies, Inc. Automated work-flow management system with dynamic interface
US20040088172A1 (en) 2002-11-01 2004-05-06 Baglioni Martin A. Method and apparatus for real estate agent selection
US20040167797A1 (en) 2002-12-17 2004-08-26 Goncalves Gabriel P. System and method for real estate asset management
US8051089B2 (en) 2003-04-30 2011-11-01 Hewlett-Packard Development Company, L.P. Systems and methods for location-based real estate service
US20050004927A1 (en) 2003-06-02 2005-01-06 Joel Singer Intelligent and automated system of collecting, processing, presenting and distributing real property data and information
US20040249705A1 (en) 2003-06-04 2004-12-09 Perpetual Innovations Company Llc Systems and methods for facilitating real estate transactions
US20050049953A1 (en) 2003-09-03 2005-03-03 Vu Tuan Anh Real estate business method and system integrating multi-level network marketing, franchise management and web tools
US20050096926A1 (en) 2003-10-31 2005-05-05 Eaton Steven L. Automated realty transfer
US20050119903A1 (en) * 2003-12-01 2005-06-02 Lee Fu C. Guided tour system
US7447613B2 (en) 2004-02-27 2008-11-04 Deere & Company Method and system for providing a diverse supply of electrical energy
US20050192930A1 (en) 2004-02-27 2005-09-01 Terradatum, Inc. System and method of real estate data analysis and display to support business management
US7283909B1 (en) 2004-03-24 2007-10-16 Olsen Michael A Overlaying orthorectified aerial images with map information tied to a state plane coordinate system
US20050240448A1 (en) 2004-04-27 2005-10-27 Smith Jeffrey C System and method for insuring an entity against tenant default with respect to an income-producing property
US20100217686A1 (en) * 2004-05-03 2010-08-26 Superlative, Inc. System for managing communication between a real estate agent and clients
US20050273346A1 (en) 2004-06-02 2005-12-08 Frost Richard N Real property information management system and method
US7831471B2 (en) 2004-06-08 2010-11-09 Total Intellectual Property Protection Services, LLC Virtual digital imaging and method of using the same in real estate
US9105061B2 (en) 2004-06-16 2015-08-11 Redfin Corporation Online marketplace for real estate transactions
US20080126476A1 (en) * 2004-08-04 2008-05-29 Nicholas Frank C Method and System for the Creating, Managing, and Delivery of Enhanced Feed Formatted Content
US7657537B1 (en) * 2005-04-29 2010-02-02 Netapp, Inc. System and method for specifying batch execution ordering of requests in a storage system cluster
US8732250B2 (en) * 2005-10-23 2014-05-20 Silverpop Systems Inc. Provision of secure RSS feeds using a secure RSS catcher
US8103597B2 (en) * 2006-01-17 2012-01-24 Kristopher John Arnebeck Optimizing schedule and itinerary for open houses
US8230361B2 (en) * 2006-09-28 2012-07-24 Google Inc. Content feed user interface
US20080126170A1 (en) * 2006-11-07 2008-05-29 Leck Mark H Systems and Methods for Retrieving Potential Real Estate Leads
US8166410B2 (en) * 2006-12-27 2012-04-24 Mlslistings Inc. Methods and systems of online mapping and planning driving tours
US20080262945A1 (en) * 2007-03-28 2008-10-23 Daniel Carver Clark Ontological subscription and publication system with automatic notification of matching advertisements, products, and services within the ontological system for buyers and sellers
US20090307050A1 (en) * 2008-06-09 2009-12-10 Fournier Michael C Method for Identifying, Rating, and Promoting Desirable Real Estate Listings
US20100094543A1 (en) * 2008-10-09 2010-04-15 411 Web Directory Systems And Methods For Providing Geography-Based Tours
US20110004560A1 (en) * 2009-07-06 2011-01-06 Max Knake System and method for providing real estate information to potential buyers
US20110066676A1 (en) * 2009-09-14 2011-03-17 Vadim Kleyzit Method and system for reducing web page download time
US20120290203A1 (en) * 2011-05-13 2012-11-15 King Lance R Real-time route optimization for real estate open house tours
US9235971B1 (en) * 2011-06-28 2016-01-12 Emc Corporation Service window optimized system alert engine
US9049246B2 (en) * 2012-02-28 2015-06-02 Red Hat, Inc. Reducing web page loading time
US8818715B2 (en) * 2012-03-29 2014-08-26 Yahoo! Inc. Systems and methods to suggest travel itineraries based on users' current location
US9721223B2 (en) * 2012-05-14 2017-08-01 Atrium Windows And Doors, Inc. Method and system for retrieving information using serialized scannable codes
US20140052577A1 (en) * 2012-06-06 2014-02-20 Stephen GOTLIEB System and method for travel and planning and trip information aggregation

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030066031A1 (en) * 2001-09-28 2003-04-03 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US20050108418A1 (en) * 2003-11-19 2005-05-19 International Business Machines Corporation Method and system for updating/reloading the content of pages browsed over a network
US20050257131A1 (en) * 2004-02-11 2005-11-17 Lim Jing Y Frame environment that supports the navigation buttons of a web browser
US20060168540A1 (en) * 2004-12-16 2006-07-27 Hans-Peter Cejka Preserving and accessing active components in web pages
US20060224406A1 (en) * 2005-03-30 2006-10-05 Jean-Michel Leon Methods and systems to browse data items
US20060248444A1 (en) * 2005-04-27 2006-11-02 Microsoft Corporation Providing travel log integration for objects hosted in a browser
US20080235594A1 (en) * 2005-12-23 2008-09-25 Soujanya Bhumkar Methods and systems for enhancing internet experiences
US20080183573A1 (en) * 2007-01-31 2008-07-31 James Edward Muschetto Method and Apparatus for Increasing Accessibility and Effectiveness of Advertisements Delivered via a Network
US20100313116A1 (en) * 2009-06-05 2010-12-09 Michael Hyman Microsite Delivery
US20110055683A1 (en) * 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
US20120198361A1 (en) * 2010-12-20 2012-08-02 Infor Global Solutions (Michigan), Inc. Method and System for Seamless Navigation and Drill Back Among a Plurality of Web Applications
US20120197978A1 (en) * 2010-12-20 2012-08-02 Infor Global Solutions (Michigan), Inc. Method and System for Seamless Navigation and Drill Back Among a Plurality of Web Applications

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183890A (en) * 2015-09-28 2015-12-23 北京奇虎科技有限公司 Webpage loading method based on browser and browser device
US10839140B2 (en) * 2018-06-25 2020-11-17 Baidu Online Network Technology (Beijing) Co., Ltd. Page displaying method, apparatus based on H5 webpage, and computer readable storage medium
US11042426B2 (en) 2018-08-23 2021-06-22 International Business Machines Corporation Utilizing reusable AJAX requests
US20220244820A1 (en) * 2021-02-02 2022-08-04 Taboola.Com Ltd In-page navigation
US20230244366A1 (en) * 2021-02-02 2023-08-03 Taboola.Com Ltd In-page navigation
US12277307B2 (en) * 2021-02-02 2025-04-15 Taboola.Com Ltd. In-page navigation
US12327010B2 (en) * 2021-02-02 2025-06-10 Taboola.Com Ltd. In-page navigation
US12271967B2 (en) 2021-11-19 2025-04-08 R.E. Data Lab, Inc. Comparative searching in a real estate search engine

Also Published As

Publication number Publication date
US20140236768A1 (en) 2014-08-21
US20140100956A1 (en) 2014-04-10
US20180007169A1 (en) 2018-01-04
US20140344112A1 (en) 2014-11-20
US20140100905A1 (en) 2014-04-10
US20160337481A1 (en) 2016-11-17
US9706011B2 (en) 2017-07-11
US9406082B2 (en) 2016-08-02
US20140101235A1 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
US20140143644A1 (en) Web browser page transition acceleration
AU2011101576B4 (en) Method and systems for generating and displaying a preview image of a content area
US11126333B2 (en) Application reporting in an application-selectable user interface
US7805670B2 (en) Partial rendering of web pages
US20200396186A1 (en) Thumbnail image previews
US20200258133A1 (en) Installable web applications
JP5480892B2 (en) Advertisement presentation based on WEB page dialogue
US6978445B2 (en) Method and system for supporting user navigation in a browser environment
US8954589B2 (en) Multi-process browser architecture
JP5941903B2 (en) System and method for dynamically enabling customized web content and applications
US8700691B2 (en) Minimal download and simulated page navigation features
US11050851B2 (en) Drag-and-drop clipboard for HTML documents
US9348939B2 (en) Web site sectioning for mobile web browser usability
US20030163372A1 (en) Delivering content and advertisement
US20120304068A1 (en) Presentation format for an application tile
US7877702B2 (en) Tree widget data population
JP6484667B2 (en) Structured document pagelet caching
US20140006487A1 (en) Methods for making ajax web applications bookmarkable and crawable and devices thereof
US8788927B2 (en) System and method for displaying web page content
CN105095220B (en) A browser implementation method, terminal and virtualized proxy device
JP2007149074A (en) Context based navigation
US20080301573A1 (en) System and method for indicating page component focus
Zucker What does AJAX mean for you?
CN107451182B (en) File caching method based on Appcache
US7774698B2 (en) System and method for generating a frameless web display

Legal Events

Date Code Title Description
AS Assignment

Owner name: REDFIN CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FABULICH, DAN;REEL/FRAME:046134/0707

Effective date: 20150213

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION