Server-Side DOM Mirroring for JavaScript-Free Web Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current web applications require JavaScript and browser-specific frameworks for development, limiting developers who are not familiar with these technologies and preventing server-side execution of web applications.

Innovation Solution

Implementing a server-side DOM that mirrors a client-side DOM, allowing server-side code to interact with and modify the client-side DOM, enabling web applications to be developed using server-side languages like C# and eliminating the need for JavaScript or browser-specific frameworks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If web applications are executed client-side using JavaScript and browser frameworks, then dynamic web application functionality is achieved, but developer accessibility is limited to those familiar with JavaScript and browser-specific frameworks

Engineering Contradiction:
Improvedeveloper accessibilityVSAvoiddependency on JavaScript and browser frameworks
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a server-side copy of the client-side DOM structure, allowing server code to manipulate DOM elements without requiring client-side JavaScript execution. The server-side DOM manager maintains a mirrored representation of the client DOM tree, enabling server-side application code to perform operations like element selection, modification, and manipulation that traditionally required JavaScript.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

Instead of having server code generate HTML and rely on client-side JavaScript to manipulate the DOM, this patent inverts the approach by allowing server-side code to directly manipulate a server-side DOM representation. The manipulation results are then synchronized back to the client, reversing the traditional client-side JavaScript paradigm.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If web applications are built with server-side code execution, then application maintenance and responsiveness are improved, but the ability to directly manipulate client-side DOM is lost

Engineering Contradiction:
Improveapplication maintenance and responsivenessVSAvoidDOM manipulation capability
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The server-side DOM manager acts as an intermediary between server-side application code and the client-side DOM. It receives manipulation requests from server code, executes them on the server-side DOM representation, and synchronizes the results to the client. This mediator enables server code to indirectly manipulate the client DOM without requiring direct client-side execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements a feedback loop where the server-side DOM manager monitors changes to the server-side DOM representation and automatically synchronizes these changes to the client-side DOM. This feedback mechanism ensures that server-side manipulations are reflected on the client without requiring explicit client-side code to process each change.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If JavaScript frameworks are used for dynamic web applications, then client-side interactivity is achieved, but the development barrier increases for developers without JavaScript expertise

Engineering Contradiction:
Improveweb application developmentVSAvoidlanguage independence
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The server-side DOM manager provides universal DOM manipulation capabilities that work with server-side languages like C#, Java, or Python, rather than being limited to JavaScript. The same DOM manipulation API and methods available in browser JavaScript are made accessible to server-side code through the DOM manager, enabling language-independent web application development.

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

Solution Approach 2:

The patent separates DOM management into distinct server-side and client-side components. The server-side DOM manager handles DOM manipulation logic on the server, while the client-side DOM representation serves as a simplified mirror for rendering. This segmentation allows server-side code to handle complex logic using familiar server languages while the client receives pre-processed results.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10419568B2Manipulation of browser DOM on server
Publication Date: 2019.09.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10419568B2 patent drawing
  • US10419568B2 patent drawing
  • US10419568B2 patent drawing

AI summary

Methods, systems, apparatuses, and computer program products are provided for enabling server-side web application execution by maintaining a server-side DOM that is mirrored at the client-side. A client-side DOM is rendered in a browser at a client computing device and corresponds to a server-side DOM at a server. An event indication associated with the client-side DOM is received from a client-side event manager at the client computing device. The received event indication is provided to server-side application code defining a web application to which the client-side DOM corresponds. An instruction is generated by the server-side application code based on the event indication. The server-side DOM is modified in response to the instruction. An indication of the modification is provided to a client-side DOM manager at the client computing device to apply to the client-side DOM, thereby synchronizing the client-side DOM to the server-side DOM.