Web Resource Loading via Deferred Script Execution and TCP Connection Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveobject loading throughputVSAvoidconnection setup and teardown time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
Improvepage functionalityVSAvoidperceived loading time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveresource diversityVSAvoidnumber of TCP connections
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9769240B2Loading of web resources
Publication Date: 2017.09.19 CLOUDFLARE INC
  • US9769240B2 patent drawing
  • US9769240B2 patent drawing
  • US9769240B2 patent drawing

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.