US20120297291A1 - Acceleration and optimization of web pages access by changing the order of resource loading - Google Patents

Acceleration and optimization of web pages access by changing the order of resource loading Download PDF

Info

Publication number
US20120297291A1
US20120297291A1 US13/565,527 US201213565527A US2012297291A1 US 20120297291 A1 US20120297291 A1 US 20120297291A1 US 201213565527 A US201213565527 A US 201213565527A US 2012297291 A1 US2012297291 A1 US 2012297291A1
Authority
US
United States
Prior art keywords
web page
images
plurality
image
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
US13/565,527
Inventor
Leonid FAINBERG
Ofir Ehrlich
Gil Shai
Ofer Gadish
Amitay DOBO
Ori Berger
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.)
Limelight Networks Inc
Original Assignee
Limelight Networks Inc
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
Family has litigation
Priority to US21395909P priority Critical
Priority to US30895110P priority
Priority to US12/848,559 priority patent/US20110029899A1/en
Priority to US13/245,841 priority patent/US8250457B2/en
Application filed by Limelight Networks Inc filed Critical Limelight Networks Inc
Priority to US13/565,527 priority patent/US20120297291A1/en
Priority claimed from US13/663,190 external-priority patent/US20130103704A1/en
Publication of US20120297291A1 publication Critical patent/US20120297291A1/en
Priority claimed from US13/945,240 external-priority patent/US9633217B2/en
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=43528027&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20120297291(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application status is Abandoned legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/2847Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching involving pre-fetching or pre-delivering data based on network characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/02Network-specific arrangements or communication protocols supporting networked applications involving the use of web-based technology, e.g. hyper text transfer protocol [HTTP]

Abstract

A method for acceleration of access to a web page. The method comprises receiving a web page responsive to a request by a user; analyzing the received web page for possible acceleration improvements; generating a modified web page of the received web page using at least one of a plurality of acceleration techniques; providing the modified web page to the user, wherein the user experiences an accelerated access to the modified web page resulting from the execution of the at least one of a plurality of acceleration techniques; and storing the modified web page for use responsive to future user requests.

Description

    CROSS-REFERENCES TO RELATED APPLICATIONS
  • This patent application is a continuation of U.S. patent application Ser. No. 13/245,841, filed on Sep. 26, 2011, which is a continuation of U.S. patent application Ser. No. 12/848,559, filed on Aug. 2, 2010, which claims priority both to U.S. provisional patent application 61/213,959 filed Aug. 3, 2009, and further to U.S. provisional patent application 61/308,951 filed Feb. 28, 2010. Each of these applications is hereby incorporated by reference in its entirety for all purposes.
  • FIELD OF THE INVENTION
  • The present invention relates generally to accesses to web pages, and more specifically to the acceleration and/or optimization of access speed to such web pages from the user's experience perspective.
  • BACKGROUND
  • The traffic over the world-wide-web (WWW) using the Internet is growing rapidly as well as the complexity and size of the information moved from sources of information to users of such information. Bottlenecks in the movement of data from the content suppliers to the users, delays the passing of information and decreases the quality of the user's experience. Traffic is still expected to increase faster than the ability to resolve data transfers over the Internet.
  • Prior art suggests a variety of ways in an attempt to accelerate web page content delivery from a supplier of the content to the users. However, there are various deficiencies in the prior art still waiting to be overcome. It would be advantageous to overcome these limitations, as it would result in a better user experience and reduction of traffic load throughout the WWW. It would be further advantageous that such solutions be applicable with at least all popular web browsers and/or require neither a plug-in nor a specific browser configuration.
  • SUMMARY
  • Certain embodiments of the invention include a system for acceleration of access to web pages. The system comprises a network interface enabling communication of one or more user nodes with one or more web servers over a network for accessing web pages stored in the one or more web servers; an acceleration server coupled to the network interface for modifying web pages retrieved from the one or more web servers using at least one acceleration technique, the modified web pages accelerating access to the web page to one or more user nodes; a first cache connected to the acceleration server and the one or more user nodes and operative to cache information associated with requests directed from the one or more the user nodes to the acceleration server; a second cache connected to the acceleration server and the one or more web servers and operative to cache information associated with requests directed from the one or more web servers to the acceleration server; and a memory coupled to the acceleration server and containing a plurality of instructions respective of the at least one acceleration technique.
  • Certain embodiments of the invention further include a method for acceleration of access to a web page. The method comprises receiving a web page responsive to a request by a user; analyzing the received web page for possible acceleration improvements; generating a modified web page of the received web page using at least one of a plurality of acceleration techniques; providing the modified web page to the user, wherein the user experiences an accelerated access to the modified web page resulting from the execution of the at least one of a plurality of acceleration techniques; and storing the modified web page for use responsive to future user requests.
  • In some embodiments, a system for accelerating access to web pages is provided. The system includes a network interface enabling communication of one or more user nodes with one or more web servers over a network for accessing web pages stored in the one or more web servers. The system also includes an acceleration server coupled to the network interface for determining a plurality of images of a web page to place in an image container based on loading properties of the web page and for placing the plurality of images of the web page in the image container, such that the plurality of images can be fetched in a single request. The system further includes a first cache connected to the acceleration server and the one or more user nodes and operative to cache information associated with requests directed from the one or more the user nodes to the acceleration server and a second cache connected to the acceleration server and the one or more web servers and operative to cache information associated with requests directed from the one or more web servers to the acceleration server. The system still further includes a memory coupled to the acceleration server and containing a plurality of instructions respective of the at least one acceleration technique.
  • The acceleration server can places a second plurality of images of the web page in a second image container, such that the second plurality of images can be fetched in a single request. The acceleration server can determine that the image container is of higher priority than the second image container such that the image container is loaded prior to the second image. The plurality of images can be determined based on an image's size, an image's visibility within a display area, and/or an image's commonality across multiple loadings of the web page. The acceleration server can combine the plurality of images into a single tapestry image. The plurality of images can included a set of images contributing to a background of the web page. The acceleration server can parse the web page to determine the plurality of images. The acceleration server can modify the web page to reference the image container.
  • In some embodiments, a method for accelerating access to a web page is provided. The method includes receiving a web page responsive to a request by a user and analyzing the received web page for possible acceleration improvements. The method also includes determining a plurality of images of a web page to place in an image container based on loading properties of the web page and placing the plurality of images of the web page in the image container, such that the plurality of images can be fetched in a single request. The method further includes generating a modified web page of the received web page to reference the image container, providing the modified web page to the user; and storing the modified web page for use responsive to future user requests.
  • The method can include placing a second plurality of images of the web page in a second image container, such that the second plurality of images can be fetched in a single request. The method can include determining that the image container is of higher priority than the second image container such that the image container is loaded prior to the second image. The plurality of images can be determined based on image parameters, an image's size and/or an image's commonality across multiple loadings of the web page. The plurality of images can include a set of images initially viewable to a user upon loading of the web page and/or a set of images contributing to a background of the web page. The method can include combining the plurality of images into a single tapestry image. The method can include parsing the web page, wherein the plurality of images is determined based on the parsed web page.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
  • FIG. 1 is a schematic block diagram of a system for acceleration of web pages access;
  • FIG. 2 is a schematic diagram of the data flow in a system for acceleration of web pages access;
  • FIG. 3 is a flowchart of the processing performed for the purpose of generating web pages that accelerate access; and
  • FIGS. 4A, 4B, 4C and 4D are exemplary scripts of an acceleration technique.
  • DETAILED DESCRIPTION
  • The embodiments disclosed by the invention are only examples of the many possible advantageous uses and implementations of the innovative teachings presented herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
  • In an exemplary embodiment of the invention, a web access acceleration system is placed in the path between the user nodes and the web servers and is responsible for integrating the acceleration mechanisms to the web pages selected for acceleration. The methods for web access acceleration include, for example, parallel loading of a Cascading Style Sheets (CSS) style of a web page, postponement of execution of Javascript code of a web page, maintaining script context when modifying the DOM, causing items to be pre-fetched into a browser's cache, web-site and browser transparent pre-fetching, pre-fetching of resources of subsequent or other pages of a web site, pre-fetching of resources of the same web page, fetching linked pages on demand prior to link access, a path dependent delivery of a web page to a user, automatic generation of combined image containers, caching of dynamic data, intelligent caching of resources, processing links in the background, and postponing of iframes.
  • FIG. 1 depicts an exemplary and non-limiting schematic block diagram of a system 100 for acceleration of web pages access in accordance with an embodiment of the invention. To a network 110 there are connected one or more web page servers 120, each providing content typically using formatted documents using, for example, the hypertext markup language (HTML). The network may be a local area network (LAN), a wide area network (WAN), a metro area network (MAN), the Internet, the world-wide-web (WWW), the like, and any combination thereof. One or more user nodes 130 that are viewers of such web pages content are also connected to the network. A user of a user node 130 typically browses the content using a web browser that is enabled to display the web pages. By using, for example but not by way of limitation, a uniform resource locator (URL) the browser is capable of accessing a desired web page.
  • The network 110 is also connected a web page access accelerator (WPAA) 140. In accordance with the invention instead of providing web page content directly from a web page server, for example, a web page server 120-1, to a user node, for example, a user node 130-1, traffic is directed through the WPAA 140, when applicable, i.e., when configured for accelerated access. Accordingly, a request for web page content is directed through the WPAA 140 that is equipped with various acceleration mechanisms as further detailed herein below. In one embodiment of the disclosed invention, the web servers 120 are part of a server farm (not shown). In a further embodiment thereof, the WPAA 140 is provided as part of the server farm. In yet another embodiment of the invention, the WPAA 140 is integrated as an integral part of a web page server 120.
  • FIG. 2 shows an exemplary and non-limiting schematic diagram of the data flow in a system for acceleration of web pages access in an embodiment of the invention. In addition, the details of the structure of the WPAA 140 are also shown. For simplicity reasons and without limiting the scope of the invention, the network interface is removed. However, a network type interface is the typical way for components of the network to communicate with each other.
  • The WPAA 140 comprises an acceleration server 142 that is connected to the storage 148. The storage 148 typically holds instructions for the execution of methods, described herein below in more detail, that result in accelerating the transfer of web pages content to a user wishing to access such content. Under the control of the acceleration server 142, there is a back-end cache (BEC) 144 connected to the acceleration server 142 and to the one or more web page servers 120-1 through 120-n. The BEC 144 handles requests directed from the acceleration server 142 to the one or more web page servers 120-1 through 120-n. By caching information associated with web servers' requests in the BEC 144, the overall access to web page content is accelerated. Under the control of the server 142, there is a front-end cache (FEC) 146, connected the acceleration server 142 and to the one or more user nodes 130-1 through 130-m. The FEC 146 handles requests directed from the one or more user nodes 130-1 through 130-m to the acceleration server 142. By caching information associated with user nodes' requests in the FEC 146, the overall access to web page content is further accelerated.
  • FIG. 3 shows an exemplary and non-limiting flowchart 300 of the processing performed for the purpose of generating web pages that accelerate access in accordance with an embodiment of the invention. In S310, a page is received, for example by the WPAA 140, in response to a request to receive a web page from, for example, web page server 120. Optionally, in S320, the received web page is stored in a cache, for example, in the BEC 144. In S330, the received web page is analyzed by the acceleration server 142 to determine whether acceleration improvements may be achieved. In S340, it is checked whether improvements were determined to be achievable, and if so execution continues with S350; otherwise execution continues with S360. In S350, the received web page is modified into a modified web page that contains one or more acceleration techniques discussed herein below in more detail. In S360, the modified or the received web page is provided to the user node 120 that requested the web page. Optionally, in S370 the modified web page or the received web page, as may be appropriate, is stored in a cache, for example FEC 146. In S380, it is checked whether additional pages are to be handled, and if so execution continues with S310; otherwise, execution terminates.
  • While reference is made hereinabove to web pages, it can equally refer to portions of web pages, resources of a web page, and the like, without departing from the scope of the invention. In one embodiment of the invention, the method disclosed above may be performed by the WPAA 140. In other embodiments of the invention, the method can be integrated in a web page server such as web page server 120.
  • While the description hereinabove was made with respect to one particular system, other systems may be deployed to benefit from the teachings hereinabove and herein below. In one exemplary and non-limiting embodiment of the invention, a system that works as a plug-in/filter/extension to one or more web servers is used. The flow of data through the system is the same as described with respect of the system in FIG. 1, however, it may also utilize knowledge about the data stored on the web site, such as but not limited to, page templates and images. In yet another exemplary and non-limiting embodiment of the invention, the system is a plug-in for web site integrated development environment (IDE). Using the plug-in, the inventions herein are integrated into the web site during its development. The plug-in therefore enables at “compilation” or “build” process of the IDE, changes to the web site coding made by the user of the web site developer according to the inventions. This may take place during development or automatically implemented during development. In yet another exemplary and non-limiting embodiment a utility containing, for example and without limitation, a command line component, a user interface (UI) component or any other interface, is run on the designed web site code after it is ready, and/or in one or more points-in-time during the development thereof, to transform the web site code by employing the inventions herein.
  • Following are descriptions of acceleration techniques used with respect to, for example, S350, discussed above. However, the use of such techniques may be a part of other embodiments which are specifically included herein.
  • I. Parallel Loading of a CSS Style of a Web Page
  • Web pages may include one or more style parts, which allow the separation of the content of the web page from its presentation. The style can be changed and cause the page to look entirely differently, despite the fact that it contains the exact same content. The Cascading Style Sheet (CSS) is the mechanism that allows doing so in HTML documents. CSS is a “language” that a browser can interpret to render the display the page. Attaching a style to a HTML page can be done by either embedding the text of the style inside the HTML document, in one place or dividing the text to several parts and embedding them in different places of the HTML document or putting the text of the style in an external file and putting a directive inside the HTML document to load this file and to use the style definitions in it. Style definitions can be very large (e.g., hundreds of kilobytes), especially if a third-party standard file is used and both abovementioned ways have the same disadvantage. While the data of the style is being loaded, the parsing and processing of the page is halted and resumed only after the style data has been loaded and processed. Separating style definitions to several parts helps to spread this delay all over the document, but the overall delay remains.
  • In accordance with certain aspects of the invention, the problem is overcome by forcing the style data to load in parallel to the rest of the data. This is achieve by moving the style data from their original position, embedded into the HTML and/or taken from external file(s), to one or more external files which can be located anywhere. The HTML is then changed to load these new external files in any asynchronous way, as further discussed in “Techniques of bringing Items to the Browser's Cache” herein below. During the loading process, after such a change, the browser of a user node 130, is unaware that the external files contain style data and treats the external files as merely containing raw data. For every one of these external files, after its loading is finished, which is determined differently for every fetch alternative, a new tag is dynamically inserted into the document. The tag is not inserted into the text of the document, but into the logical representation thereof, which is kept by the browser as a document object model (DOM). This tag instructs the browser to apply a new style, which is located in the same file loaded previously, in parallel to other loads, thereby saving on access time. It should be noted that the application of the style remains serial, however, as this file was already loaded and resides in the browser's cache on user node 130, it is being read from there and a new request is not being sent to fetch it. This way, the loading of the style data is done in parallel to fetching other data items and, though it does occupy some of the bandwidth, it does not delay the loading and processing of the HTML page and its resources, by increasing parallelism of the operation. Resources of an HTML page include, but are not limited to, stylesheet files, Javascript and other script files, images, video and any other parts of the pages which are not embedded in the HTML.
  • In one embodiment of the invention, a post processing tool parses a web page prepared by a developer and transforms it into a parallel loading capable web page based on the principle described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to the user. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and provides to the user a parallel loading capable web page, which may also be stored in FEC 146 for future use by other user nodes 130.
  • II. Postponing Execution of Javascript Code in a Web Page
  • Typical web browsers are capable of handling scripting languages which allow them to make the web pages more interactive, rather than just contain text and media. One of the more popular scripting languages, supported by practically all known browsers, is Javascript. Javascript code may be embedded into the HTML page in one or more places, and/or loaded from one or more external files. Just like with stylesheets, discussed hereinabove, loading and running Javascript is done serially to the rest of the processing of the web page. Thus, loading and running Javascript code decreases the speed in which the whole webpage is loaded.
  • Realizing that most of the Javascript code is used for “behind the scenes” functionality and does not contribute to the way the webpage looks like. Thus, it would be better to load and run the Javascript after the visible portion of the web page has been downloaded and shown. According to an embodiment of the invention, the HTML page is scanned for script tags and then moved to a later place in the HTML page. This location can be at the end of the document, but is not limited thereto. Moving of the tags can be done by actually moving them, or otherwise, adding a “defer” attribute on the tags, which defers the respective Javascript execution to a later point. When moving the tags, it is important to keep the order between them to ensure proper execution. Many times a Javascript tag relies on pieces of code that were defined or executed in one or more of the tags before it.
  • It should be noted that the Javascript code may be sensitive to its location in the HTML page, thus a straightforward movement of the script tag may not be suitable. In such a case, the original position of the script in the page is marked by either a tag with a unique “id” attribute or in any other way. At a later position in the page, the respective code is “injected” into its original position, i.e., in the DOM.
  • A non-limiting sequence for postponing the execution of Java script code would be: while processing the page, for example, by the WPAA 140, marking the script tag location by a marker and moving the script tag content, which can be a code or a link to an external file containing the code, to a later position, wrapped by additional code, and while maintaining the order of the tags; and when the page is processed by the browser of a user node 130, the original position of the script is processed without a delay and when the browser reaches the new position of the code, it triggers the wrapper previously inserted there. The wrapper writes the original code at its original position in the DOM. This automatically causes the browser to run the code, but in the context of its original position.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer for Javascripts and moves them in accordance with the principle described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and moves Javascripts of the modified web page, which may also be stored in the FEC 146 for future use by other user nodes 130.
  • While the description above was made with respect to Javascript, it should not be viewed as restricting the scope of the invention which is relevant for any browser scripting language, including but not limited to, VBscript, Silverligh'™, and Flash.
  • III. Maintaining Script Context when Modifying the DOM
  • Executing scripts may introduce new content into the web page by modifying the respective DOM. Many times this is performed under the assumption that when the script runs, the parsing of the page by the browser reached only the script's position. Thus, the script may use browser functions like “document.write( )” and “document.writelnO” to introduce the new content. Typically, these functions write the new content to the current parsing position of the browser just after the position of the script tag which is reached. However, if these functions are executed from another location, they modify the DOM in a different way than originally intended. If they are run after the web page has finished loading, they overwrite the entire web page, as the parsing position these functions use is brought to the beginning of the page once it finished loading.
  • According to an embodiment of the invention, the problematic functions are overwritten so that instead of writing the new content into the current parsing position, the new functions write it into, or after if applicable, the original position of the script tag. Inside these new functions, the text passed to the function is converted to a subtree of the DOM. The original document.write( ) and other similar functions do it themselves. Then, the new sub-tree is inserted into the DOM to the required location previously marked, for example, by a unique “id” attribute. For some browsers, the original script content is inserted but not executed, so in one embodiment an additional step is required where the browser is instructed to execute the code.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer for tagging the scripts in accordance with the principle described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and tags scripts in the modified web page, which may also be stored in the FEC 146 for future use by other user nodes 130
  • IV. Acceleration Technique for Running Scripts Outside of Their Positions in a Web Page File
  • One of the web time loading acceleration techniques is to move <script> tags to the end of the document. This way running of scripts, which can take a long time, does not slowdown the rendering of the page. Many scripts are written to be aware of their position in the web page. For example, some scripts create images and Flash components at the same place where they are located. Thus, moving such scripts to another location, thereby stopping them from slowing down the page loading, causes these components to be written to the page in the wrong place.
  • According to an embodiment of invention, the script writes everything to the new position and then copies everything that was written in this new location to the original location. Part of what is written can contain additional scripts that can write data of their own, this data should also be copied to its correct position.
  • Following is an example of the principles of the invention that parses an HTML page and postpones the script to the end of the page, while making sure anything the scripts writes to the web page is then written to the original position. With this aim, the exemplary script code provided in FIGS. 4A and 4B is added at the end of the <body> tag. In addition, every <script> tag in the page is identified. If the <script> tag is an external script, i.e., it has a “src” attribute, then this attribute is saved to the variable SOURCE and deleted from the element. If the <script> tag already includes an “id” attribute, the “id” attribute is saved to the variable ID. The SOURCE and ID variables are kept in the memory when and where the page is being processed. If not, a unique id is generated, the “id” attribute is set to be this value and saved to the variable ID. Then, the exemplary code shown in FIG. 4C is added at the end of the <body> tag. For an internal script, i.e., the script has content and does not have a “src” attribute, then the script's content is saved to the variable CONTENT and then deleted. If the script tag already includes an “id” attribute, it is saved in the variable ID. If not, a unique id is generated, the “id” attribute is set to the generated value and then saved in the variable ID. Then, the exemplary code shown in FIG. 4D is added at the end of the <body> tag.
  • V. Acceleration Technique for Causing Items to be Fetched into a Browser's Cache
  • By having data pre-stored in a browser's cache access time to the data item is reduced. Therefore, a need arises, at times, to bring data items to the browser's cache in advance or in anticipation of their future use. This pertains, for example and without limitation, to prefetching/preloading of a subsequent page or resources thereof, fetching resources of the same page earlier or fetching resources in parallel to the loading of the page, and the likes. Once the resources are in the cache of the browser, the browser rather than accessing the data item remotely could fetch them from the browser's cache without connecting to an external server to read data times, hence be exposed to delays.
  • A couple of solutions are shown to achieve the desired results. A first approach is used with respect to AJAX, which is a mechanism supported by typical browsers to read from a server asynchronously. The code which initiates an AJAX request receives an event once a page's resource is loaded or, otherwise, in case of an error. Using this mechanism, any resource required in the future or that needs to load in parallel can be fetched. If the purpose is to load the resource in parallel, the resource is used upon the completion event. While appropriate in some cases, this mechanism is limited to fetching resources from the original domain only, that is, resources located in a different domain cannot be fetched. A second approach is to use HTML tags which load external resources. These tags are placed in the text of the HTML, or any referenced external resource, or otherwise inserted dynamically into the DOM using a scripting language. The tags can be, but are not limited to, “link”, “script” and “image”. If anything needs to be done when a resource finishes loading, an event handler, e.g., “onload” or “onerror” handlers, respective of these tags is used. When using a tag to load a resource it was designed to use, e.g., using SCRIPT tag to load a Javascript file or using a LINK tag to load a stylesheet, the tags must be configured to load only that resource and do nothing else. For a script tag, it can be achieved, among others, using its TYPE attribute; for a link tag, its MEDIA attribute, and others, may be used. Some of these tags stop the processing of the document when used, so they are inferior when used for the required purpose. However, all these tags let the page load a resource from any domain and is therefore a more flexible solution. Instead of creating tags, the same technique may be used by creating script objects. For example, instead of creating an “image” tag, a new Image object can be created. Pointing the Image source to the relevant file achieves the same purpose without actually introducing new tags to the DOM.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer for tagging the scripts in accordance with the principle described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and tags the scripts in a modified web page, which may also be stored in the FEC 146 for future use by other user nodes 130.
  • VI. Pre-fetching Resources of the Same Page
  • The sequence of loading a web page, along with its resources is inefficient. The protocols do not utilize the network to use the entire available bandwidth at all times. Thus, as the page is parsed and scripts executed, every resource is read from the network only immediately prior to its use. However, in many cases it is possible to bring data much earlier in the page load process. This is specifically useful during periods where the network's bandwidth is not fully utilized.
  • In accordance with the principles of the invention, the web page's resources are fetched earlier during the load sequence of the web page using one or more of the “Techniques of Bringing Items to the Browser's Cache” discussed herein. This way, the network is better utilized and when the resource is needed, it is already in the cache, thus it is not necessary to read it from the network again.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer and inserts the code which loads page's resources to the cache earlier in the page in accordance with the principle described above. The decision about which resources to prefetch and where in the HTML to put the prefetch code can be hard coded, configurable, or deduced by the tool. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and inserts the code which loads it to the cache earlier in the page, which may also be stored in the FEC 146 for future use by other user nodes 130.
  • VII. Automatic Generation of Image Containers
  • In many web pages, most of the requests to the server are made to bring images. As every request includes a “handshake” with the web server and many times TCP connection time, every such a request has an overhead. One way to deal with the problem is to combine two or more images in a single image container, then a browser can fetch the two or more images using only one request. One known technique to create such a container is typically referred to as CSS sprite. This technique is to combine several images into one “tapestry” image, referred to as a “sprite” and to bring it in a single request. Then, a CSS is used to define different regions in the combined image and enable the use of each such a region as a standalone image. This technique has been used till today in several ways: a) manually combining images into a sprite as part of the design on a web site; or, b) there are web sites which allow a user to upload a series of images and download the combined image and the CSS file which the browser will use to separate it back to the original images. Combining images can be also done by using the MHTML format (understood by the Microsoft Internet Explorer browser), the data:uri format (understood by most web-kit based browsers such as Mozilla Firefox), and others.
  • Existing solutions automatically combine every a few images in a web page into a sprite. This combination is created by in the web server, thus the web page is transformed before it ever leaves the server on its way to the end-user. There are two problems with the mechanism: a) for web pages with dynamic data, many times only part of the images is common to all the instances of the web page and other images change. For example, the home page of Facebook contains different images for different users, but the images that create the background are always the same. Thus, images cannot be blindly combined. When designing a web site, sprites can be designed to automatically separate between the different kinds of images (as it knows the structure of the web site). A system which is placed outside the web server does not have this knowledge; and b) there is a conflict between the need to put as many images as possible in the sprite (to reduce latency) and the fact that no image will be displayed until the entire sprite is brought from the server and thus there is a need to put fewer images in the sprite.
  • In accordance with the principles of the invention, the solution is a mechanism that decides which images should be placed in every image container. The factors are, but not limited to, which images are common to all instances of a web page and what images are visible on a common display when the web page is loaded. In the case of images that are common to every instance of a page a hard coded approach may be used, a configuration notification, or otherwise learned by the system over time by analyzing the web pages passing through it and/or images passing through it. In the case of images visible on a display the size of the display can be determined automatically by analyzing the incoming headers, heuristically, by assuming common display sizes or both. Once the display size was determined, one or more containers can be generated. For example, one container may be generated for the visible items and one container for the items outside the immediate or initial display boundaries, i.e., those display items that the user needs to scroll to. Alternatively, a container may be generated for the visible images and no container at all for the ones outside the visible area. Other criteria may be used, for example, all the images which create the background should be part of one container and all the other images may be divided between other containers/left alone (even if other images are common to all instances of the page and are in the visible area). Another embodiment may use a criterion of placing the images common to all users in one container and then placing the images which change among requests from different users into another container.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer for creating the sprites in accordance with the principles described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and generates the sprites for the modified web page. The modified web page may also be stored in the FEC 146 for future use by other user nodes 130.
  • VIII. Postponing of iframes
  • iframes are pieces of a HTML page which are other HTML pages. Every iframe has its own address, so every iframe requires one or more requests, iframes are supposed to load and run in parallel to the parent document, but in practice it is not always so and many time they introduce a delay to the loading of the page.
  • In most cases, the content inside the iframe is not the primary content of the web site, and many times not even in the area that is visible when the site is loaded. Thus, the iframe tags in the <html> tag can be replaced by placeholders, for example without limitations, tags with a unique id, and a code can be inserted further in the html which puts an iframe tag into its original placeholder. The placeholder can be an empty iframe tag and the code just directs the tag to the address the original iframe pointed.
  • In one embodiment of the invention, a post-processing tool parses a web page prepared by a developer for tagging the iframes in accordance with the principles described above. In another embodiment, the WPAA 140 intercepts the web page and parses it prior to sending it out to a user node 130. The original web page may reside in the BEC 144. The acceleration server 142 based on instructions contained in the storage 148 parses the web page in accordance with the invention described above and for tagging the iframes for the modified web page. The modified web page may also be stored in the BEC 146 for future use by other user nodes 130.
  • IX. Splitting Combined Web Page Resources
  • Many of web page load time optimization techniques include combining web page's resources such as, but not limited to, images, style sheets, Javascripts, and others. The aim is to reduce the impact of latency and server side request processing time. However, the farther a client is from a server, the worse the bandwidth between them is. Therefore, though the impact of latency and request processing time is reduced, the entire data may be transferred more slowly than it would otherwise be sent in its non-combined state.
  • According to an embodiment of the invention, the combined resource is split into several, but not many, containers that are downloaded at the same time. The number of containers is between a predefined range (upper limit and lower limit) that is set to a value to overcome a connection-per-domain limit of a user's browser. In some cases, the containers should be downloaded from different domains/sub-domain to overcome the browser's connection-per-domain limit. For example, combining two hundred small images into four CSS sprites would be more efficient than either leaving the two hundred images as is or combining all of them into one big sprite. It should be noted that this embodiment may be performed by a post-processing tool or the WPAA 140.
  • X. Viewport Prioritization
  • Once a webpage is loaded, only a part of it is immediately visible. The visible part is called “viewport”, which basically is everything that is viewable “above the fold”, and to increase the speed a web page is loaded, as far as the user experience is concerned, this part should be fully loaded before the invisible part starts loading. Many times, the order of page's resources, e.g., iframes, Javascript files, CSS files, images, and so on, as they are defined in the HTML web page, does not correspond to their actual location on the screen. The browser requests the resources in the order they are placed in the HTML file, due to the sequential nature of the parsing of the HTML file. However, in many cases, this causes resources appearing lower in the screen, and typically resources that do not appear in the viewport at all, to be fetched before they are needed. This causes some resources in the viewport to be fetched later than actually would be beneficial to the user, reduces utilization of bandwidth, and unnecessarily uses connections whose number is limited by the browser.
  • According to an embodiment of the invention, the viewport prioritization solution consists of two parts. The first part is a script that runs on the web page and collects information about the location of every element of the web page, including elements that are defined inside iframes. This script reports to the server the collected data, in either raw or processed form. The second part is a component which analyzes the collected data. For the combined resources, the order of the resources in the combined files is defined according to their position in the screen, sorted by their position with respect of the Y-axis. For the regular resources, a script is added to the beginning of the web page which asynchronously preloads the resources according to their position in the screen. Thus, when the browser tries to fetch the resource during rendering, the resource is already in the cache. Also, all the resources which are not in the viewport are postponed until all the resources in the viewport are loaded. The viewport is typically determined separately for every user during the rendering of the page, or defined heuristically for all clients/groups of clients. It should be noted that this embodiment may be performed by the post-processing tool or the WPAA 140.
  • XI. Background Image Management for Web Pages
  • On a typical web page, part of the images are actual images defined by <img> tags on a page and part of the images are background images defined in various styles. All the images from the <img> tags are fetched when the page is loaded, but not all the images defined in the style are fetched. Only when an element uses the style is the image fetched. When statically analyzing the web page (for pre-fetch, image combining or any other purpose), it is difficult to understand which images are actually part of the page and which images are just defined in the styles but are not actually used by the page.
  • The solution is based on a client side script (Javascript, for example) which scans, according to predefined criteria, some or all elements in the DOM. This script reads the effective style of every such element and checks whether this style contains a background image and if it does which image is it. Then, the script sends the gathered information to the server where it can be used for optimization techniques, such as image combining, sorting image loading according to the visual position on the page and pre-fetching. It should be noted that this embodiment may be performed by a post-processing tool or the WPAA 140.
  • XII. Progressive Loading of Combined Resources of a Web Page
  • When combining resources trivially, every one of these resources is available only once the entire combined resource is loaded. This postpones the rendering of the first resource in the file until later resources are loaded.
  • According to an embodiment of the invention, the combined file is loaded progressively. For example, when loading a resource using AJAX, browsers read the resource chunk by chunk, returning the control to the AJAX callback function after each chunk. Thus, the following process can be used in the AJAX callback function to achieve progressively loading:
  • 1) Checking that the function is called after a chunk and not because of an error;
  • 2) Adding the new chunk to the existing chunks' buffer;
  • 3) Parsing the chunks' buffer;
  • 4) If new resources were found in the updates buffer then:
      • 4a) For every one of the new resources:
        • Finding all elements which use the new resource, for example, image tags which point to the resource, now a part of the combined file; and
        • Replacing the address the elements point to by the new resource is fully loaded and is now in the cache.
  • One example of using such a method is for the data:uri mechanism in modern browsers. Using it naively causes the browser to wait until the entire combined file is loaded. When applying the disclosed method, every time a resource finishes loading, it can be used by any elements, and placed by the script for use.
  • An addition to the process is to progressively load background images. Background images do not include any element, thus cannot be used in the manner described above. However, the following process can be applied:
  • 1) Combining the style sheet definitions that contain background URLs to, for example one combined file, which also contains the data of the images. It should be noted that in some cases several combined files may be created;
  • 2) Reading the combined file using AJAX;
  • 3) Every time the control returns to the AJAX callback function the following is performed:
        • 3a) Adding the new chunk to the read data array;
        • 3b) Parsing the read data array to identify if any new classes were added; and
        • 3c) For every new class added, preferably in full, the new class is applied to the web page.
          It should be noted that this embodiment may be performed by a post-processing tool or the WPAA 140.
  • The principles of the invention can be implemented as hardware, firmware, software or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit, a non-transitory computer readable medium, or a non-transitory machine-readable storage medium that can be in a form of a digital circuit, an analogy circuit, a magnetic medium, or combination thereof. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.
  • The foregoing detailed description has set forth a few of the many forms that the invention can take. It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a limitation to the definition of the invention. It is only the claims, including all equivalents that are intended to define the scope of this invention.

