Mario, I have come to understand this, but my question is can we initiate actions on opening, or clicking the link to a Tiddler, that is specific to that tiddler? Imagine
- I append a date and Time to a subtiddler on opening the tiddler, and again on closing? - Evaluate and Set a range of variables and field values which are then available to the tiddler including actions. Perhaps I am saying what about an on-click event for opening and closing a tiddler? Surely this does not break the model? and happens on user interaction? Regards Tony On Friday, March 30, 2018 at 7:33:32 PM UTC+11, PMario wrote: > > On Friday, March 30, 2018 at 3:56:51 AM UTC+2, TonyM wrote: >> >> Folks, >> This question may be from a place of ignorance, however can you tell me >> why it appears fields can only be set from inside a triggering process such >> as a button? >> > > That's right. TiddlyWiki is event-driven, because the browser is event > driven. ... > > Eg: > - clicking any element on the browser viewport will create a > "click-event" ... > - This event starts at the element that is clicked. ... > - If the element doesn't handle it, it "bubbles up" to the parent ... and > so on. > - If there is some code, that handles the event, something happens. ... > > A very common pattern for user interaction is clicking buttons. ... > Handling button clicks is "cheap" since it only needs to happen on user > interaction. Since users are "slow" compared to modern CPUs, "button based" > interaction doesn't slow down the site performance. .... > > A second common pattern is scrolling. ... Handling the "scroll-event" to > see if something is visible is "expensive" eg: With my mouse wheel changing > it 1 raster, creates about 40 scroll events. That's a page movement of 4 > lines. ... So handling very little things is ok. .. But going through the > whole tiddler store and do something, will slow down the UI interaction. > > .... That's why there is no user facing generic widgets, that uses the > scroll event. .. They are always very specialized, to do exactly one thing > fast! > > eg: > TiddlyMap has a "hotzone" widget. > TW plugin "dynaview" handles "load, scroll, resize" events > > Since working with those events can have a bad performance impact modern > browsers created "native" observer functions > <https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API>. > .. Most modern browser can use this mechanism. ... but as usual IE does > not. ... So doing it the "compatible way" .. is not really suited for most > users. > > have fun! > mario > > > > -- 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 [email protected]. To post to this group, send email to [email protected]. 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/37e60174-9969-4e4e-a699-929cb7994b17%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
