Synchronizing DOM Element References in Page Editors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Visual-based editors face challenges in synchronizing references between the visual editor and underlying code for web development projects, leading to difficulties in matching elements created or modified in the visual view with those in the underlying code structure, which can result in unintended edits and lost changes due to the time-consuming process of element-by-element tree comparison.

Innovation Solution

A page editor application is invoked to edit mark-up language documents, providing an interface that allows access to both a document object model (DOM) structure view and a 'live' rendered view, where temporary identifiers are assigned to affected elements and used to synchronize identifiers between the DOM structure view and the rendered view, ensuring correct referencing and minimizing processing interruptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If element-by-element tree comparison is performed to synchronize references between visual view and underlying code structure, then reference synchronization accuracy is improved, but editing process continuity deteriorates due to significant processing time interruptions

Engineering Contradiction:
Improvereference synchronization accuracyVSAvoidediting process continuity
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by assigning temporary identifiers to elements in the visual view before the actual editing operation completes. These temporary identifiers are prepared in advance and used to establish initial reference mappings, enabling faster subsequent synchronization without requiring full tree comparisons during the editing flow.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Temporary identifiers serve as intermediary elements between the visual view and the underlying DOM structure. Instead of directly comparing and matching full element trees, the system uses these temporary identifiers as mediators to establish references, significantly reducing the computational complexity and time required for synchronization while maintaining accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If traditional text-based editors are used for web page development, then programming knowledge precision is improved, but ease of operation deteriorates due to complicated and tedious text-based editing

Engineering Contradiction:
Improveprogramming knowledge precisionVSAvoidediting operation simplicity
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The editing interface is segmented into distinct visual regions (visual view, DOM structure view, properties panel) that allow users to work with different aspects of web page development simultaneously. This segmentation enables users to leverage visual editing for layout tasks while maintaining access to underlying code structures when needed, combining the advantages of both approaches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The page editor application provides multi-functionality by integrating both visual-based editing capabilities and text-based code editing within a single unified interface. Users can switch between visual manipulation and direct code editing as needed, making the tool universally applicable to both beginners and advanced developers without requiring separate applications.

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

3Ease of operation

If visual-based editors are used to modify underlying documents, then ease of operation is improved, but reference synchronization between visual view and code structure deteriorates leading to unintended edits and lost changes

Engineering Contradiction:
Improvevisual editing simplicityVSAvoidreference synchronization reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system implements continuous feedback mechanisms that monitor and update the synchronization status between the visual view and the underlying DOM structure. When elements are added, modified, or removed in the visual view, the system automatically detects these changes and updates the corresponding DOM references, providing real-time feedback to maintain consistency and prevent synchronization errors.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Temporary identifiers are assigned to elements in advance before visual editing operations occur. These pre-assigned identifiers are used to establish reference mappings upfront, so when visual edits are made, the system can quickly resolve which DOM elements correspond to visual elements without requiring complex real-time matching, thereby improving both speed and reliability of synchronization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10565293B2Synchronizing DOM element references
Publication Date: 2020.02.18 ADOBE INC
  • US10565293B2 patent drawing
  • US10565293B2 patent drawing
  • US10565293B2 patent drawing

AI summary

Techniques for synchronizing document object model (DOM) references between a host process and an edit process are described. In one or more implementations a page editor application is invoked to edit a mark-up language document. The page editor application may provide an editing user interface that provides access to both a DOM structure view and a “live” rendered view of the mark-up language document (e.g., a design view). In response to edits made to the mark-up language document via the user interface, elements affected by the edits are identified and temporary identifiers are assigned to the affected elements. The temporary identifiers are included when the edits are communicated to update the underlying DOM. The page editor application may employ the temporary identifiers to create new DOM identifiers for elements in relation to the DOM structure view and synchronize the identifiers between the DOM structure view and the rendered view.