Claims (20)

1. A system for accelerating access to web pages, comprising:
a network interface enabling communication of one or more user nodes with one or more web servers over a network for accessing web pages stored in the one or more web servers;
an acceleration server coupled to the network interface for determining a plurality of images of the web page to place in an image container based on loading properties of the web page and placing the plurality of images of the web page in the image container, such that the plurality of images can be fetched in a single request;
a first cache connected to the acceleration server and the one or more user nodes and operative to cache information associated with requests directed from the one or more the user nodes to the acceleration server;
a second cache connected to the acceleration server and the one or more web servers and operative to cache information associated with requests directed from the one or more web servers to the acceleration server; and
a memory coupled to the acceleration server and containing a plurality of instructions respective of the at least one acceleration technique.
2. The system of claim 1, wherein the acceleration server further places a second plurality of images of the web page in a second image container, such that the second plurality of images can be fetched in a single request.
3. The system of claim 2, wherein the acceleration server further determines that the image container is of higher priority than the second image container such that the image container is loaded prior to the second image.
4. The system of claim 1, wherein the plurality of images is determined based on an image's size.
5. The system of claim 1, wherein the plurality of images is determined based on an image's visibility within a display area.
6. The system of claim 1, wherein the plurality of images is determined based on an image's commonality across multiple loadings of the web page.
7. The system of claim 1, wherein the acceleration server further combines the plurality of images into a single tapestry image.
8. The system of claim 1, wherein the plurality of images includes a set of images contributing to a background of the web page.
9. The system of claim 1, wherein the acceleration server further parses the web page to determine the plurality of images.
10. The system of claim 1, wherein the acceleration server further modifies the web page to reference the image container.
11. A method for accelerating access to a web page, comprising:
receiving the web page responsive to a request by a user;
analyzing the received web page for possible acceleration improvements;
determining a plurality of images of a web page to place in an image container based on loading properties of the web page;
placing the plurality of images of the web page in the image container, such that the plurality of images can be fetched in a single request;
generating a modified web page of the received web page to reference the image container;
providing the modified web page to the user; and
storing the modified web page for use responsive to future user requests.
12. The method of claim 11, further comprising placing a second plurality of images of the web page in a second image container, such that the second plurality of images can be fetched in a single request.
13. The method of claim 12, further comprising determining that the image container is of higher priority than the second image container such that the image container is loaded prior to the second image.
14. The method of claim 11, wherein the plurality of images is determined based on image parameters.
15. The method of claim 11, wherein the plurality of images is determined based on an image's size.
16. The method of claim 11, wherein the plurality of images includes a set of images initially viewable to a user upon loading of the web page.
17. The method of claim 11, wherein the plurality of images is determined based on an image's commonality across multiple loadings of the web page.
18. The method of claim 11, further comprising combining the plurality of images into a single tapestry image.
19. The method of claim 11, wherein the plurality of images includes a set of images contributing to a background of the web page.
20. The method of claim 11, further comprising parsing the web page, wherein the plurality of images is determined based on the parsed web page.
US13/565,527 2009-08-03 2012-08-02 Acceleration and optimization of web pages access by changing the order of resource loading Abandoned US20120297291A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US21395909P true 2009-08-03 2009-08-03
US30895110P true 2010-02-28 2010-02-28
US12/848,559 US20110029899A1 (en) 2009-08-03 2010-08-02 Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US13/245,841 US8250457B2 (en) 2009-08-03 2011-09-26 Acceleration and optimization of web pages access by changing the order of resource loading
US13/565,527 US20120297291A1 (en) 2009-08-03 2012-08-02 Acceleration and optimization of web pages access by changing the order of resource loading

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/565,527 US20120297291A1 (en) 2009-08-03 2012-08-02 Acceleration and optimization of web pages access by changing the order of resource loading
US13/663,190 US20130103704A1 (en) 2009-08-03 2012-10-29 Javascript reductor
US13/945,240 US9633217B2 (en) 2009-08-03 2013-07-18 Indiscriminate virtual containers for prioritized content-object distribution

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/245,841 Continuation US8250457B2 (en) 2009-08-03 2011-09-26 Acceleration and optimization of web pages access by changing the order of resource loading

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/482,638 Continuation-In-Part US8495171B1 (en) 2012-05-29 2012-05-29 Indiscriminate virtual containers for prioritized content-object distribution
US13/482,622 Continuation-In-Part US9058402B2 (en) 2012-05-29 2012-05-29 Chronological-progression access prioritization

