WO2009027256A1 - Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives - Google Patents
Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives Download PDFInfo
- Publication number
- WO2009027256A1 WO2009027256A1 PCT/EP2008/060792 EP2008060792W WO2009027256A1 WO 2009027256 A1 WO2009027256 A1 WO 2009027256A1 EP 2008060792 W EP2008060792 W EP 2008060792W WO 2009027256 A1 WO2009027256 A1 WO 2009027256A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- archives
- web page
- browser
- archive
- objects
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000009877 rendering Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 94
- 238000012913 prioritisation Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 35
- 230000003993 interaction Effects 0.000 claims description 6
- 230000008901 benefit Effects 0.000 description 37
- 230000005540 biological transmission Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 238000007906 compression Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 15
- 230000003068 static effect Effects 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 7
- 230000006872 improvement Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Definitions
- This invention relates to web pages and more particularly relates to improving load times for web pages.
- the Internet has emerged as the default platform for business and personal application development.
- the demand to build Internet applications of increasing usability has magnified the adoption of multimedia technology to represent a better user experience.
- the result is that a normal web page usually comprises a large number of image resources, executable scripts and style definitions.
- the file size of each of these resources is small, usually less than IK.
- the network overhead requirements of the resources include protocol headers, HTTP headers, TCP headers, and IP headers.
- the average HTTP header is more than 300 bytes for a single HTTP request or response, thus in one request/response interaction, there are more than 600 to 700 bytes HTTP of headers.
- the size of objects in many web pages is already very small, so the unnecessary cost of HTTP headers is considerable.
- the present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available web page transmission techniques. Accordingly, the present invention seeks to provide an apparatus, system, and method for reducing the load time of web pages that overcome many or all of the above-discussed shortcomings in the art.
- a system of the present invention is presented to reduce the load time of a web page.
- the system may be embodied by a web browser, a web server, and an archiver.
- the system in one embodiment, includes a web browser configured to request a web page from a web server, receive one or more archives, the one or more archives comprising one or more archivable objects referenced in the web page, and render the web page using archivable objects from the one or more archives.
- the web server may be configured to receive a request for a web page from the browser, and deliver one or more archives, wherein each of the one or more archives comprises a plurality of archivable objects referenced within the web page.
- the archive may be configured to optimize a selection of archivable objects for one or more archives for the web page, and generate one or more archives from the optimized selection of archivable objects.
- the browser in the system may further be configured to send a browser parameter comprising an indicator that the browser is configured to receive one or more archives.
- the browser sends a browser parameter comprising an indicator that the browser is configured to receive a maximum number of available connections for the browser.
- the archiver is further configured to determine archive response parameters compatible with the capabilities of the browser by determining an optimal number of connections to use to deliver the one or more archives.
- the archiver in a further embodiment, generates a number of archives equal to the determined optimal number of connections to use to deliver the one or more archives.
- the archiver determines response parameters compatible with the capabilities of the browser by transmitting an archive response parameter to the browser, wherein the archive response parameter comprises an indicator that the archiver is configured to generate one or more archives and available connections for the web server and determining a maximum number of connections to use to deliver the one or more archives.
- the browser is further configured to send a browser parameter to the web server by transmitting a list of pre-cached objects present in a browser cache from a previous interaction with the web server, the pre-cached objects associated with the web page.
- the archiver determines archive response parameters compatible with the capabilities of the browser by comparing the list of pre- cached objects present in the browser cache to the archivable objects referenced in the web page, determining archivable objects absent from the list of pre-cached objects, and selecting archivable objects that are absent from the browser cache for one or more archives.
- a computer program product comprising a computer readable medium having computer usable program code programmed for reducing loading time of a web page.
- the computer program product comprises instructions for operations comprising receiving a browser parameter, wherein the browser parameter comprises an indicator that the browser is configured to receive one or more archives and available connections for a browser.
- the computer program product may further comprise instructions for operations for determining a number of connections to use to deliver one or more archives and optimizing a selection of archivable objects for one or more archives for a web page.
- the computer program product includes instructions for generating a number of archives equal to the number of connections to use to deliver one or more archives, the one or more archives comprising the optimized selection of archivable objects.
- the computer program product includes operations for delivering the one or more archives, wherein each of the one or more archives comprises a plurality of archivable objects referenced within the web page.
- optimizing a selection of archivable objects further comprises selecting archivable objects for inclusion in one or more archives to be generated by the archiver, the content of the archives comprising one or more archivable objects from the web page according to an object prioritization.
- Optimizing a selection of archivable objects in one embodiment of the computer program product, further comprises scanning a document object model (DOM) tree indicating the structure of the web page to determine the objects referenced within the web page.
- optimizing a selection of archivable objects further comprises assigning a priority to the archivable objects according to one or more prioritization criteria.
- the prioritization criteria may comprise a number of descendent objects of the object in the DOM tree.
- the prioritization criteria may comprise a hierarchical level of the object in a document object master (DOM) tree.
- selecting archivable objects for inclusion in one or more archives comprises selecting an archivable object for inclusion in response to a determination that a size of the object is less than a threshold size. In another embodiment, selecting archivable objects for inclusion in one or more archives comprises selecting an object for inclusion in response to a determination that the archivable object is absent from a list of pre-cached archivable objects present in a browser cache from a previous interaction with the web server.
- generating a number of archives further comprises sorting the archivable objects in the one or more archives according to priority, such that higher priority archivable objects are closer to a beginning of the archive than lower priority archivable objects.
- Generating a number of archives may comprise sorting the selected archivable objects according to a priority, creating a bin for each archive, and adding archivable objects to each bin according to the sorted order in response to a total size of the objects in the bin remaining less than a target size.
- generating a number of archives further comprises compressing the one or more archives.
- a method of the present invention is also presented for deploying computing infrastructure comprising integrating computer-readable code into a computing system, wherein the code in combination with the computing system is capable of requesting a web page from a web server, wherein requesting a web page from a web server comprises sending a browser parameter comprising an indicator to the web server, the indicator indicating that a browser is capable of receiving an archive.
- the code in combination with the computer system is further capable of receiving one or more archives from the web server, the one or more archives each comprising a plurality of archivable objects referenced by the web page.
- the code in combination with the computer system is capable of rendering the web page using the plurality of archivable objects from the one or more archives.
- the code in combination with the computer system is capable of receiving an archive response parameter from the web server, the archive response parameter comprising an indication that the web server is capable of delivering an archive.
- the code in combination with the computer system in one embodiment, is further capable of determining a number of connections available for use by the browser to receive the web page.
- the code in combination with the computer system is capable of sending a browser parameter comprising a connections indicator, the connections indicator indicating the number of connections available for use by the browser to receive portions of the web page.
- the method may further include establishing connections with the web server according to an archive response parameter from the web server and the number of connections available for use by the browser.
- the method includes transmitting a list of archivable objects retained by the browser in a cache from a previous interaction with the web server.
- the method may further include extracting archivable objects from the one or more archives.
- the rendering the web page further comprises storing the archivable objects in a cache. In another embodiment rendering the web page further comprises displaying an archivable object from an archive on a display device. In a further embodiment, rendering the web page further comprises decompressing a compressed archive.
- a method for reducing the load time of a web page is also provided.
- the method in the disclosed embodiments substantially includes the steps necessary to carry out the functions presented above with respect to the operation of the described apparatus and system.
- the method includes determining a number of connections available for use by a browser to receive a web page.
- the method also may include requesting a web page from a web server. Requesting a web page may comprise sending a browser parameter comprising an indicator indicating that the browser is capable of receiving an archive and an indicator indicating the number of connections available for use by the browser to receive portions of the web page.
- the method in one embodiment includes receiving an archive response parameter from the web server, the archive response parameter comprising an indicator indicating that the web server is capable of delivering an archive.
- the method may further include establishing one or more connections with the web server according to the archive response parameter from the web server and the browser parameter.
- the method includes receiving one or more archives from the web server, the one or more archives each comprising a plurality of archivable objects associated with the web page.
- the method may further include rendering the web page using the plurality of archivable objects from the one or more archives.
- a computer program product comprising a computer readable medium having computer usable program code programmed for reducing loading time of a web page.
- the operations of the computer program product include determining a number of archives to generate and selecting archivable objects for inclusion in one or more archives to be generated by the archiver, the selected archivable objects comprising one or more archivable objects associated with the web page according to an object prioritization wherein an archivable object is selected in response to a determination that the archivable object has a size below a threshold value.
- the computer program product includes operations for optimizing the selected archivable objects for one or more archives for a web page.
- the computer program product may also include operations for generating a number of archives equal to the determined number of archives, the archives comprising the optimized selection of archivable objects.
- Figure 1 is a schematic block diagram illustrating one embodiment of a system for improving the download time of a web page in accordance with the present invention
- Figure 2 is a schematic block diagram illustrating one embodiment of an archiver according to the present invention.
- Figure 3 is a schematic block diagram illustrating one embodiment of a selection module in accordance with the present invention.
- Figure 4 is a schematic block diagram illustrating one embodiment of a document object model (DOM) tree and ordered archivable objects in accordance with the present invention
- Figure 5 is a schematic block diagram illustrating one embodiment of an archive generator module in accordance with the present invention
- Figure 6 is a schematic block diagram illustrating one embodiment of an archive enabled browser in accordance with the present invention
- Figure 7 is a schematic block diagram illustrating one embodiment of web server in accordance with the present invention.
- Figure 8 is a schematic flow chart diagram illustrating one embodiment of a method for improving the download time of a web page in accordance with the present invention
- Figure 9 is a schematic flow chart diagram illustrating one embodiment of a method for improving the download time of a web page in a web browser in accordance with the present invention.
- Figure 10 is a schematic flow chart diagram illustrating one embodiment of a method for improving the download time of a web page in a web server in accordance with the present invention.
- modules may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components.
- a module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like.
- Modules may also be implemented in software for execution by various types of processors that communicate with different forms of memory.
- An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
- a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices.
- operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
- Reference to a signal bearing medium may take any form capable of generating a signal, causing a signal to be generated, or causing execution of a program of machine-readable instructions on a digital processing apparatus.
- a signal bearing medium may be embodied by a transmission line, a compact disk, digital- video disk, a magnetic tape, a Bernoulli drive, a magnetic disk, a punch card, flash memory, integrated circuits, or other digital processing apparatus memory device.
- Figure 1 depicts one embodiment of a system 100 for improving the download time of a web page.
- the system 100 may include a web host 102 with a web server application 104, an archiver 106, and a data store 108.
- the system 100 may further include a network 110 and a web client 112 with a central processing unit (CPU) 114, memory 116, and an archive enabled browser 118.
- the system 100 generates web pages readable by an archive enabled browser 118 with archives associated with the web pages for improved download time.
- CPU central processing unit
- the web host 102 includes hardware and software components for providing web pages to a web client 112.
- the web host 102 may include a web server application 104, an archiver 106, and a data store 108.
- the web host 102 may be accessible over a network 110.
- the web host 102 includes a web server application 104.
- the web server application 104 comprises software configured to deliver web pages over a network.
- the web server application 104 may be configured to deliver a web page that complies with accepted standards, such as hypertext markup language (HTML) files.
- standards compliant web pages include extensible hypertext markup language (XHTML), hypertext preprocessor (PHP), worldwide web consortium (W3C), and the like.
- Examples of web server applications include Apache HTTP Server, Microsoft® Internet Information Server®, IBM® HTTP Server, and the like.
- the web server application 104 may be further configured to deliver archives associated with web pages.
- these archives comprise objects needed to render the web page. Archives are described in more detail in relation to the archiver 106 below and later in this document.
- the archiver 106 generates web pages optimized for improved downloading times.
- the archiver 106 may generate one or more archives from objects referenced in the web page.
- the archives each consist of a plurality of objects referenced in the web page.
- the term "archive" as used herein means a selection of a plurality of data objects packed into a single file in a sorted or unsorted fashion for a single transmission.
- transmitting each object separately involves a separate header for each object. Since each of the one or more archives include multiple objects, and the archive may be transmitted with a single header in place of the headers for each of the objects in the archive, the total size of required headers is reduced.
- the archive may include multiple headers for each object, but these headers are simplified to reduce the total header size.
- the web server application 104 may then deliver the single archive in place of each of the individual objects referenced in the web page. Since each object in the archive only requires a simple header or even no longer requires an individual header, and there is no separate wait time associated with each individual object, the overall download time for the web page is reduced.
- the web pages generated by the archiver 106 are capable of being rendered by an archive enabled browser 118.
- the archive enabled browser 118 is capable of receiving an archive associated with a web page and rendering the web page using the objects unpackaged from the archive.
- the generated web pages may be in a particular format that requires an archive enabled browser 118 for rendering.
- the generated web pages may comprise HTML files and one or more associated archives.
- the archive enabled browser 118 may process the HTML files and the one or more associated archives to render the web pages.
- the archive enabled browser 118 processes tags in the HTML files of the web pages and headers in the one or more archives to determine the proper location for objects in the archives.
- One example of how the archive enabled browser 118 handles the archives is described below in relation to Figure 6.
- the archiver 106 may generate a web page optimized for use with an archive of objects referenced in the web page (hereinafter "archive optimized web page") from a static web page.
- Static web pages are web pages with content that does not change in response to parameters associated with the web page.
- the archiver 106 may generate one or more archives using objects associated with the static web page.
- the archiver 106 may generate an archive optimized web page for a static web page in response to a request for the web page by the web client 112.
- the archiver 106 may generate an archive optimized web page for a static web page asynchronous Iy with a request for the web page by the web client 112. In another embodiment, the archiver 106 may generate a batch of archive optimized web pages for a batch of static web pages. The archiver 106 may generate one or more archives for the archive optimized web page. The generated archive optimized web page and the one or more archives for the archive optimized web page may be stored for access by the web host 102. A request for a static web page may result in the delivery of a generated archive optimized web page and archive that were both generated prior to receiving the request for the web page. In this embodiment, the archiver 106 may generate archive optimized web pages and archives while the web host 102 is not under a heavy load.
- the archiver 106 may generate archive optimized web pages and archives for a dynamic web page.
- a dynamic web page is a web page that is created in response to a request for a web page. Prior to the request, the dynamic web page may not exist.
- the archiver 106 generates an archive optimized web page and an archive dynamically in response to a request for the dynamic web page by a web client 112.
- a web client 112 may request a web page from the web host 102 that includes data from the data store 108 and is created in response to the request.
- the archiver 106 may receive data from the data store 108 and generate an archive optimized web page and an archive for the web page.
- the generated web page and archive may then be delivered by the web server application 104 to the web client 112.
- the archiver 106 generates archives that include all of the files required by the archive enabled browser 118 to render the web page.
- the archiver 106 may generate one or more archives that include all of the required content for a requested web page, and deliver the one or more archives to the archive enabled browser 118 for rendering.
- a data store 108 may be included in the web host 102. Data in the data store 108 may comprise complete web pages, data used to generate web pages, predefined archives, and objects used to render web pages.
- the data store 108 may comprise one or more hard disk drives containing data files.
- the data store 108 comprises a database.
- the data store 108 comprises a flash memory device.
- the network 110 provides a medium for the transmission of data between the web host 102 and the web client 112.
- the network 110 may transmit requests from the web client 112 to the web host 102.
- the network 110 may also transmit generated web pages and archives from the web host 102 to the web client 112.
- the network 110 may be any network capable of transmitting such data, such as the Internet.
- Other examples of a network 110 include an intranet, a direct network connection, and the like.
- the web client 112 in one embodiment, renders the generated web page for display.
- the web client 112 may include a CPU 114, memory 116, and an archive enabled browser 118.
- the web client 112 renders the generated web page using objects from an archive, in one embodiment.
- the archive enabled browser 118 is a web browser capable of processing an archive containing objects associated with an archive optimized web page.
- objects include image files such as a jpeg, gif, bmp, or the like, script files, or other objects used in a web page.
- the archive enabled browser 118 requests a web page from the web host 102.
- the web page may include references to one or more objects capable of being included in an archive, referred to herein as archivable objects.
- the web host 102 may deliver a generated web page (i.e. archive optimized web page) that references an archive to the archive enabled browser 118.
- the archive enabled browser 118 may execute software instructions incorporated into the archive enabled browser 118 (either original object code or added plug-ins or extensions) to retrieve the archive from the web host 102.
- Additional executable code incorporated into the archive enabled browser 118 is executed by the archive enabled browser 118 to unpackage the archivable objects from the archive and render the web page using the archivable objects.
- FIG. 2 illustrates one embodiment of an archiver 106.
- the archiver 106 may include an archive cost/benefit module 202, a selection module 204, and an archive generator module 206.
- the archiver 106 generates archives and associated web pages with improved downloading time.
- the archive cost/benefit module 202 determines if a computational cost associated with generating an archive and an associated archive optimized web page outweighs a benefit of improved download time for the web page. If the projected improvement in downloading time outweighs the overhead cost associated with generating the web page and archive, the archive cost/benefit module 202 may indicate that the archiver 106 should generate the archive optimized web page and an associated archive.
- the archive cost/benefit module 202 may employ a heuristic function to determine if the archive optimized web page and archive should be generated. For example, the archive cost/benefit module 202 may project a computational cost for generating the archive optimized web page and archive. If the computational cost is below a threshold value, the cost/benefit module 202 may indicate that the archiver 106 should generate the archive optimized web page and archive. In an alternate embodiment, the archive cost/benefit module 202 may also project a value associated with an improvement in download time associated with the archive and archive optimized web page. The cost/benefit module 202 may indicate that the archive optimized web page and archive should be generated in response to a ratio between the projected computational cost and the projected benefit being below a threshold value.
- the archive cost/benefit module 202 may derive a cost value based on a model with inputs comprising the number of archives to be generated, the number of archivable objects in the web page and the size of the web page.
- the archive cost/benefit module 202 may further derive a benefit value that estimates the reduction in time in delivering the web page using an archive relative to the time required to deliver an unmodified web page.
- the benefit value may be modeled using inputs comprising the number of archives to be generated, the number of archivable objects in the web page and the size of the web page.
- the archive cost/benefit module 202 generates a ratio between the cost value and the benefit value.
- a threshold value for the ratio may be arbitrarily chosen or pre- calculated based on other tests and models, the threshold value determining whether an archive optimized web page should be generated or not generated.
- the determination made by the archive cost/benefit module 202 may be different for an archive optimized web page that must be generated in response to a request for the page than for an archive optimized web page that is generated asynchronously.
- the archive cost/benefit module 202 may evaluate a static web page during a time of light load on the web host 102 and determine that an archive should be generated for the web page. After generating the archive, requests for the web page will result in the delivery of the asynchronously generated archive and the archive optimized web page. If the request for the web page is received before the archive is generated, however, the archive cost/benefit module 202 may reach a different conclusion, since the archive would need to be generated while the requesting browser waits for the archive. The same archive optimized web page may be determined by the archive cost/benefit module 202 to be too costly to generate when the archive optimized web page must be generated in response to a request for the web page, or when the load on the web host 102 is relatively high.
- the selection module 204 selects objects referenced by the archive optimized web page for inclusion in an archive.
- the selection module 204 selects objects based on selection criteria that determine whether an object should be in an archive rather than being delivered to the web client 112 separately.
- One example of a selection criterion is the size of the object, where an object with a smaller size is more likely to benefit from inclusion in an archive than an object with a larger size.
- the selection module 204 may select objects with a size below a threshold value.
- the threshold value may be three kilobytes, and the selection module may select objects with a size below three kilobytes.
- the archive generator module 206 generates one or more archives associated with the archive optimized web page.
- the archive generator module 206 uses objects selected by the selection module 204 to form the one or more archives.
- the one or more archives are delivered to the web client 112 in response to requests made by the web client 112 after executing the executable code of the archive enabled browser 118.
- FIG 3 illustrates one embodiment of a selection module 204.
- the selection module 204 may include a document object model (DOM) tree scanner module 302, a selection criteria module 304, an archive size module 306, an object prioritization module 308, and an object prioritization criteria module 310.
- the selection module 204 selects archivable objects from the web page for inclusion in one or more archives.
- DOM document object model
- the DOM tree scanner module 302 scans a DOM tree of a web page.
- the DOM tree defines the logical structure of the web page. Objects in the web page are arranged in a hierarchical structure in the DOM tree, with some objects depending from other objects, and all objects depending from a root object.
- the selection module 204 determines information about the objects in the web page such as what objects are referenced by the web page, the types of objects referenced in the web page, the size of the objects, and the relative dependencies between objects referenced in the web page.
- the selection criteria module 304 includes one or more selection criteria that determine whether an object is an archivable object.
- An archivable object is an object that should be (or has been determined to be) included in an archive. Objects referenced in the web page are judged according to the selection criteria to determine if they are archivable objects. Examples of selection criteria include a maximum size of the object and the type of the object.
- a selection criteria module 304 may include a criterion that archivable objects should have a size less than three kilobytes. Another criterion may be that an archivable object must be an image file.
- the archive size module 306 determines a target size for an archive.
- the archive size module 306 may determine the target size for the archive by determining a size of the web page.
- the size of the web page in one embodiment, comprises a sum of the sizes of the objects referenced in the web page.
- the size of the web page comprises a size of an HTML file for the web page added to a sum of the sizes of the objects referenced in the web page.
- the archive size module 306 sets the target size for the archive to a fraction of the size of the web page.
- the target size is one quarter of the size of the web page.
- Most conventional web browsers are configured to open up to four simultaneous connections to a web server.
- the target size is a percentage of the overall size of the objects referenced in the web page.
- the target size is a portion of the size of the web page, and the portion may comprise a ratio, a percentage, or another form of measure such that the generated archive is less than the size of the web page
- the object prioritization module 308 determines a priority for archivable objects referenced in the web page.
- the priority of objects may be determined by object prioritization criteria from the object prioritization criteria module 210.
- the priority determined by the object prioritization module 308 determines an order for archivable objects in an archive.
- Archivable objects with a higher priority are ordered before archivable objects with a lower priority.
- an archivable object defining a table in a web page may be assigned a higher priority than an archivable object consisting of an image in the table. Since the archivable object defining the table has a higher priority than the image, the archivable object defining the table is ordered before the image.
- the object prioritization criteria module 310 includes one or more object prioritization criteria that determine the priority of an object referenced in an archive optimized web page.
- the object prioritization criteria relate to characteristics of the archivable objects referenced in the archive optimized web page. For example, it may improve the rendering of the page to order objects higher in the DOM tree before objects that are lower in the DOM tree, as an object removed from the archive cannot be rendered before an object upon which it depends is available. Therefore, in one embodiment, a hierarchical level in the DOM tree of an archivable object is an object prioritization criterion.
- an archivable object that has a relatively high hierarchical level meaning that it is relatively fewer steps from the root of the DOM tree
- an object prioritization criterion may comprise a number of descendent objects in the DOM tree. For example an archivable object with a relatively large number of descendent objects may be assigned a higher priority than an archivable object with a relatively small number of descendent objects. The result of this criterion is an improvement in the likelihood of a prerequisite archivable object being available before a descendent archivable object is removed from the archive.
- the size of archivable objects is an object prioritization criterion. For example, if the total size of archivable objects exceeds an archive size determined by the archive size module 306, smaller archivable objects may be assigned a higher priority than relatively large archivable objects. As a result, the smaller archivable objects will be included in the archive to improve the performance of the archive. The relatively large archivable objects may not be placed in the archive due to the size constraint.
- Figure 4 illustrates one embodiment of a DOM tree 402 for an archive optimized web page and ordered archivable objects 404 for an archive.
- the DOM tree 402 may include a plurality of objects 412-422 arranged in hierarchical levels 406-410.
- the DOM tree 402 is a representation of relationships between objects 412-422 in an archive optimized web page.
- Objects in level 2 408 are dependent on objects in level 1 406, objects in level 3 410 are dependent on a prerequisite object in level 2 408, and so on.
- object 2 416 in level 3 410 is dependent on object 1 414 in level 2 408.
- an object in a lower level cannot be properly rendered in the archive optimized web page until the prerequisite object is rendered in the archive optimized web page.
- object 1 414 may be a table in the archive optimized web page
- object 2 416 may represent an image in the table of object 1 414. Since the image of object 2 416 is defined to be in the table of object 1 414, it cannot be rendered in the archive optimized web page before the table is rendered.
- archivable objects selected by the selection module 204 may be prioritized and ordered by the object prioritization module 308 as ordered archivable objects 404.
- the object selection module 204 may determine that object 1 414, object 3 418, object 4 420, and object 5 meet a set of selection criteria and designate these objects as archivable objects.
- the object selection module 204 may also determine that object 2 416 does not meet a set of selection criteria, for example, object 2 416 may have a size greater than a threshold value.
- the selection module 204 may further order the archivable objects into ordered archivable objects 404.
- the object prioritization module 308 may order the archivable objects according to object prioritization criteria. For example, object 1 414 and object 4 420 may be assigned a high priority due to their relatively high position in the DOM tree 402 at level 2 408. Object 1 414 may be assigned a higher priority than Object 4 420 as object 1 414 has more dependent objects than object 4 420. As a result, Object 1 414 may be ordered before object 4 420 in the ordered archivable objects 404.
- Figure 5 illustrates one embodiment of an archive generator module 206.
- the archive generator module 206 may include an object ordering module 502, an archive compressor module 504 and a compression heuristic module 506.
- the archive generator module 206 generates archives files using archivable objects selected by the selection module 204.
- the object ordering module 502 in one embodiment, orders archivable objects according to the priority of the archivable objects.
- the priority of the archivable objects may be determined by the object prioritization module 308 according to object prioritization criteria.
- the object ordering module 502 orders the archivable objects such that relatively high priority archivable objects are ordered before relatively low priority archivable objects in the generated archive.
- the archive compressor module 504 compresses the generated archive.
- the file compressor module 504 may compress the generated archive using any data compression method. Examples of data compression methods that may be used to compress the archive include gzip, zip, LZX, arithmetic coding, and the like.
- the archive generator module 206 may rely on a compression heuristic module 506 to determine if a generated archive should be compressed. Under certain circumstances, compressing the archive may prove inefficient. For example, many image files, such as jpeg files, are pre-compressed. If the archivable objects that make up the archive include a high proportion of pre-compressed image files, processing the archive with an additional compressor will result in a computational cost, but a relatively modest improvement in the size of the archive.
- Another example of a circumstance in which a generated archive may not be compressed occurs during archive generation of dynamic web pages.
- archives are generated for dynamic archive optimized web pages, the server load may be high on the web host 102.
- the computational cost and time required to compress the archive while the requesting web client 112 waits may outweigh the reduction in size of the archive.
- the compression heuristic module 506 determines when an archive should be compressed. For example the compression heuristic module 506 may determine a proportion of images in the archive. When the proportion of images in the archive is below a threshold level, the compression heuristic module 506 may determine that the archive should be compressed.
- Figure 6 illustrates one embodiment of an archive enabled browser 118.
- the archive enabled browser 118 may include a browser parameter transmission module 602, an archive response receiver module 604, a history transmission module 606, a connection module 608, an archive retrieval module 610, an archive unpackaging module 612, and a page rendering module 614.
- the archive enabled browser 118 retrieves and renders an archive optimized web page that uses archives.
- the archive optimized web page retrieved and rendered by the archive enabled browser 118 may be the first instance of the web page.
- the archive optimized web page may be generated dynamically in response to a request from a web client 112.
- the archive optimized web page retrieved and rendered by the archive enabled browser 118 may be generated in response to a design of the web page by a web designer.
- the archiver 106 may be linked to or integrated with web design software.
- web page retrieved and rendered by the archive enabled browser 118 may be an existing web page that does not include references to an archive.
- the existing web page is rewritten to include references to an archive.
- the archive generator module 206 may access a static web page and generate an archive using archivable objects and the associated archive optimized web page.
- the archive generator module 206 may operate on a dynamically generated web page that does not include references to an archive.
- the dynamically generated web page is rewritten to create an archive optimized web page that can be rendered using archivable objects from an archive.
- the archive optimized web page may include HTML tags linked to archivable objects in an archive. For example, if the archive name is "html. archive” and an archivable object name in the archive is "obj 1", a uniform resource identifier (URI) in the HTML tag may be "html.archive/objl”.
- URI uniform resource identifier
- the browser parameter transmission module 602 transmits one or more browser parameters relating to the capabilities of the archive enabled browser to a web server 104.
- the one or more browser parameters may include indicators.
- the browser parameter transmission module 602 sends a browser parameter comprising an indicator that indicates that the archive enabled browser 118 is capable of receiving and/or rendering an archive optimized web page that includes an archive.
- the browser parameter transmission module 602 may send an indicator explicitly indicating that the archive enabled browser 118 is capable of rendering pages using an archive.
- the browser parameter transmission module 602 may send a version number of the archive enabled browser 118.
- the web server 104 may compare this version number against a list of browsers known to be capable of rendering archive optimized web pages that include archives, and determine the capabilities of the archive enabled browser as a result of that comparison.
- the browser parameter transmission module 602 sends a browser parameter comprising an indicator that indicates a number of connections available for use by the archive enabled browser 118.
- the archive enabled browser 118 has a number of connections available dictated by a host computer and/or operating system.
- the archive enabled browser 118 may be allowed a maximum of four connections in one example.
- the browser parameter transmission module 602 may send a browser parameter to the web server 104 indicating that the archive enabled browser 118 has four connections available.
- the archive response receiver module 604 receives an archive response parameter from the web server 104.
- the archive response parameter in one embodiment, comprises an indicator.
- the indicator may indicate that the web server 104 is capable of delivering an archive.
- the web server 104 sends the archive response parameter in response to a determination that the archive enabled browser 118 is capable of receiving an archive.
- the web server 104 sends the archive response parameter regardless of the type of web browser that requests a web page.
- the history transmission module 606 transmits a history of the archive enabled web browser 118 to the web server 104.
- the history comprises a list of objects retained by the archive enabled browser from previous transactions with the web server 104 and/or other web servers. Objects retained may be stored in volatile storage caches such as memory or in nonvolatile storage caches such as hard disk drives.
- the history transmission module 606 transmits the history in response to the receipt of an archive response parameter that indicates that the web server 104 is capable of delivering archives.
- the web server 104 uses the history to generate archives and archive optimized web pages that use the cached version of objects for a requested web page.
- the history may indicate that several objects in the requested archive optimized web page are already present in the cache of the archive enabled browser 118.
- the archiver 106 may generate an archive that does not include the cached objects.
- the web server 104 may send an archive optimized web page that directs the archive enabled browser 118 to render the archive optimized web page using objects in the cache of the archive enabled browser 118.
- connection module 608 in one embodiment, opens one or more connections between the archive enabled browser 118 and the web server 104. In one embodiment, the connection module 608 opens a number of connections equal to the number of connections available to the archive enabled browser 118. In another embodiment, the connection module 608 opens a number of connections equal to a number of connections available for use by the web server 104. In another embodiment, the connection module 608 opens a number of connections negotiated between the web server 104 and the archive enabled browser 118.
- the requested archive optimized web page may include a number of archives lower than the number of connections available to web server 104 and the archive enabled browser 118.
- the connection module 608 may establish a number of connections equal to the number of archives.
- the archive retrieval module 610 retrieves an archive through one available connection.
- the archive retrieval module 610 may cause a web client 112 to retrieve an archive for the archive optimized web page from the web host 102. Once retrieved, web client 112 store the archive on a client device in temporary or persistent memory.
- the archive unpackaging module 612 unpackages an archive.
- the archive unpackaging module 612 may include instructions to cause the web client 112 to locate and unpackage the archive retrieved. Unpackaging the archive, in one embodiment, comprises extracting archivable objects from the archive.
- the archive unpackaging module 612 stores the archivable objects in temporary or persistent memory.
- the archivable objects may be extracted in order, meaning that archivable objects are extracted in the order determined by the object prioritization module 308 or in the order determined by the object ordering module 502.
- the archive has been compressed by the archive generator module 206.
- the archive unpackaging module 612 may decompress the archive or objects within the archive.
- the page rendering module 614 renders the archive optimized web page using archivable objects extracted from archives.
- the page rendering module 614 may include instructions to cause the archive enabled browser 118 to render the archive optimized web page using archivable objects extracted from archives.
- FIG. 7 illustrates one embodiment of a web server 104 in accordance with the present invention.
- the web server 104 may include a browser parameter receiver module 702, an archive response transmission module 704, a history receiver module 706, a connection module 708, and an archive delivery module 710.
- the web server 104 receives a request for a web page and delivers the web page using one or more archives.
- the browser parameter receiver module 702 receives a browser parameter from an archive enabled browser 118 that indicates the capabilities of the archive enabled browser 118.
- the nature of the browser parameter received by the browser parameter module 702 is substantially the same as the browser parameter described in relation to the browser parameter transmission module 602 disclosed in relation to Figure 6.
- the receipt of a browser parameter may indicate that the archive enabled browser 118 is capable of receiving an archive and/or indicate the number of connections available to the archive enabled browser 118.
- the archive response transmission module 704 transmits an archive response to the archive enabled browser 118 in one embodiment.
- the archive response parameter may comprise an indicator indicating that the web server 104 is capable of delivering archives.
- the archive response parameter may comprise an indicator indicating a number of connections available to the web server 104.
- the web server 104 sends the archive response parameter in response to a determination that the archive enabled browser 118 is capable of receiving archives.
- the web server 104 sends the archive response parameter regardless of the type of web browser that requests a web page.
- the history is substantially as described above in relation to Figure 6.
- the web server 104 may use the history to determine what objects must be transmitted to the archive enabled browser 118, and what objects may be referenced from the cache of the archive enabled browser 118.
- the archiver 106 may use the history to generate one or archives that exclude one or more objects in the history (or cache), thus reducing the total size of the objects transmitted to the archive enabled browser 118 and reducing load time for the web page.
- connection module 708 opens one or more connections between the archive enabled browser 118 and the web server 104. In one embodiment, the connection module 708 opens a number of connections equal to the number of connections available to the archive enabled browser 118. In another embodiment, the connection module 708 opens a number of connections equal to a number of connections available for use by the web server 104. In another embodiment, the connection module 708 opens a number of connections negotiated between the web server 104 and the archive enabled browser 118. For example, the requested web page may include a number of archives lower than the number of connections available to web server 104 and the archive enabled browser 118. In this example the connection module 708 may establish a number of connections equal to the number of archives.
- the archive delivery module 710 sends an archive through one available connection.
- the archive delivery module 710 may cause the web server 104 to send an archive for the archive optimized web page to the archive enabled browser 118.
- Figure 8 is a flow chart diagram showing the various steps in a method 800 for improving the download time of a web page.
- the method 800 is, in certain embodiments, a method used in the system and apparatus of Figures 1-7, and will be discussed with reference to those figures. Nevertheless, the method 800 may also be conducted independently thereof and is not intended to be limited specifically to the embodiments discussed above with respect to those figures.
- the method 800 calculates 802 a computational cost associated with generating an archive for the web page.
- the computational cost is a measure of the resources required to generate an archive and an archive optimized web page configured to access archivable objects in the archive.
- the calculated 802 computational cost may be a ratio between a measure of the resources required to produce the archive and archive optimized web page and a measure of the improvement in the download time of the web page realized by using an archive.
- the calculated 802 computational cost may vary in response to parameters such as the load on the web host 102, whether the web page has already been requested by a web client 112, and whether the web page is a static web page.
- the archive cost/benefit module 202 determines 804 if generating an archive for the web page is worthwhile in one embodiment.
- the determination 804 may be based on the calculated 802 computational cost and a threshold value. For example, the archive cost/benefit module 202 may determine that generating an archive is worthwhile when a ratio of computational cost to performance benefit is below a threshold value.
- the method 800 selects 806 a normal web page if the determination 804 is negative.
- a normal web page is a web page that does not include references to an archive.
- the method 800 may generate a normal web page.
- the method 800 may select 806 an existing normal web page.
- the selection module 204 scans 808 a DOM tree representation of the web page if the archive cost/benefit module 202 determines 804 that an archive should be generated.
- the DOM tree is scanned 808 to determine what objects are in the web page and other parameters about the objects, such as size of the objects, hierarchical level of the objects, and dependencies between the objects.
- the selection module 204 selects 810 objects as archivable objects. Archivable objects are selected 810 in response to meeting object selection criteria, such as size or type of the object. For example, the selection module 204 may select 810 an object as an archivable object in response to the size of the object being less than three kilobytes.
- the object prioritization module 308 prioritizes 812 archivable objects selected 810 by the selection module 204.
- Prioritization 812 of the archivable objects is based on object prioritization criteria, such as relative depth in the DOM tree, number of dependent objects, and the like. For example, one object may have a higher priority than another object because it has more dependent objects in the DOM tree.
- the archive generator module 206 then generates 814 archives using the archivable objects.
- the archivable objects in the generated 814 archive may be ordered in the generated archive according to the priority of the objects assigned during prioritization 812. As a result, an archivable object with a higher priority may appear in the archive before an object with a lower priority.
- the compression heuristic module 506 may determine 815 if compression is worthwhile for the archive in one embodiment.
- the type of files in the archive, the number of files in the archive, the size of the archive, and other factors may influence the determination 815 as described in relation to Figure 5.
- the method 800 selects 818 the uncompressed archive in response to a determination 815 that compression is not worthwhile for the archive.
- the archive compressor module 504 compresses 816 the generated archive in response to a determination 815 that compression is worthwhile for the archive.
- Compression 816 of the archive may use any compression method, such as gzip, zip, LZX, arithmetic coding, or the like.
- Compression 814 of the archive may occur in response to a determination that the file will benefit from compression. For example, the method 800 may determine that the archivable objects include a high proportion of already compressed image files, and therefore determine that the archive should not be compressed.
- Figure 9 is a flow chart diagram showing the various steps in a method 900 for improving the download time of a web page in an archive enabled web browser 118.
- the method 900 is, in certain embodiments, a method used in the system and apparatus of Figures 1-7, and will be discussed with reference to those figures. Nevertheless, the method 900 may also be conducted independently thereof and is not intended to be limited specifically to the embodiments discussed above with respect to those figures.
- the method 900 determines 902 a number of connections available to the archive enabled browser 118.
- the number of connections available may be dependent on the archive enabled browser 118, the web client 112, the network 110, or other considerations.
- the archive enabled browser 118 requests 904 a web page.
- Requesting 904 a web page comprises sending a request to a web host 102 over a network 110.
- the archive enabled browser 118 may send an HTTP request over a TCP/IP network to request 904 a web page.
- the browser parameter transmission module 602 sends 906 a browser parameter to the web server 104.
- the browser parameter sent 906 to the web server 104 may comprise one or more indicators indicating that the archive enabled browser 118 is capable of receiving an archive, the number of connections available to the archive enabled browser 118, or other indicators.
- the archive response receiver module 604 receives 908 an archive response parameter.
- the archive response parameter may indicate that the web server 104 is capable of delivering an archive.
- the archive response parameter may further indicate the number of connections available to the web server 104, or other indicators.
- the archive enabled web browser 118 determines 910 if archives are supported. In one embodiment, the determination 910 is in response to a received 908 archive response parameter. If the archive enabled web browser 118 determines 910 that archives are not supported, the method 900 uses 912 a normal web page without archives. If the archive enabled web browser 118 determines 910 that archives are supported, the method 900 continues.
- the connection module 608 establishes 914 one or more connections with the web server 104.
- the number of connections established 914 is in response to browser parameters, archive response parameters, or other considerations as described above in relation to Figures 6 and 7.
- the connections established 914 are used for the transmission of archives, web pages, history information, parameters, or other data.
- the history transmission module 606 may transmit 916 history information of the archive enabled browser 118 to the web server 104.
- the history transmitted 916 comprises a list of objects retained by the archive enabled browser from previous transactions with the web server 104 and/or other web servers.
- the history transmission module 606 transmits 916 the history in response to the receipt of an archive response parameter that indicates that the web server 104 is capable of delivering archives.
- the archive retrieval module 610 receives 918 an archive from the web server 104.
- the received archive may comprise one or more archivable objects as described above.
- the archive file is received 918 in response to a request 904 for a web page.
- the archive unpackaging module 612 may decompress 919 the archive in response to the delivered archive being compressed in one embodiment. Decompressing 919 the archive may include decompressing the archive using the compression method used by the compressor module 504.
- the page rendering module 614 renders 920 the web page using archivable objects extracted from the received 918 archives.
- the page rendering module 614 may include software instructions to cause the archive enabled browser 118 to render 920 the archive optimized web page using archivable objects extracted from archives.
- Rendering 920 the archive optimized web page may comprise displaying the archivable objects on a display in a position defined for the archive optimized web page.
- Figure 10 is a flow chart diagram showing the various steps in a method 1000 for improving the download time of a web page in a web server 104.
- the method 1000 is, in certain embodiments, a method used in the system and apparatus of Figures 1-7, and will be discussed with reference to those figures. Nevertheless, the method 1000 may also be conducted independently thereof and is not intended to be limited specifically to the embodiments discussed above with respect to those figures.
- the method 1000 includes receiving 1002 a browser parameter by a browser parameter receiver module 702.
- the browser parameter may be received 1002 from an archive enabled web browser 118 and may include one or more indicators that indicate capabilities of the browser.
- the indicators may indicate the ability of the archive enabled web browser 118 to render an archive optimized web page using an archive.
- the indicators may also indicate the number of connections available to the archive enabled web browser 118.
- the web server 104 may determine 1004 a number of connections to use for delivering the archive optimized web page, including one or more archives. In one embodiment, the web server 104 may determine 1004 the number of connections in response to one or more of a browser parameter indicating the number of connections available to the archive enabled web browser 118, a number of connections available to the web server 104, performance considerations, or the like.
- the archiver 106 may optimize 1006 a selection of archivable objects. In one embodiment, the archiver 106 optimizes 1006 the selection in response to one or more of the size of the archivable objects, the relative height of the archivable objects in a DOM tree, dependencies between archivable objects, the number of archives being generated, or other considerations. In one embodiment, the archivable objects are optimized 1006 as described in relation to Figures 2-5.
- the archiver 106 may generate 1008 one or more archives.
- the one or more archives may be generated 1008 using the optimized 1006 selection of archivable objects.
- the number of archives generated may be related to the number of connections determined 1004 previously. In another embodiment, the number of archives generated 1008 may impact the determination 1004 of the number of connections to use.
- the archive delivery module 710 in one embodiment of the method 1000, delivers 1010 the one or more archives to the archive enabled web browser 118.
- the archive delivery module 710 delivers 1010 the one or more archives using a network 110, such as a TCP/IP network.
- a network 110 such as a TCP/IP network.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010522311A JP5187980B2 (en) | 2007-08-29 | 2008-08-18 | Apparatus, system, and method for cooperating between a browser and a server to package small objects in one or more archives |
CN200880104106A CN101785005A (en) | 2007-08-29 | 2008-08-18 | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/847,287 US7937478B2 (en) | 2007-08-29 | 2007-08-29 | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
US11/847,287 | 2007-08-29 | ||
US11/847,299 | 2007-08-29 | ||
US11/847,299 US20090063622A1 (en) | 2007-08-29 | 2007-08-29 | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009027256A1 true WO2009027256A1 (en) | 2009-03-05 |
Family
ID=39938295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2008/060792 WO2009027256A1 (en) | 2007-08-29 | 2008-08-18 | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP5187980B2 (en) |
KR (1) | KR20100066454A (en) |
CN (1) | CN101785005A (en) |
TW (1) | TW200928980A (en) |
WO (1) | WO2009027256A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214237A (en) * | 2011-06-30 | 2011-10-12 | 北京新媒传信科技有限公司 | Method and device for webpage making |
CN102215251A (en) * | 2010-04-09 | 2011-10-12 | 微软公司 | Page load performance analysis |
US9069871B2 (en) | 2010-09-27 | 2015-06-30 | International Business Machines Corporation | System, method, and program for generating web page |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582392B2 (en) | 2010-09-14 | 2017-02-28 | Microsoft Technology Licensing, Llc | Add-on performance advisor |
CN102163206B (en) * | 2011-01-30 | 2013-05-01 | 青岛海信传媒网络技术有限公司 | Method and system for loading pages |
JP5896712B2 (en) * | 2011-12-08 | 2016-03-30 | キヤノン株式会社 | Information processing apparatus, information processing method, program, and information processing system |
TWI630551B (en) * | 2013-05-31 | 2018-07-21 | 博世尼克資訊股份有限公司 | Method of downloading program |
JP6294475B2 (en) | 2013-06-20 | 2018-03-14 | 博世尼克資訊股▲ふん▼有限公司 | How to download the program |
JP5740026B1 (en) * | 2014-03-25 | 2015-06-24 | 株式会社 ディー・エヌ・エー | Server and method for displaying display screen |
CN104978325B (en) * | 2014-04-03 | 2019-06-25 | 腾讯科技(深圳)有限公司 | A kind of web page processing method, device and user terminal |
TWI634483B (en) * | 2017-09-14 | 2018-09-01 | 和碩聯合科技股份有限公司 | File combination and recovery methods and electronic devices using the same |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065800A1 (en) * | 2000-11-30 | 2002-05-30 | Morlitz David M. | HTTP archive file |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11242640A (en) * | 1998-02-25 | 1999-09-07 | Kdd Corp | File transfer method |
JP2000020415A (en) * | 1998-07-07 | 2000-01-21 | Hitachi Ltd | WWW server proxy, WWW browser proxy and WWW system |
JP2004206172A (en) * | 2002-12-20 | 2004-07-22 | Sanyo Electric Co Ltd | Method and apparatus for controlling communication |
JP4241920B2 (en) * | 2004-03-22 | 2009-03-18 | ベーステクノロジー株式会社 | Data communication method |
JP2006133846A (en) * | 2004-11-02 | 2006-05-25 | Hitachi Ltd | Data transfer method and proxy server |
-
2008
- 2008-08-18 CN CN200880104106A patent/CN101785005A/en active Pending
- 2008-08-18 JP JP2010522311A patent/JP5187980B2/en not_active Expired - Fee Related
- 2008-08-18 KR KR1020107004123A patent/KR20100066454A/en not_active Application Discontinuation
- 2008-08-18 WO PCT/EP2008/060792 patent/WO2009027256A1/en active Application Filing
- 2008-08-26 TW TW097132563A patent/TW200928980A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020065800A1 (en) * | 2000-11-30 | 2002-05-30 | Morlitz David M. | HTTP archive file |
Non-Patent Citations (1)
Title |
---|
WILLS C E ET AL: "Using bundles for Web content delivery", COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V., AMSTERDAM, NL, vol. 42, no. 6, 21 August 2003 (2003-08-21), pages 797 - 817, XP004438950, ISSN: 1389-1286 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215251A (en) * | 2010-04-09 | 2011-10-12 | 微软公司 | Page load performance analysis |
CN102215251B (en) * | 2010-04-09 | 2016-02-10 | 微软技术许可有限责任公司 | For analyzing the method and system of page load time |
US9069871B2 (en) | 2010-09-27 | 2015-06-30 | International Business Machines Corporation | System, method, and program for generating web page |
CN102214237A (en) * | 2011-06-30 | 2011-10-12 | 北京新媒传信科技有限公司 | Method and device for webpage making |
Also Published As
Publication number | Publication date |
---|---|
JP2010537337A (en) | 2010-12-02 |
KR20100066454A (en) | 2010-06-17 |
CN101785005A (en) | 2010-07-21 |
TW200928980A (en) | 2009-07-01 |
JP5187980B2 (en) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8117315B2 (en) | Apparatus, system, and method for archiving small objects to improve the loading time of a web page | |
WO2009027256A1 (en) | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives | |
US7937478B2 (en) | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives | |
US20090063622A1 (en) | Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives | |
US6199107B1 (en) | Partial file caching and read range resume system and method | |
US7945698B2 (en) | System and method for partial data compression and data transfer | |
US6510469B1 (en) | Method and apparatus for providing accelerated content delivery over a network | |
US6578073B1 (en) | Accelerated content delivery over a network using reduced size objects | |
KR100368348B1 (en) | Internet mail delivery agent with automatic caching of file attachments | |
CN101821728A (en) | batch system | |
KR101035302B1 (en) | How to compress and transfer files in the cloud system and cloud system | |
CN1356644A (en) | Method for providing resource from network server to client computer | |
US20120331377A1 (en) | Content Rendering on a Computer | |
US20030034905A1 (en) | System and method for encoding and decoding data files | |
US20130339472A1 (en) | Methods and systems for notifying a server with cache information and for serving resources based on it | |
KR20010080251A (en) | Method and apparatus for automatically optimizing execution of a computer program | |
JP2004518218A (en) | Method and apparatus for dynamically optimizing multimedia content for network distribution | |
CN101662503A (en) | Information transmission method, proxy server and service system in network | |
WO2001039043A2 (en) | Content-specific filename systems | |
US8271582B2 (en) | Relay device, relay method, and computer program product | |
WO2009026242A2 (en) | System and method for delivery of electronic data | |
US8108441B2 (en) | Efficient creation, storage, and provision of web-viewable documents | |
US6772199B1 (en) | Method and system for enhanced cache efficiency utilizing selective replacement exemption | |
US7516199B2 (en) | Storage device managing system, method and program | |
US20040249793A1 (en) | Efficient document storage and retrieval for content servers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200880104106.9 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08787282 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20107004123 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2010522311 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 08787282 Country of ref document: EP Kind code of ref document: A1 |