Web Resource Management via Usage-Based Grouping and Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Web-based applications face network latency issues due to the large number of resource files (e.g., JAVASCRIPT and CSS files) that need to be downloaded every time a user visits a page, leading to delays in rendering information in the browser.
Innovation Solution
Instrumenting resource files to collect usage data, generating dependencies and priorities lists, and grouping files based on co-occurrence levels, allowing for caching in a local cache pool to reduce the number of files that need to be downloaded and optimizing resource loading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all resource files are downloaded every time a user visits a page, then complete web application functionality is ensured, but network latency increases and rendering speed decreases
Solution Approach 1:
The system performs preliminary actions by collecting usage data from multiple users and pre-analyzing resource file dependencies before actual page rendering. The server generates dependency lists and priority groupings in advance, so that when a user requests a page, the system can quickly determine which resource files are actually needed rather than downloading all files. This preliminary analysis resolves the contradiction by preparing optimization data beforehand, reducing both network latency and ensuring complete functionality.
Solution Approach 2:
The system implements feedback mechanisms by collecting usage data from clients about which resource files are actually accessed during web application usage. This feedback information is used to continuously refine dependency lists and priority groupings. The feedback loop allows the system to learn from actual usage patterns and optimize resource delivery accordingly, resolving the contradiction between downloading all files for reliability and reducing network latency by only downloading necessary files.
2Speed
If resource files are grouped and cached based on usage data, then network latency is reduced and rendering speed improves, but system complexity increases due to dependency analysis and dynamic grouping
Solution Approach 1:
The system segments resource files into distinct groups based on their dependency relationships and usage priorities. Instead of treating all resource files as a single unit, the system divides them into multiple categories (e.g., critical resources, optional resources, context-specific resources). This segmentation simplifies the caching strategy by allowing the system to download and cache only the necessary segments for each user session, reducing both network latency and the complexity of managing all files uniformly.
Solution Approach 2:
The system changes parameters by dynamically adjusting resource file groupings based on collected usage data. Rather than using a static caching strategy, the system modifies the grouping parameters (dependency lists, priority levels, co-occurrence patterns) based on actual usage patterns observed from multiple users. This parameter adaptation allows the system to optimize rendering speed for different user contexts while managing complexity through data-driven decisions rather than hard-coded rules.
3Measurement precision
If usage data is collected from multiple clients to generate dependency lists, then resource grouping accuracy improves, but data collection and processing overhead increases
Solution Approach 1:
The system implements universality by designing the usage data collection mechanism to serve multiple purposes simultaneously. The same data collection infrastructure is used not only for generating dependency lists but also for identifying co-occurrence patterns, determining resource priorities, and understanding user behavior patterns. This multi-functional approach improves resource grouping accuracy while minimizing additional overhead, as the data is collected once and reused for multiple optimization objectives rather than requiring separate data collection efforts for each purpose.
Data Source
AI summary
Each of a plurality of resource files can be instrumented. Thereafter, usage data of the received files is received from a plurality of clients each executing a different instance of a web application. The usage data comprises is collected by the instances of the web application when being used by a respective one of a plurality of users. A dependencies list is then generated for the resource files based on the received usage data. In addition, a priorities list is generated for the resource files using the received usage data which indicates how frequently the resource files are being used. Further, groups of resource files are generated based on co-occurrence levels of the resource files in the dependencies list and the priorities list. Later, at least a portion of the groups of resource files are transmitted to the client for caching in a local cache pool. Related apparatus, systems, techniques and articles are also described.


