Web Resource Loading via Deferred Script Execution and TCP Connection Merging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Web page loading is slow due to the time-consuming process of setting up and tearing down separate TCP connections for each non-HTML object, and client-side scripts can block page rendering, especially when multiple objects from different domains are involved.
Innovation Solution
Deferred loading of objects with external sources until the HTML has rendered, and packaging multiple object queries into a single TCP request to a proxy server to reduce the number of connections and improve loading efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If separate TCP connections are established for each non-HTML object, then object loading can be performed independently, but the time required to set up and tear down connections increases significantly
Solution Approach 1:
The patent merges multiple separate TCP connections into a single shared TCP connection for loading multiple non-HTML objects. The web browser establishes one persistent TCP connection to the server and reuses it for loading HTML, CSS, JavaScript, images and other objects, eliminating the need to repeatedly set up and tear down connections for each object type.
2Reliability
If client-side scripts are loaded and executed before HTML rendering, then the page can be fully functional, but the rendering process is blocked and perceived loading time increases
Solution Approach 1:
The patent applies preliminary action by loading and executing critical client-side scripts before HTML rendering begins, while deferring non-critical scripts. The browser identifies and prioritizes essential scripts that are needed for basic page functionality and renders them first, allowing the HTML to be displayed to the user before all scripts are loaded and executed.
Solution Approach 2:
The patent segments client-side scripts into critical and non-critical categories. Critical scripts that are necessary for basic page functionality are loaded and executed before HTML rendering, while non-critical scripts are deferred to load after the page is displayed. This segmentation allows the browser to maintain page functionality while reducing perceived loading time.
3Adaptability or versatility
If multiple objects from multiple domains are loaded, then the page can include diverse resources, but the number of TCP connections required increases
Solution Approach 1:
The patent merges multiple TCP connections to different domains into a single shared connection when possible. The web browser consolidates network requests for objects from multiple domains through a unified connection management system, reducing the total number of simultaneous TCP connections while maintaining the ability to load diverse resources from different sources.
Data Source
AI summary
A method and apparatus for improving loading of web resources. A server receives a request for a Hypertext Markup Language (HTML) document requested by a client network application. The server retrieves the requested document. The server automatically modifies objects referenced in the HTML document that have an external source such that loading of those objects by the client network application will be deferred. The server inserts a client-side script loader or a reference to the client-side script loader into the HTML document. The client-side script loader is configured to, when executed by the client network application, attempt to load the objects that have been deferred. The server transmits the modified HTML document to the client network application.


