Thanks @steffend, I wasn’t sure but I finally spotted the place in your code (a.k.a caught your gist
) where it is explicit that there’d be a LiveComponent per tree node. I’m now weighing up the cost (in overheads) keeping each node state in memory separately vs keeping the displayed windows of the large tree in memory as a whole vs loading it from database as needed.
I need to confirm my understanding. You have the comment:
# subsequent updates don't affect the children by default;
# those are updated on their own
and I’m not sure I understand exactly what establishes and/or affect that default behaviour. Is it that LV diffing stops walking the tree with it encounters another (or the same) LiveComponent, or is it because of something your code explicitly does or doesn’t do?
I can see how and that it would work as advertised, and once I’m sure how to control the behaviour, it definitely could also work for me. It’s not the end of my journey though, for the simple reason that once I’m in control of the size of the loaded portion of the gigantic tree I might not need to use streams for pagination and further, leaving only the update vocabulary it provides as reason to use streams. I’ll need to give this more thought.






















