I'll get around to finishing the message I drafted two weeks ago here...

I see a lot of sense in Jeremy's point about always editing the Tiddler
store directly, and I won't contest that.  My main objection to the tag /
field approach to refresh delay is that the delay isn't a descriptor of the
data being changed.  To attach that data to a persistent tiddler would mean
associating ephemeral data with long-term information.  This is
particularly unintuitive if it must be applied by hand.

To review, the basic UX problem is that it feels very bad when >250ms of
processing delay the response to each keystroke in an edit-box.  The
necessary solution involves a query within the rendering mechanism that
determines a quantity of delay to be associated with a given change.
Ideally this solution should be as similar to the existing one as possible.

Within the architectural constraints discussed so far, we could:

   1. Add associative state to data which should be delayed, such as a tag,
   or slow.refresh field (where the latter could specify a millisecond
   value).  Editor widgets would apply these tags or fields in addition to
   normal changes.
   2. Have a global state tiddler, like "$:/Delay", governing the render
   mechanism, which describes which tiddlers should be refresh-delayed at any
   given moment.  Editor widgets would modify this state tiddler if delay is
   specified.
   3. Use some datapath not involving the tiddler store to communicate a
   list of delayed changes between the editor widgets and the rendering
   mechanism.

I would tend to prefer (2) because it's simple, avoids the associativity
issue and also seems like it would be easier to "clean up" when the refresh
goes through.  In most cases there would only be one delayed item (because
only one editor widget is typically be used at a time) so it doesn't seem
like the performance hit from parsing the refresh state would be too bad
either.

...But of course this is all relatively uninformed opinion.  Interested in
your thoughts, Jeremy.

Regards,
Evan

On Tue, Oct 6, 2015 at 2:49 PM, Tobias Beer <beertob...@gmail.com> wrote:

> Hi Jeremy,
>
>
>> We’ve discussed this before: it’s why the existing mechanism defers the
>> refresh cycle, and doesn’t try to defer updating the value of the tiddler.
>>
>
> If we managed to dynamically rebind the input to a state tiddler during
> editing — rather than the tiddler which we look at — then no refresh of the
> tiddler we look at should take place (while typing). But yes, the moment
> after the delay when we refresh the current tiddler we still have the
> problem of re-focusing the widget that got destroyed at the position we
> were when editing. However (!), the state tiddler that we use to store the
> edited text could (perhaps) via some qualify identifier be used to store a
> reference to the editing widget and thus a widget could check upon creation
> if it is that widget and steal the focus back.
>
> Best wishes,
>
> — tb
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "TiddlyWiki" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/tiddlywiki/hlIvXE6jRys/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> tiddlywiki+unsubscr...@googlegroups.com.
> To post to this group, send email to tiddlywiki@googlegroups.com.
> Visit this group at http://groups.google.com/group/tiddlywiki.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tiddlywiki/c14303fa-7379-4f19-bb34-53766451dee4%40googlegroups.com
> <https://groups.google.com/d/msgid/tiddlywiki/c14303fa-7379-4f19-bb34-53766451dee4%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 http://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/CAEKipH%3DQKSueRg7y_GFxq%2BHkTsBM5s3-7pGFZ9wtAyophq0wew%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to