Publications (1)

Publication Number Publication Date
US20120297291A1 true US20120297291A1 (en) 2012-11-22

Family

ID=43528027

Family Applications (9)

Application Number Title Priority Date Filing Date
US12/848,559 Abandoned US20110029899A1 (en) 2009-08-03 2010-08-02 Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US12/848,611 Active 2031-01-29 US8321533B2 (en) 2009-08-03 2010-08-02 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US13/245,711 Active US8219633B2 (en) 2009-08-03 2011-09-26 Acceleration of web pages access using next page optimization, caching and pre-fetching
US13/245,841 Active US8250457B2 (en) 2009-08-03 2011-09-26 Acceleration and optimization of web pages access by changing the order of resource loading
US13/471,211 Active US8346885B2 (en) 2009-08-03 2012-05-14 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US13/471,230 Abandoned US20120226972A1 (en) 2009-08-03 2012-05-14 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching technique
US13/565,527 Abandoned US20120297291A1 (en) 2009-08-03 2012-08-02 Acceleration and optimization of web pages access by changing the order of resource loading
US13/731,438 Active US8661090B2 (en) 2009-08-03 2012-12-31 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US14/137,598 Active US8856263B2 (en) 2009-08-03 2013-12-20 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques

Family Applications Before (6)

Application Number Title Priority Date Filing Date
US12/848,559 Abandoned US20110029899A1 (en) 2009-08-03 2010-08-02 Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US12/848,611 Active 2031-01-29 US8321533B2 (en) 2009-08-03 2010-08-02 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US13/245,711 Active US8219633B2 (en) 2009-08-03 2011-09-26 Acceleration of web pages access using next page optimization, caching and pre-fetching
US13/245,841 Active US8250457B2 (en) 2009-08-03 2011-09-26 Acceleration and optimization of web pages access by changing the order of resource loading
US13/471,211 Active US8346885B2 (en) 2009-08-03 2012-05-14 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US13/471,230 Abandoned US20120226972A1 (en) 2009-08-03 2012-05-14 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching technique

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13/731,438 Active US8661090B2 (en) 2009-08-03 2012-12-31 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US14/137,598 Active US8856263B2 (en) 2009-08-03 2013-12-20 Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques

