Well, it sounds like Promises might help you. I'm not sure yet about the blocking nature of JS for interface, but what you can do is the following:
in handler, create a container and create a Promise to fill it – that Promise has to do the calculations; chain another Promise to it, it has to grab the calculation results and build DOM. What I think I understand is that the 2 promises will be fullfilled after the whole code, meaning after other wikifying, so the user will see other content. What I'm not sure at all is whether the first Promise will or will not block user interface (I don't know well why this blocking happens at all). Once the calculation is done, the second Promise will work and that one will certainly block user interface but at least it is not the long part, if I've understood you correctly. I'm not familiar at all with Web Workers but looks like this is the second thing you should look into. Best regards, Yakov. PS very interesting what you will come up with, I wonder if those tools can be used to make saving with TiddlyFox asynchronous (or more precisely, non-blocking), but I haven't learned enough stuff yet. понедельник, 10 июля 2017 г., 23:00:54 UTC+3 пользователь whatever написал: > > Hey, Yakov. > My plugin processes parameters from internal tiddlers, no external > resources required. It's called InfoboxTablesPlugin [1] and I use it to > generate Wikipedia-style infoboxes. The current version that's publicly > available is not the latest though. The new version supports modules and > includes, and I found that when the number of available parameters gets > over a hundred, the wiki freezes until the plugin is done processing. Only > then is the tiddler displayed. These are extreme test cases, of course, but > the wiki is a bit slow even when there are fewer parameters to process. > I have seen the SO thread you posted, but I haven't had the time to play > around yet. > I have also joined the TWC group.:D > > [1] http://infoboxes.tiddlyspot.com/ > > w > > On Monday, July 10, 2017 at 9:47:08 PM UTC+2, Yakov wrote: >> >> Hello whatever, >> >> could you specify what kind of computation does this macro require? Does >> it make any requests to external sources? >> >> This may be of use: >> https://stackoverflow.com/questions/36588775/are-javascript-promise-asynchronous >> >> Best regards, >> Yakov. >> >> PS you may be interested in joining the new TiddlyWikiClassic group: >> https://groups.google.com/forum/#!forum/tiddlywikiclassic >> >> пятница, 30 июня 2017 г., 23:45:00 UTC+3 пользователь whatever написал: >>> >>> Bump. >>> >>> On Thursday, June 22, 2017 at 5:48:38 PM UTC+2, whatever wrote: >>>> >>>> Hi! >>>> I'm working on a plugin, which, depending on the amount of data it >>>> needs to process, can take up to a minute to render. In the mean time, the >>>> TWC is practically frozen. Is there any way to delay the processing of the >>>> macro until the tiddler is loaded? Or delay the processing part of the >>>> macro? Which would actually be preferable, if I could display a >>>> placeholder >>>> message that the macro is processing stuff. I've played with setTimeout, >>>> both inside and outside of the handler, but it didn't work. Any ideas? >>>> >>>> w >>>> >>> -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To post to this group, send email to tiddlywiki@googlegroups.com. Visit this group at https://groups.google.com/group/tiddlywiki. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/b0409849-2b10-469e-8dd7-f4b221fc095d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.