Spreadsheet Dependency Management via Event Listeners
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Dashboards face compatibility issues with web technologies, particularly in managing dependencies between cells in spreadsheet files and components, leading to difficulties in identifying and updating dependencies, especially when cell values change.
Innovation Solution
A system that analyzes spreadsheet and dashboard structure files to determine dependencies, registers event listeners, and updates dependent components asynchronously, using a DOM and adjacency matrix to recursively create components, allowing for efficient event propagation and data fetching from multiple sources in a JSON format.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional dashboard rendering methods are used, then compatibility with web technologies is poor, but converting to web-based rendering improves compatibility while creating difficulties in managing cell dependencies
Solution Approach 1:
The patent introduces an intermediate processing layer that converts spreadsheet files into a web-compatible format while preserving dependency information. This intermediary conversion process enables web-based rendering without directly exposing the complexity of dependency management to the client-side JavaScript environment.
Solution Approach 2:
The patent replaces traditional server-side rendering mechanisms with client-side JavaScript-based rendering. This substitution allows dashboards to run in modern web browsers using HTML5 and JavaScript, improving compatibility while managing dependencies through event-driven architecture in the browser environment.
2Reliability
If synchronous updating of dependent components is used, then dependency tracking is straightforward, but rendering performance deteriorates due to blocking execution flow
Solution Approach 1:
The patent implements dynamic dependency management where the system adapts its updating behavior based on event triggers. Instead of rigid synchronous or asynchronous approaches, the system dynamically updates components when data changes occur, maintaining accurate dependency tracking while avoiding unnecessary blocking of execution flow.
Solution Approach 2:
The patent uses event-driven periodic updates where dependent components are refreshed only when specific events occur (data changes). This periodic action based on events rather than continuous synchronous checking maintains reliability of dependency tracking while significantly improving rendering performance by eliminating blocking operations.
3Measurement precision
If all data is fetched in separate requests, then data freshness is maintained, but network overhead increases and fetching efficiency decreases
Solution Approach 1:
The patent merges multiple data fetching operations into single batch requests where possible. By combining requests for multiple data sources into unified network calls, the system maintains data freshness through coordinated updates while significantly reducing network overhead and improving fetching efficiency.
Solution Approach 2:
The patent performs preliminary data fetching and caching during dashboard initialization and conversion. By pre-fetching data that is likely to be needed and caching it appropriately, the system reduces the need for frequent separate requests, maintaining data freshness through selective updates while minimizing network overhead.
Data Source
AI summary
A spreadsheet file and a dashboard structure file characterizing a dashboard are received. These files are then analyzed to determine dependencies. Subsequently, for each determined dependency, an event listener is registered for a dependent component that corresponds to the determined dependency. These event listeners are notified of an event from an event source when a corresponding dependee is changed. Dependent components are then updated using data from a corresponding dependee in response to event notifications so that each updated dependent component can be rendered within the dashboard. Related apparatus, systems, techniques and articles are also described.