Country Status (1)

Country Link
US (9) US20110029899A1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120272132A1 (en) * 2011-04-21 2012-10-25 Qualcomm Innovation Center, Inc. Methods and apparatus for improved browsing performance by precompilation of high-priority javascripts in a webpage and delaying the removal of corresponding compiled code
CN103312803A (en) * 2013-06-17 2013-09-18 杭州华三通信技术有限公司 Method and device for optimizing Web access experience
CN103390050A (en) * 2013-07-24 2013-11-13 北京小米科技有限责任公司 Webpage prefetching method and device, and terminal equipment
US20140068419A1 (en) * 2012-08-28 2014-03-06 Sweetlabs, Inc. Systems and methods for hosted applications
US20140143649A1 (en) * 2012-11-16 2014-05-22 International Business Machines Corporation Dynamic File Retrieving for Web Page Loading
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US8793573B2 (en) * 2012-10-29 2014-07-29 Dropbox, Inc. Continuous content item view enhanced through smart loading
US8806333B2 (en) 2012-10-15 2014-08-12 Sweetlabs, Inc. Systems and methods for integrated application platforms
US20150082149A1 (en) * 2013-09-16 2015-03-19 Adobe Systems Incorporated Hierarchical Image Management for Web Content
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US9104475B2 (en) 2011-04-07 2015-08-11 Qualcomm Innovation Center, Inc. Methods and apparatus for managing operations of a web browser by predicting time period of subsequent script execution activity
CN104991942A (en) * 2015-07-10 2015-10-21 沈文策 Web front end performance optimization method
US20150341421A1 (en) * 2014-05-20 2015-11-26 Citrix Systems, Inc. Systems and methods for just-in-time state sharing
US20160373544A1 (en) * 2015-06-17 2016-12-22 Fastly, Inc. Expedited sub-resource loading
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10270887B2 (en) * 2012-01-03 2019-04-23 Airbus Operations Gmbh Server system, aircraft or spacecraft and method

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US9171097B2 (en) 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
US9311425B2 (en) * 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page
US9792385B2 (en) * 2009-06-19 2017-10-17 Oath Inc. Systems and methods for improved web-based document retrieval and object manipulation
US9633217B2 (en) * 2009-08-03 2017-04-25 Limelight Networks, Inc. Indiscriminate virtual containers for prioritized content-object distribution
US20110029899A1 (en) * 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US8706661B2 (en) * 2009-11-10 2014-04-22 Yahoo! Inc. System and method for generating an image sprite
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US8996986B2 (en) 2010-01-11 2015-03-31 Ensighten, Inc. Enhanced delivery of content and program instructions
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8407319B1 (en) 2010-03-24 2013-03-26 Google Inc. Event-driven module loading
US9369437B2 (en) 2010-04-01 2016-06-14 Cloudflare, Inc. Internet-based proxy service to modify internet responses
US9049247B2 (en) 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8984048B1 (en) 2010-04-18 2015-03-17 Viasat, Inc. Selective prefetch scanning
US8453049B1 (en) 2010-05-19 2013-05-28 Google Inc. Delayed code parsing for reduced startup latency
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US9626197B1 (en) * 2010-07-30 2017-04-18 Amazon Technologies, Inc. User interface rendering performance
WO2012037572A1 (en) 2010-09-17 2012-03-22 Oracle International Corporation Recursive navigation in mobile customer relations management
EP2616970A1 (en) * 2010-09-17 2013-07-24 Oracle International Corporation Method and apparatus for binding mobile device functionality to an application definition
US9275165B2 (en) 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
US9077681B2 (en) * 2010-10-05 2015-07-07 Microsoft Technology Licensing, Llc Page loading optimization using page-maintained cache
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US9083761B1 (en) * 2010-11-10 2015-07-14 Google Inc. Reduced latency for subresource transfer
US9465885B2 (en) * 2010-12-03 2016-10-11 Salesforce.Com, Inc. Method and system for providing information to a mobile handheld device from a database system
US8799769B2 (en) * 2011-02-08 2014-08-05 Ebay Inc. Application above-the-fold rendering measurements
US20120215890A1 (en) * 2011-02-22 2012-08-23 International Business Machines Corporation Network-aware structured content downloads
US9075893B1 (en) * 2011-02-25 2015-07-07 Amazon Technologies, Inc. Providing files with cacheable portions
US9697628B2 (en) 2011-03-18 2017-07-04 Paypal, Inc. On-demand image spriting
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9912718B1 (en) * 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
EP2680533B8 (en) * 2011-04-28 2017-12-13 Huawei Device (Dongguan) Co., Ltd. Content acquiring method and client based on http
CN102222086B (en) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 Webpage viewing method and webpage viewing device based on mobile terminal as well as mobile terminal
US8285808B1 (en) 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
US9400851B2 (en) * 2011-06-23 2016-07-26 Incapsula, Inc. Dynamic content caching
US9407727B1 (en) * 2011-06-29 2016-08-02 Riverbed Technology, Inc. Optimizing communications using client-side reconstruction scripting
US20130036193A1 (en) * 2011-07-07 2013-02-07 Ebay Inc. System and method for generating dynamic image sprites
US8635518B1 (en) * 2011-07-21 2014-01-21 Google Inc. Methods and systems to copy web content selections
US9165308B2 (en) * 2011-09-20 2015-10-20 TagMan Inc. System and method for loading of web page assets
US9503498B2 (en) 2011-09-29 2016-11-22 International Business Machines Corporation Web page script management
US8826153B2 (en) * 2011-10-04 2014-09-02 Google Inc. Speculative actions based on user dwell time over selectable content
CN102346782A (en) * 2011-10-25 2012-02-08 中兴通讯股份有限公司 Method and device for displaying pictures on browser of user terminal as required
US8644623B2 (en) 2011-11-16 2014-02-04 Microsoft Corporation Measuring web page rendering time
US8700691B2 (en) * 2011-12-05 2014-04-15 Microsoft Corporation Minimal download and simulated page navigation features
US20130159382A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Generically presenting virtualized data
US9742858B2 (en) 2011-12-23 2017-08-22 Akamai Technologies Inc. Assessment of content delivery services using performance measurements from within an end user client application
JP5154685B1 (en) * 2011-12-28 2013-02-27 楽天株式会社 Image providing apparatus, an image providing method, an image providing program, and a computer-readable recording medium for recording the program
WO2013097107A1 (en) * 2011-12-28 2013-07-04 广州市动景计算机科技有限公司 Webpage pre-reading method, webpage pre-reading device, browser and mobile terminal
US9846605B2 (en) * 2012-01-19 2017-12-19 Microsoft Technology Licensing, Llc Server-side minimal download and error failover
US10289743B2 (en) 2012-01-19 2019-05-14 Microsoft Technology Licensing, Llc Client-side minimal download and simulated page navigation features
US9817916B2 (en) 2012-02-22 2017-11-14 Akamai Technologies Inc. Methods and apparatus for accelerating content authored for multiple devices
US20130246553A1 (en) * 2012-03-16 2013-09-19 Empire Technology Development Llc Data migration
US9785619B1 (en) * 2012-03-23 2017-10-10 Amazon Technologies, Inc. Interaction based display of visual effects
US10331769B1 (en) 2012-03-23 2019-06-25 Amazon Technologies, Inc. Interaction based prioritized retrieval of embedded resources
US8626909B2 (en) 2012-05-22 2014-01-07 Microsoft Corporation Page phase time
US8892684B2 (en) 2012-05-25 2014-11-18 Microsoft Corporation Dynamic selection of resources for compression in a content delivery network
US9282137B2 (en) 2012-05-25 2016-03-08 Microsoft Technology Licensing, Llc Dynamic package creation for predictive page load optimization
US8495171B1 (en) 2012-05-29 2013-07-23 Limelight Networks, Inc. Indiscriminate virtual containers for prioritized content-object distribution
US9058402B2 (en) 2012-05-29 2015-06-16 Limelight Networks, Inc. Chronological-progression access prioritization
US8346784B1 (en) 2012-05-29 2013-01-01 Limelight Networks, Inc. Java script reductor
WO2013181164A1 (en) * 2012-05-29 2013-12-05 Limelight Networks, Inc. Chronological-progression access prioritization
US8832288B1 (en) * 2012-07-13 2014-09-09 Google Inc. Transitions between remotely cached and live versions of a webpage
US20140053064A1 (en) 2012-08-16 2014-02-20 Qualcomm Incorporated Predicting the usage of document resources
US9898445B2 (en) * 2012-08-16 2018-02-20 Qualcomm Incorporated Resource prefetching via sandboxed execution
US9311280B2 (en) * 2012-08-27 2016-04-12 Qualcomm Innovation Center, Inc. Re-ordering of iFrame execution to reduce network activity window
US20140068016A1 (en) * 2012-08-28 2014-03-06 Greg Howett System and Method for Web Application Acceleration
US10261938B1 (en) * 2012-08-31 2019-04-16 Amazon Technologies, Inc. Content preloading using predictive models
US9317490B2 (en) * 2012-09-19 2016-04-19 TagMan Inc. Systems and methods for 3-tier tag container architecture
CN103678411A (en) * 2012-09-24 2014-03-26 联想(北京)有限公司 Picture information processing method, operation processing method and electronic equipment
US9235650B2 (en) * 2012-09-27 2016-01-12 Siemens Product Lifecycle Management Software Inc. Efficient conversion of XML data into a model using persistent stores and parallelism
CN103699554A (en) * 2012-09-27 2014-04-02 深圳云富网络科技有限公司 Webpage data calling method and device
US8965880B2 (en) 2012-10-05 2015-02-24 Google Inc. Transcoding and serving resources
US20140108941A1 (en) 2012-10-17 2014-04-17 Christopher Stephen Joel Method and Apparatus for Automatically Optimizing the Loading of Images in a Cloud-Based Proxy Service
US20140136952A1 (en) * 2012-11-14 2014-05-15 Cisco Technology, Inc. Improving web sites performance using edge servers in fog computing architecture
US9785621B2 (en) * 2012-11-26 2017-10-10 Akamai Technologies, Inc. Progressive consolidation of web page resources
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9736271B2 (en) 2012-12-21 2017-08-15 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism with usage-based billing
US9342616B2 (en) 2013-03-04 2016-05-17 International Business Machines Corporation User influenced asynchronous module definition loader
US9201977B2 (en) * 2013-03-12 2015-12-01 Andrew K. Lukes Automatic flowchart-based webpage generation for troubleshooting or task completion without manual programming
US9363329B1 (en) 2013-03-15 2016-06-07 Instart Logic, Inc. Identifying correlated components of dynamic content
US20140280677A1 (en) * 2013-03-15 2014-09-18 Limelight Networks, Inc. Two-file preloading for browser-based web acceleration
US20160191658A1 (en) * 2013-03-15 2016-06-30 Instart Logic, Inc. Efficient delivery of webpages
US9298455B1 (en) 2013-03-15 2016-03-29 Instart Logic, Inc. Provisional execution of dynamic content component
US8645494B1 (en) 2013-03-15 2014-02-04 Limelight Networks, Inc. Two-file preloading for browser-based web acceleration
CN108595468A (en) 2013-03-22 2018-09-28 阿里巴巴集团控股有限公司 Acquiring methods and devices of webpage data, server, terminal and system
CN103164541B (en) * 2013-04-15 2017-04-12 北京世界星辉科技有限责任公司 Pictures presentation method and apparatus
US8799799B1 (en) * 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
US9098477B2 (en) 2013-05-15 2015-08-04 Cloudflare, Inc. Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service
US20140359423A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Local caching to improve remote site editing
US20140365864A1 (en) * 2013-06-06 2014-12-11 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US9774620B2 (en) * 2013-06-18 2017-09-26 Microsoft Technology Licensing, Llc Automatic code and data separation of web application
US9015348B2 (en) 2013-07-19 2015-04-21 Limelight Networks, Inc. Dynamically selecting between acceleration techniques based on content request attributes
US8990357B2 (en) 2013-07-29 2015-03-24 Cloudflare, Inc. Method and apparatus for reducing loading time of web pages
US9626344B1 (en) 2013-09-19 2017-04-18 Amazon Technologies, Inc. Conditional promotion through packet reordering
US9734134B1 (en) 2013-09-19 2017-08-15 Amazon Technologies, Inc. Conditional promotion through frame reordering
US9785969B1 (en) 2013-09-19 2017-10-10 Amazon Technologies, Inc. Conditional promotion in multi-stream content delivery
US9607322B1 (en) 2013-09-19 2017-03-28 Amazon Technologies, Inc. Conditional promotion in content delivery
US9922006B1 (en) * 2013-09-19 2018-03-20 Amazon Technologies, Inc. Conditional promotion through metadata-based priority hinting
US9477774B2 (en) * 2013-09-25 2016-10-25 Akamai Technologies, Inc. Key resource prefetching using front-end optimization (FEO) configuration
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9648125B2 (en) * 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) * 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9729410B2 (en) * 2013-10-24 2017-08-08 Jeffrey T Eschbach Method and system for capturing web content from a web server
US9819721B2 (en) 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
US8924850B1 (en) 2013-11-21 2014-12-30 Google Inc. Speeding up document loading
US9348669B2 (en) * 2013-12-09 2016-05-24 Google Inc. User interface framework
CN104731808A (en) * 2013-12-20 2015-06-24 腾讯科技(深圳)有限公司 Browser webpage loading method and browser webpage loading device
CN104767679B (en) * 2014-01-08 2018-12-18 腾讯科技(深圳)有限公司 A method of transmitting data in a network system and apparatus
US9571478B2 (en) * 2014-01-09 2017-02-14 Red Hat, Inc. Conditional request processing
US20170011133A1 (en) * 2014-03-31 2017-01-12 Open Garden Inc. System and method for improving webpage loading speeds
US20150293889A1 (en) * 2014-04-09 2015-10-15 Google Inc. Perception of page download time by optimized resource scheduling
US9576070B2 (en) 2014-04-23 2017-02-21 Akamai Technologies, Inc. Creation and delivery of pre-rendered web pages for accelerated browsing
CN105094857B (en) * 2014-04-23 2018-09-25 国际商业机器公司 A method and system for applying loading
US10169776B2 (en) * 2014-05-12 2019-01-01 Adobe Systems Incorporated Obtaining profile information for future visitors
CN105138448B (en) * 2014-06-05 2018-06-05 北京畅游天下网络技术有限公司 The method and apparatus of the species at the front end of the test page
US9781135B2 (en) 2014-06-20 2017-10-03 Microsoft Technology Licensing, Llc Intelligent web page content blocking
US9979644B2 (en) * 2014-07-13 2018-05-22 Cisco Technology, Inc. Linking to content using information centric networking
US9753904B2 (en) 2014-07-25 2017-09-05 Qualcomm Incorporated Fast rendering of websites containing dynamic content and stale content
US10038749B2 (en) 2014-10-20 2018-07-31 Microsoft Technology Licensing, Llc Pre-fetch cache for visualization modification
CN104298790A (en) * 2014-11-11 2015-01-21 北京奇虎科技有限公司 Browser accelerating method and browser device with accelerator
CN104461543A (en) * 2014-12-11 2015-03-25 武汉噢易云计算有限公司 Implementation method of top-speed rendering for web page browser
US10063653B2 (en) * 2014-12-29 2018-08-28 Akamai Technologies, Inc. Distributed server architecture for supporting a predictive content pre-fetching service for mobile device users
WO2016112354A2 (en) * 2015-01-08 2016-07-14 Instart Logic, Inc. Html streaming
US20160205167A1 (en) * 2015-01-08 2016-07-14 Instart Logic, Inc. Adaptive learning periods in HTML streaming
US9948709B2 (en) 2015-01-30 2018-04-17 Akamai Technologies, Inc. Using resource timing data for server push in multiple web page transactions
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
CN104618506A (en) * 2015-02-24 2015-05-13 庄奇东 Crowd-sourced content delivery network system, method and device
EP3070622A1 (en) 2015-03-16 2016-09-21 Palantir Technologies, Inc. Interactive user interfaces for location-based data analysis
CN106326223A (en) * 2015-06-16 2017-01-11 广州市动景计算机科技有限公司 Method and device for acquiring web page resource
US9819762B2 (en) 2015-06-26 2017-11-14 Cloudflare, Inc. Method and apparatus for reducing loading time of web pages
CN106657183A (en) * 2015-10-30 2017-05-10 中兴通讯股份有限公司 Caching acceleration method and apparatus
US9851957B2 (en) * 2015-12-03 2017-12-26 International Business Machines Corporation Improving application code execution performance by consolidating accesses to shared resources
CN105630545B (en) * 2015-12-21 2018-12-25 北京奇虎科技有限公司 Browser starts method and device
CN105930058A (en) * 2016-04-21 2016-09-07 青岛海信移动通信技术股份有限公司 Application starting method and apparatus for mobile terminal and mobile terminal
CN107329963A (en) * 2016-04-29 2017-11-07 北京京东尚科信息技术有限公司 Method and device for accelerating webpage access
US20170346876A1 (en) * 2016-05-27 2017-11-30 Microsoft Technology Licensing, Llc Web page accelerations for web application hosted in native mobile application
CN109391649A (en) * 2017-08-04 2019-02-26 阿里巴巴集团控股有限公司 The methods, devices and systems of page load

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248831A1 (en) * 2008-03-27 2009-10-01 Scott Sean M Dynamic image composition

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US737599A (en) * 1903-07-22 1903-09-01 John Evans Sons End clip or bearing-plate for semielliptic springs.
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5894554A (en) * 1996-04-23 1999-04-13 Infospinner, Inc. System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
US5826031A (en) * 1996-06-10 1998-10-20 Sun Microsystems, Inc. Method and system for prioritized downloading of embedded web objects
US5907681A (en) * 1997-10-20 1999-05-25 International Business Machines Corporation Intelligent method, apparatus and computer program product for automated refreshing of internet web pages
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6067565A (en) 1998-01-15 2000-05-23 Microsoft Corporation Technique for prefetching a web page of potential future interest in lieu of continuing a current information download
US6023726A (en) * 1998-01-20 2000-02-08 Netscape Communications Corporation User configurable prefetch control system for enabling client to prefetch documents from a network server
US6055572A (en) * 1998-01-20 2000-04-25 Netscape Communications Corporation System and method for creating pathfiles for use to predict patterns of web surfaces
US6182133B1 (en) * 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6272534B1 (en) * 1998-03-04 2001-08-07 Storage Technology Corporation Method and system for efficiently storing web pages for quick downloading at a remote device
US6578073B1 (en) 1998-05-13 2003-06-10 Hewlett-Packard Development Company, L.P. Accelerated content delivery over a network using reduced size objects
US6098064A (en) * 1998-05-22 2000-08-01 Xerox Corporation Prefetching and caching documents according to probability ranked need S list
US6385641B1 (en) 1998-06-05 2002-05-07 The Regents Of The University Of California Adaptive prefetching for computer network and web browsing with a graphic user interface
US6338096B1 (en) 1998-06-10 2002-01-08 International Business Machines Corporation System uses kernals of micro web server for supporting HTML web browser in providing HTML data format and HTTP protocol from variety of data sources
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
US20050257400A1 (en) * 1998-11-06 2005-11-24 Microsoft Corporation Navigating a resource browser session
US6907566B1 (en) * 1999-04-02 2005-06-14 Overture Services, Inc. Method and system for optimum placement of advertisements on a webpage
US6553393B1 (en) * 1999-04-26 2003-04-22 International Business Machines Coporation Method for prefetching external resources to embedded objects in a markup language data stream
US7096417B1 (en) 1999-10-22 2006-08-22 International Business Machines Corporation System, method and computer program product for publishing interactive web content as a statically linked web hierarchy
US6665658B1 (en) * 2000-01-13 2003-12-16 International Business Machines Corporation System and method for automatically gathering dynamic content and resources on the world wide web by stimulating user interaction and managing session information
US7240067B2 (en) 2000-02-08 2007-07-03 Sybase, Inc. System and methodology for extraction and aggregation of data from dynamic content
US6799214B1 (en) * 2000-03-03 2004-09-28 Nec Corporation System and method for efficient content delivery using redirection pages received from the content provider original site and the mirror sites
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US7007237B1 (en) 2000-05-03 2006-02-28 Microsoft Corporation Method and system for accessing web pages in the background
US7084877B1 (en) 2000-06-06 2006-08-01 General Instrument Corporation Global motion estimation for sprite generation
WO2002013035A1 (en) 2000-08-07 2002-02-14 Active Data Exchange, Inc. Syndication methodology to dynamically place digital assets on non-related web sites
EP1410215A4 (en) 2000-08-22 2006-10-11 Akamai Tech Inc Dynamic content assembly on edge-of-network servers in a content delivery network
US20020063714A1 (en) 2000-10-04 2002-05-30 Michael Haas Interactive, multimedia advertising systems and methods
US7249196B1 (en) * 2000-10-06 2007-07-24 Juniper Networks, Inc. Web page source file transfer system and method
US6834297B1 (en) 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
EP1204030A1 (en) * 2000-11-02 2002-05-08 Caplin Systems Limited Extending hypermedia documents by adding tagged attributes
US7000111B1 (en) * 2000-11-07 2006-02-14 Ericsson Inc. Method for masking secret multiplicands
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US20020078165A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation System and method for prefetching portions of a web page based on learned preferences
US20020078087A1 (en) * 2000-12-18 2002-06-20 Stone Alan E. Content indicator for accelerated detection of a changed web page
US7587669B2 (en) * 2001-04-09 2009-09-08 Aol Llc Server-based browser system
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7594001B1 (en) * 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US6968396B1 (en) * 2001-07-26 2005-11-22 Openwave Systems Inc. Reloading of hypermedia pages by sending only changes
US20030101412A1 (en) 2001-11-28 2003-05-29 Eid Eid User aggregation of webpage content
US7107338B1 (en) 2001-12-05 2006-09-12 Revenue Science, Inc. Parsing navigation information to identify interactions based on the times of their occurrences
US7370120B2 (en) * 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
US20030110079A1 (en) * 2001-12-12 2003-06-12 Weisman Mitchell T. Method and apparatus for providing items to users in a computer network
US20040215665A1 (en) 2002-01-09 2004-10-28 Edgar David A. System, method, and computer program product for providing accelerated and secure wireless data transmission over the internet
US7363291B1 (en) * 2002-03-29 2008-04-22 Google Inc. Methods and apparatus for increasing efficiency of electronic document delivery to users
US7171439B2 (en) * 2002-06-14 2007-01-30 Integrated Device Technology, Inc. Use of hashed content addressable memory (CAM) to accelerate content-aware searches
US20040008214A1 (en) 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging repeating images for improved compression
FR2843252A1 (en) 2002-07-30 2004-02-06 Thomson Licensing Sa Method for digital data compression of a video sequence having alternate plans
US7054917B1 (en) * 2002-08-07 2006-05-30 Propel Software Corporation Method for accelerating delivery of content in a computer network
US7953820B2 (en) * 2002-09-11 2011-05-31 Hughes Network Systems, Llc Method and system for providing enhanced performance of web browsing
US20040088375A1 (en) * 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
US7243309B2 (en) 2002-12-03 2007-07-10 Intel Corporation Interface accelerator
US20040225562A1 (en) 2003-05-09 2004-11-11 Aquantive, Inc. Method of maximizing revenue from performance-based internet advertising agreements
US20050044491A1 (en) 2003-08-20 2005-02-24 Michael Peterson Dynamic web serving system
US20050138143A1 (en) 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US7483941B2 (en) * 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US8195761B2 (en) * 2004-01-13 2012-06-05 International Business Machines Corporation Prefetching web resources based on proxy triggers
JP4650927B2 (en) * 2004-08-13 2011-03-16 ソニー株式会社 An information processing apparatus and method, and program
US7689663B2 (en) * 2005-03-24 2010-03-30 Hewlett-Packard Development Company, L.P. Embedded web-based management method
US7594013B2 (en) * 2005-05-24 2009-09-22 Microsoft Corporation Creating home pages based on user-selected information of web pages
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
US20070101061A1 (en) * 2005-10-27 2007-05-03 Guruprasad Baskaran Customized content loading mechanism for portions of a web page in real time environments
US8078952B2 (en) * 2005-11-28 2011-12-13 Microsoft Corporation Site redirection
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US8700469B2 (en) 2006-03-06 2014-04-15 Apple Inc. System and method for delivering advertising with enhanced effectiveness
US7860881B2 (en) 2006-03-09 2010-12-28 Microsoft Corporation Data parsing with annotated patterns
US20070225562A1 (en) * 2006-03-23 2007-09-27 Ethicon Endo-Surgery, Inc. Articulating endoscopic accessory channel
US20070256003A1 (en) 2006-04-24 2007-11-01 Seth Wagoner Platform for the interactive contextual augmentation of the web
US20070260748A1 (en) 2006-05-05 2007-11-08 Talkington Jerry L Method and apparatus to reduce the size of objects transmitted over a network
US8196052B2 (en) * 2006-06-30 2012-06-05 International Business Machines Corporation System and method to display a web page as scheduled by a user
US7805289B2 (en) * 2006-07-10 2010-09-28 Microsoft Corporation Aligning hierarchal and sequential document trees to identify parallel data
US8112703B2 (en) 2006-07-21 2012-02-07 Yahoo! Inc. Aggregate tag views of website information
US8181107B2 (en) * 2006-12-08 2012-05-15 Bytemobile, Inc. Content adaptation
US9003296B2 (en) * 2006-12-20 2015-04-07 Yahoo! Inc. Browser renderable toolbar
US7716281B2 (en) * 2007-02-12 2010-05-11 Oomble, Inc. Method and system for transferring content from the web to mobile devices
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US8572160B2 (en) * 2007-03-12 2013-10-29 Citrix Systems, Inc. Systems and methods for script injection
US7941483B2 (en) 2007-03-28 2011-05-10 Sap Ag Low latency display methods for thin client devices
US7818330B2 (en) * 2007-05-09 2010-10-19 Microsoft Corporation Block tracking mechanism for web personalization
US7873635B2 (en) * 2007-05-31 2011-01-18 Microsoft Corporation Search ranger system and double-funnel model for search spam analyses and browser protection
US7917846B2 (en) * 2007-06-08 2011-03-29 Apple Inc. Web clip using anchoring
US7747602B2 (en) * 2007-07-31 2010-06-29 Yahoo! Inc. Comment faces
US20090125481A1 (en) * 2007-11-09 2009-05-14 Mendes Da Costa Alexander Presenting Media Data Associated with Chat Content in Multi-Dimensional Virtual Environments
US7958232B1 (en) * 2007-12-05 2011-06-07 Appcelerator, Inc. Dashboard for on-the-fly AJAX monitoring
NZ566291A (en) * 2008-02-27 2008-12-24 Actionthis Ltd Methods and devices for post processing rendered web pages and handling requests of post processed web pages
US9298747B2 (en) * 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8156419B2 (en) 2008-07-17 2012-04-10 International Business Machines Corporation Intelligent preloads of views and asynchronous loading of models using the MVC design pattern
US7818686B2 (en) 2008-09-04 2010-10-19 International Business Machines Corporation System and method for accelerated web page navigation using keyboard accelerators in a data processing system
US7865594B1 (en) * 2008-09-29 2011-01-04 Amazon Technologies, Inc. Managing resources consolidation configurations
US8117306B1 (en) * 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
US20100138437A1 (en) * 2008-12-03 2010-06-03 Deepak Seetharam Nadig User tracking for browser activities
US8432404B2 (en) 2008-12-15 2013-04-30 Leonovus Usa Inc. Media action script acceleration method
US20100169455A1 (en) 2008-12-29 2010-07-01 Robert Stetson Gorham Embedded Persistent Message Management
KR20120010248A (en) * 2009-03-30 2012-02-02 노키아 코포레이션 Methods and systems for processing document object models (dom) to process video content
CA2700030A1 (en) * 2009-04-16 2010-10-16 Accenture Global Services Gmbh Touchpoint customization system
CN101876897A (en) * 2009-04-30 2010-11-03 国际商业机器公司 System and method used for processing Widget on Web browser
JP2011003182A (en) * 2009-05-19 2011-01-06 Studio Ousia Inc Keyword display method and system thereof
US20110029899A1 (en) 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US20110066676A1 (en) * 2009-09-14 2011-03-17 Vadim Kleyzit Method and system for reducing web page download time
US20110087966A1 (en) 2009-10-13 2011-04-14 Yaniv Leviathan Internet customization system
US8706661B2 (en) * 2009-11-10 2014-04-22 Yahoo! Inc. System and method for generating an image sprite
US8719797B2 (en) * 2010-05-18 2014-05-06 Blackberry Limited System and method for debugging dynamically generated code of an application
US20120030224A1 (en) * 2010-07-29 2012-02-02 Activepath Ltd. Enabling active content in messaging using automatic data replacement
US9053296B2 (en) * 2010-08-28 2015-06-09 Software Analysis And Forensic Engineering Corporation Detecting plagiarism in computer markup language files

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248831A1 (en) * 2008-03-27 2009-10-01 Scott Sean M Dynamic image composition

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9104475B2 (en) 2011-04-07 2015-08-11 Qualcomm Innovation Center, Inc. Methods and apparatus for managing operations of a web browser by predicting time period of subsequent script execution activity
US20120272132A1 (en) * 2011-04-21 2012-10-25 Qualcomm Innovation Center, Inc. Methods and apparatus for improved browsing performance by precompilation of high-priority javascripts in a webpage and delaying the removal of corresponding compiled code
US8880991B2 (en) * 2011-04-21 2014-11-04 Qualcomm Innovation Center, Inc. Methods and apparatus for improved browsing performance by precompilation of high-priority JavaScripts in a webpage and delaying the removal of corresponding compiled code
US10270887B2 (en) * 2012-01-03 2019-04-23 Airbus Operations Gmbh Server system, aircraft or spacecraft and method
US9971747B2 (en) 2012-08-09 2018-05-15 Sweetlabs, Inc. Systems and methods for alert management
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US8799771B2 (en) * 2012-08-28 2014-08-05 Sweetlabs Systems and methods for hosted applications
US20140068419A1 (en) * 2012-08-28 2014-03-06 Sweetlabs, Inc. Systems and methods for hosted applications
US8775925B2 (en) * 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9792265B2 (en) 2012-08-28 2017-10-17 Sweetlabs, Inc. Systems and methods for hosted applications
US8806333B2 (en) 2012-10-15 2014-08-12 Sweetlabs, Inc. Systems and methods for integrated application platforms
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
US8793573B2 (en) * 2012-10-29 2014-07-29 Dropbox, Inc. Continuous content item view enhanced through smart loading
US9881101B2 (en) * 2012-11-16 2018-01-30 International Business Machines Corporation Dynamic file retrieving for web page loading
US20140143649A1 (en) * 2012-11-16 2014-05-22 International Business Machines Corporation Dynamic File Retrieving for Web Page Loading
CN103312803A (en) * 2013-06-17 2013-09-18 杭州华三通信技术有限公司 Method and device for optimizing Web access experience
CN103390050A (en) * 2013-07-24 2013-11-13 北京小米科技有限责任公司 Webpage prefetching method and device, and terminal equipment
US20150082149A1 (en) * 2013-09-16 2015-03-19 Adobe Systems Incorporated Hierarchical Image Management for Web Content
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10084878B2 (en) 2013-12-31 2018-09-25 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US9871849B2 (en) * 2014-05-20 2018-01-16 Citrix Systems, Inc. Systems and methods for just-in-time state sharing
US20150341421A1 (en) * 2014-05-20 2015-11-26 Citrix Systems, Inc. Systems and methods for just-in-time state sharing
US20160373544A1 (en) * 2015-06-17 2016-12-22 Fastly, Inc. Expedited sub-resource loading
CN104991942A (en) * 2015-07-10 2015-10-21 沈文策 Web front end performance optimization method

