rum 2020-08-07

@roman01la Have you had any chance to look into this? https://github.com/tonsky/rum/issues/226 - I've got code waiting to be deployed, but I fear the performance regression impact across our apps is going to be rather large.

Since 0.12, the async rendering queue was removed because of all sorts of subtle bugs, so this pipeline is simpler, but has this side effect. I've worked around it now by doing a local atom to global atom debounce on all input and text area fields.

You probably need some form of debounce on every part of your app that rapid-fire updates your global atom

I had another thought, but it escaped.. xD

Oh yes. This happens because watches on atoms fire off in the swap process. If that could be setup to debounce after swap, this could mitigate the issue.. though debouncing times are quite situational, so you'd want to be able to configure for your use case

No unfortunately not, don't have time atm

sova-soars-the-sora 2020-08-21T17:09:04.000700Z

hmm why would rendering and input changes be sychronized?

sova-soars-the-sora 2020-08-21T17:10:18.001200Z

To quote from your admirable conclusion, "It seems that Rum 0.12.3 regressed in terms of asynchronous rendering, insisting on fully finishing up rendering update before processing the next key event." ... great catch and where would this occur in the rum code? (thinks to self)