Disable refresh for tid - or - Must whole page be re-calculated when merely saving one tiddler?

49 views
Skip to first unread message

Mat

unread,
Jun 8, 2019, 6:56:42 AM6/8/19
to TiddlyWikiDev
Admittedly, this question is too advanced for me but I'd still like to hear an answer even if only "Nope, impossible to change" or "Possible"

I suspect one of the biggest culprits for slowness is nested lists with complex filters. I.e pretty much the very point with TW. For an example, I think we even had to snip the native Recent list to prevent this but lags can easily get a lot more severe.

Naturally there is a lag when such a tiddler is opened/activated but the freeze also happens when such a tiddler is already open and you change someting something else on the page like create a new tiddler, even an empty one. Is this perhaps because such filters typically evaluate all tiddlers to see if they fulfill the filter criteria, including that new empty one? It's as if one has to redo the whole house every time a kitchen chair is moved.

So I ask; must necessarily the whole page be re-calculated even when one is not necessarily dealing with the complex tiddler in question? Specifically, could such complex tiddler(s) be isolated from the re-calculation of the page? Maybe a tiddler-local flag ("do not refresh this tiddler")?

Maybe the node version does things differently?

Thank you

<:-)

Jeremy Ruston

unread,
Jun 8, 2019, 7:35:55 AM6/8/19
to TiddlyWikiDev
Hi Mat

The refresh mechanism is sufficiently complex that there is great scope to optimise and improve it. We don’t currently use the technique you describe of suppressing refreshes for a portion of the tree, but it’s something that would be fairly trivial to explore: it’s just a matter of introducing a parent widget that selectively passes on refreshes to its children. The obvious problem with it is that it would lead to different parts of the tree being out of step with one another.

The dirtiest optimisation technique we currently use is to suppress updates to draft tiddlers until there is a pause in typing.

Best wishes

Jeremy

--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To post to this group, send email to tiddly...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywikidev.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/026d9d76-a80e-44e0-9870-4671bd857fc4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

TonyM

unread,
Jun 8, 2019, 8:14:02 AM6/8/19
to TiddlyWikiDev
Mat

Whilst I think to keep a tiddler from refreshing is important for iframes within tiddlers. I suspect there is a work around for your situation Mat.

I will think about it and see.

I think there is a way to abstract the result of a list into a somewhat static tiddler and display that instead. A tiddler that will not be refreshed.

Regards
Tony

Mat

unread,
Jun 8, 2019, 9:43:01 AM6/8/19
to TiddlyWikiDev
@Jeremy, thanks for reply! 

BTW, what happens when tiddlers are folded? Is their content somehow removed from the tree? Should that be sufficient to solve the issue? (I'm trying to test it but my computer is currently messing with me so I can't draw conclusions.)


@Tony

I think there is a way to abstract the result of a list into a somewhat static tiddler and display that instead. A tiddler that will not be refreshed.


That sounds more like a "construct" than a "temporary state". I lack the knowledge to theorize implications properly but I'm thinking it should be more economical to just "block the refresh" rather than to actually do or construct something to display alternative things...?

<:-)

Jeremy Ruston

unread,
Jun 8, 2019, 10:44:42 AM6/8/19
to TiddlyWikiDev
Hi Mat

@Jeremy, thanks for reply! 

BTW, what happens when tiddlers are folded? Is their content somehow removed from the tree? Should that be sufficient to solve the issue? (I'm trying to test it but my computer is currently messing with me so I can't draw conclusions.)

Folded tiddlers are hidden via a reveal widget that entirely removes the content from the widget tree.

Best wishes

Jeremy.



@Tony

I think there is a way to abstract the result of a list into a somewhat static tiddler and display that instead. A tiddler that will not be refreshed.


That sounds more like a "construct" than a "temporary state". I lack the knowledge to theorize implications properly but I'm thinking it should be more economical to just "block the refresh" rather than to actually do or construct something to display alternative things...?

<:-)




--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To post to this group, send email to tiddly...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywikidev.

Mat

unread,
Jun 8, 2019, 10:55:57 AM6/8/19
to TiddlyWikiDev
Folded tiddlers are hidden via a reveal widget that entirely removes the content from the widget tree.

Ah, excellent! Thank you.

<:-) 

TonyM

unread,
Jun 8, 2019, 7:55:36 PM6/8/19
to TiddlyWikiDev
Mat

I am glad folding is enough for you.

A grander solution may be possible and the reason I have speculated on a solution is because of the reply from Jeremy.

Have you tried prerelease of late with the indexing added (hidden in core) because it improves performance.

Regards
Tony

TonyM

unread,
Jun 9, 2019, 12:17:04 AM6/9/19
to TiddlyWikiDev
Inspired by your request, for complex tiddlers.

What I propose
  • A view template Button that takes a static snapshot of the current tiddler (just html)
  • The same button folds the tiddler
  • The same button displays the static snapshot as it it were the content of the current tiddler
  • The button changes to show click to revert to live tiddler.
  • Open a static view in a new window (and close the active tiddler would also be helpful)
This would be a nice way of making any tiddler not demand refresh, especially large complex ones that diminish performance.
  • The complex tiddlers will still refresh if transcluded elsewhere etc...

Ideally if I ever convince one of our gurus to create an action on open currentTiddler I would automate the tiddler to generate a new snapshot whenever the tiddler is opened, such that it will always be current when opened and selectably refreshed by viewing the live tiddler.

Regards
Tony
Reply all
Reply to author
Forward
0 new messages