Also Published As

Publication number Publication date
US20120226972A1 (en) 2012-09-06
US20120079057A1 (en) 2012-03-29
US8250457B2 (en) 2012-08-21
US8346885B2 (en) 2013-01-01
US20130219007A1 (en) 2013-08-22
US20120226766A1 (en) 2012-09-06
US8321533B2 (en) 2012-11-27
US8856263B2 (en) 2014-10-07
US20140237066A1 (en) 2014-08-21
US8661090B2 (en) 2014-02-25
US20120089695A1 (en) 2012-04-12
US20110029899A1 (en) 2011-02-03
US8219633B2 (en) 2012-07-10
US20110029641A1 (en) 2011-02-03

Similar Documents

Publication Publication Date Title
Souders High performance web sites
US8181107B2 (en) Content adaptation
US10049168B2 (en) Systems and methods for modifying webpage data
US9075893B1 (en) Providing files with cacheable portions
AU2012297524B2 (en) Script-based video rendering
US20160283452A1 (en) Method and system for automated analysis and transformation of web pages
US9529780B2 (en) Displaying content on a mobile device
US9232021B2 (en) Dynamically rehosting web content
US20110072116A1 (en) Method and system for providing xml-based asynchronous and interactive feeds for web applications
EP1267278A1 (en) Streaming of real-time data to a browser
JP5989248B2 (en) Pre-processing of the script in the web browser
US20070143672A1 (en) Partial rendering of Web pages
US7155478B2 (en) Selectively handling data processing requests in a computer communications network
US8555200B2 (en) Representing editable attributes of embedded content
US8285808B1 (en) Loading of web resources
EP2312458B1 (en) Font subsetting
US20130145253A1 (en) Method and System of Retrieving Ajax Web Page Content
US20070256003A1 (en) Platform for the interactive contextual augmentation of the web
US9542501B2 (en) System and method for presenting content in a client/server environment
CN104185845B (en) System and method for providing a binary representation of the page
US7921353B1 (en) Method and system for providing client-server injection framework using asynchronous JavaScript and XML
AU2009260643B2 (en) Presenting advertisements based on web-page interaction
US8924943B2 (en) Browser emulator system
US20180124203A1 (en) Extensible, asynchronous, centralized analysis and optimization of server responses to client requests
US20060064467A1 (en) System and method for partial web page caching and cache versioning

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION