Incremental Computing for Reactive UI Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications face latency issues due to network communications, leading to inefficiencies in updating user interfaces, as current methods require significant developer resources to manage complex data updates and minimize data transmission.

Innovation Solution

Implementing incremental computing and reactive programming paradigms to determine which reactive values in a hierarchy need to be recomputed based on changes, ensuring only affected elements are updated, and using a dependency graph to propagate changes efficiently through the user interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If web applications communicate with servers over a network, then functionality can be accessed from any device, but latency increases and responsiveness decreases

Engineering Contradiction:
ImproveaccessibilityVSAvoidlatency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by establishing reactive value hierarchies and dependency graphs before actual data changes occur. These structures pre-map the relationships between data elements and UI components, enabling rapid incremental updates without waiting for full page reloads or comprehensive server communications.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If entire HTML documents are reloaded to update data, then data consistency is maintained, but data transmission volume increases and update time increases

Engineering Contradiction:
Improvedata consistencyVSAvoiddata transmission volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system segments the HTML document into discrete reactive values and UI elements based on the reactive value hierarchy. When data changes, only the specific segments that need updating are transmitted and rendered, rather than reloading the entire document. This maintains data consistency for affected elements while minimizing unnecessary data transmission.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts only the necessary changed data and affected UI elements from the overall system state. By identifying minimal sets of reactive values that changed and extracting only those specific updates, the system reduces data transmission volume while ensuring data consistency for the extracted portions.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If customized software is used to define data queries and updates, then specific update logic can be implemented, but developer resources and maintenance effort increase

Engineering Contradiction:
Improveupdate logic flexibilityVSAvoidsoftware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements self-service by automatically generating and maintaining the reactive value hierarchy and dependency graphs. When data structures change, the system autonomously updates its internal models and determines which reactive values need recomputation, eliminating the need for extensive customized software development and maintenance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The reactive programming framework provides universal functionality that handles various data query and update scenarios through a unified approach. The same reactive value hierarchy mechanism manages different types of data relationships and update logic, reducing the need for specialized customized software for each specific case.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Reliability

If reactive values are recomputed whenever inputs change, then data freshness is maintained, but computational resources are wasted on unused values

Engineering Contradiction:
Improvedata freshnessVSAvoidcomputational resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system dynamically adjusts the recomputation process based on actual usage patterns and dependency relationships. By maintaining the reactive value hierarchy and dependency graphs, the system can dynamically determine which reactive values need recomputation based on current data changes and usage context, avoiding unnecessary computations for unused values while ensuring freshness of actively used data.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system applies partial action by recomputing only the subset of reactive values that are actually needed based on input changes and dependency relationships. Rather than recomputing all reactive values, the system identifies and recomputes only the minimal necessary portion, reducing computational resource waste while maintaining data freshness for used values.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8627199B1Incremental computing of changes to computer user interfaces
Publication Date: 2014.01.07 ASANA INC
  • US8627199B1 patent drawing
  • US8627199B1 patent drawing
  • US8627199B1 patent drawing

AI summary

A method is provided to update information in a computer system comprising providing a reactive value hierarchy structure in a non-transitory computer readable storage device; in response to a change in a reactive value corresponding to a node in the hierarchy, marking nodes within the hierarchy that share as dirty a path with a node corresponding to a changed reactive value; traversing down through the hierarchy to a level where a reactive value is located that is either dirty or clean; if the reactive value is dirty, traversing back up to a dependent node in the hierarchy and compute a new reactive value and repeating the traversing down step; if the reactive value is clean, traversing back up to a dependent node and repeating the traversing down step; and producing at least one side-effect in the computer system in response to a compute of a new reactive value.