DOM Caching with Delta Renderer for Partial UI Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face performance challenges due to limitations in communication speed, bandwidth, and time-consuming client-server roundtrips, leading to inefficient rendering of user interface pages and potential user experience issues like flickering screens.

Innovation Solution

Implementing document object model (DOM) caching and validation techniques, including the use of a delta renderer to apply changes directly to the DOM hierarchy and setting a dirty flag for invalid cached representations, allowing for partial updates without re-rendering the entire page and reducing client-server communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the whole UI page is re-rendered when a UI element changes, then the DOM is updated to reflect the change, but the rendering time increases and causes screen flickering

Engineering Contradiction:
ImproveDOM update accuracyVSAvoidrendering time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the UI page into multiple view components, each with its own DOM representation. When a change occurs, only the affected view's DOM is updated rather than re-rendering the entire page. This segmentation allows selective updating of specific DOM portions, reducing rendering time and eliminating full-page flicker while maintaining accurate DOM synchronization for the changed elements.

Inventive Principle:
Principle #1Segmentation

2Loss of energy

If layout, style, and content are transmitted separately to the client, then bandwidth usage is optimized, but client-server roundtrips are required for presentation updates

Engineering Contradiction:
Improvebandwidth usageVSAvoidpresentation update speed
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent transmits the complete UI page structure (layout, style, and content) to the client in advance during the initial page load. The client then maintains a local DOM representation that can be updated without requiring additional server roundtrips. This preliminary action stores necessary rendering data locally, enabling fast updates through client-side DOM manipulation while optimizing bandwidth usage.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the client is responsible for rendering screen presentations, then presentation flexibility is improved, but computation time at the client increases

Engineering Contradiction:
Improvepresentation flexibilityVSAvoidcomputation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the rendering workload by dividing the UI into multiple views, each with its own controller and DOM representation. The client renders only the necessary view portions based on user interaction and change events, rather than computing and rendering the entire UI page. This selective rendering approach maintains presentation flexibility while significantly reducing client-side computation time and resource usage.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7712025B2Document object model caching and validation
Publication Date: 2010.05.04 SAP SE
  • US7712025B2 patent drawing
  • US7712025B2 patent drawing
  • US7712025B2 patent drawing

AI summary

Methods and apparatus, including computer program products, implementing techniques for document object model caching and validation. A client identifies a change of a user interface (UI) element that references a node of the DOM hierarchy. The client determines whether the change of the UI element can be applied to the DOM hierarchy by using an update function, for example, a delta renderer. If so, the client finds in the DOM hierarchy the node that is referenced by the UI element and modifies at least one attribute related to the node according to the change by using the update function. Otherwise, the client sets a dirty flag.