question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Explore addition of a Virtual/Incremental DOM mechanism

See original GitHub issue

Especially needed to deal with mutable Seqs. Here is an abstract for the project:

Functional reactive programming (FRP) is a popular paradigm for developing web interfaces, but care needs to be taken in the DOM binding mechanism in order to have good performance.

State of the art DOM binding libraries such as Facebook React relie on (virtual) DOM diffing mechanism to obtain best performances. On every update, a complete view of the application is generated in memory. The framework then compute a diff between current and previous view to finally apply the minimum changes to the DOM.

Another approach, called precise binding, makes use of FRP constructs to build views while maintaining a dependency graph of Rxs, values susceptible to changes over time. This mechanism, currently using in the monadic-html library, allows changes to be propagate very precisely to the DOM. However, depending on the granularity of mutations, idiomatic monadic-html can be inefficient when re-rendering large portions of the DOM for small changes.

The goal of this project is to design a DOM diffing algorithm in Scala.js which could be combined with the existing precise binding mechanism to obtain an hybrid approach. Depending on time, the project would include benchmarks to compare this hybrid binding approach with existing solutions.

Issue Analytics

  • State:open
  • Created 7 years ago
  • Reactions:6
  • Comments:21 (10 by maintainers)

github_iconTop GitHub Comments

2reactions
Atrycommented, Mar 28, 2017

@OlivierBlanvillain That’s why the library name is Binding.scala 😄

1reaction
fdietzecommented, Mar 21, 2018

I found some relevant papers which could help building a good alternative to vdom: https://github.com/raquo/Laminar/issues/14

Read more comments on GitHub >

github_iconTop Results From Across the Web

Understanding Angular Ivy: Incremental DOM and Virtual DOM
Incremental DOM. Incremental DOM is used internally at Google, and it is defined by this key idea: Every component gets compiled into a...
Read more >
Incremental Reactive Programming · Issue #14 · raquo/Laminar ...
"Higher-order reactive programming with incremental lists. ... Explore addition of a Virtual/Incremental DOM mechanism OlivierBlanvillain/monadic-html#13.
Read more >
Incremental DOM 101: What is it and why I should care? - Auth0
In this article, we're going to explore the simple Incremental DOM API by building a library to work with it, along with a...
Read more >
Building a Simple Virtual DOM from Scratch
getElementById('app'));. Then, we will setInterval to increment the count every second and create, render and mount our app again on the page ...
Read more >
Rendering Mechanism - Vue.js
If we have two copies of virtual DOM trees, the renderer can also walk and compare the two trees, figuring out the differences,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found