Client-Side Data Compression via Web Worker Background Threading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for communicating compressed data across networks from client-side applications, such as web browsers, face challenges in efficiently compressing and transmitting tracked content and user interaction data over the Internet, especially when bandwidth is limited, leading to performance hiccups and seamlessness issues.
Innovation Solution
The system employs client-side compression techniques, including data scanning, code building, encoding, and serialization, running on a background thread to compress instrumentation data like tracked content, page view, and user interaction data, using a web worker to manage simultaneous foreground and background processes, ensuring seamless data transmission without interfering with user interface operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data compression is applied to tracked content and user interaction data, then bandwidth utilization is improved and transmission speed increases, but device complexity and processing overhead increase
Solution Approach 1:
The patent segments the compression system into distinct functional modules: a data structure generator that creates standardized data representations, a compression engine that applies compression algorithms, and a transmission module that handles network communication. This segmentation allows each component to be optimized independently and facilitates maintenance while achieving efficient data compression and transmission.
2Quantity of substance
If compression algorithms are applied to serialize and compress tracked data, then data size is reduced and bandwidth efficiency improves, but processing time and computational resources increase
Solution Approach 1:
The patent implements preliminary action by pre-defining standardized data structures for common tracking events (page views, clicks, scrolls) and pre-configuring compression parameters. This preparation work is done beforehand, allowing the compression engine to quickly process incoming data without extensive real-time analysis, thus reducing processing time while maintaining high compression ratios.
3Ease of operation
If background thread compression is implemented to compress data without blocking UI operations, then user interface responsiveness is maintained, but system resource management complexity increases
Solution Approach 1:
The patent introduces an intermediary compression manager that acts as a mediator between the user interface thread and the background compression thread. This manager handles data buffering, thread coordination, and resource allocation, allowing UI operations to proceed independently while compression occurs in the background without blocking, thus maintaining responsiveness without excessive complexity.
4Loss of information
If more tracked content and user interaction data are collected and transmitted, then analytics quality and insight depth improve, but bandwidth consumption and transmission time increase
Solution Approach 1:
The patent implements parameter changes by dynamically adjusting compression levels, data sampling rates, and transmission intervals based on network conditions, device performance, and analytics priorities. This allows the system to transmit comprehensive analytics data when bandwidth is available while reducing data volume and transmission frequency when bandwidth is constrained, thus maintaining analytics quality while adapting to bandwidth limitations.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A system can effectively compress instrumentation data related to a page view on a client-side application thread (such as a web browser thread) and communicate the compressed data over the Internet to a server (such as an analytics server). Leading up to the compression, the system can include data scanning, code building, code encoding, and code serialization. The compression can run on a background thread of the client-side application, so that it does not interfere with other processes run by the client-side application. For example, a web worker can implement the code compression described herein.