Script Dependency Graph for Web Page Load Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing script file dependencies in web applications is inefficient due to manual processes and repeated issuance of XHR calls, leading to delays in loading web pages, especially when multiple script files with dependencies are involved.

Innovation Solution

A server computer analyzes script files and generates a directed graph and load level table to determine dependencies and optimal load orders, ensuring each script file is analyzed only once using node coloring, and provides this data to the client for efficient loading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual processes are used to manage script file dependencies, then flexibility and control are maintained, but time consumption and efficiency deteriorate

Engineering Contradiction:
Improvemanual controlVSAvoidtime consumption
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system automatically analyzes script files, builds dependency graphs, and determines load orders without manual intervention. The server computer autonomously processes script references, identifies dependencies, and generates optimized loading sequences, eliminating the need for manual dependency management while maintaining control through automated algorithms

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The dependency analysis and load order determination are performed in advance during server-side processing, before the client actually needs to load the scripts. By pre-computing the dependency graph and load levels during page generation, the system eliminates time-consuming runtime dependency resolution and enables efficient client-side script loading

Inventive Principle:
Principle #10Preliminary action

2Reliability

If repeated XHR calls are issued to load script dependencies, then all required modules can be retrieved, but page loading delays increase

Engineering Contradiction:
Improvemodule retrievalVSAvoidloading delays
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The server computer pre-analyzes all script file dependencies and generates a complete load order before the client requests the page. By determining the entire dependency graph and load levels in advance, the system prepares the optimal loading sequence beforehand, enabling the client to load scripts efficiently in the predetermined order without repeated probing calls

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The dependency graph and load level table act as intermediaries between the server and client, conveying the optimized load order information. Instead of the client repeatedly issuing XHR calls to discover dependencies, the server provides the complete dependency structure through these data structures, which the client then follows for efficient script loading

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If multiple script files are loaded in parallel without dependency consideration, then loading speed may improve, but functionality breaks due to incorrect execution order

Engineering Contradiction:
Improveloading speedVSAvoidfunctionality
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The script loading process is segmented into distinct load levels based on dependency depth. Scripts are divided into groups (load level 0, 1, 2, etc.) where each level can be loaded in parallel, but levels are executed sequentially. This segmentation enables parallel loading within safe boundaries while maintaining correct execution order across dependency levels

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server computer pre-determines the load levels for each script file based on the dependency graph before the client loads anything. By calculating the load level (depth from root dependencies) for each script in advance, the system provides the client with a pre-computed loading schedule that enables parallel loading at appropriate levels while guaranteeing correct execution semantics

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If all client-side functionality is included in a single script file, then dependency management is simplified, but performance and resource usage deteriorate

Engineering Contradiction:
Improvedependency managementVSAvoidperformance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system segments the monolithic script file into multiple smaller script modules, each representing a functional unit. By dividing the functionality into separate files with defined dependencies, the system reduces the initial download size and enables selective loading, while the automated dependency graph generation maintains simplicity in managing these segments

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system enables dynamic script loading where only the necessary script files are loaded based on the specific page and user needs. Instead of loading all functionality upfront in a single file, the dependency graph allows the client to load only required scripts in the optimal order, improving performance while maintaining modular architecture

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2805251B1Managing script file dependencies and load times
Publication Date: 2022.10.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2805251B1 patent drawingFigure 1
  • EP2805251B1 patent drawingFigure 2
  • EP2805251B1 patent drawingFigure 3

AI summary

Concepts and technologies are described herein for managing script file dependencies and load times. In accordance with the concepts and technologies disclosed herein, a server computer stores pages and provides the pages to a client device. The pages can reference and/or rely upon one or more script files during execution and/or rendering. The server computer can determine script file dependencies and load levels associated with the script files. The server computer can generate data such as a directed graph and/or a table that can indicate script file dependencies and script file load levels. The data can be provided to a client device or other entity for use during loading, rendering, and/or execution of the pages.