- From: Erik Bruchez <erik@bruchez.org>
- Date: Tue, 23 May 2017 15:21:54 -0700
- To: "public-xformsusers@w3.org" <public-xformsusers@w3.org>
- Message-ID: <CAAc0PEWKtte_sAzbcD3EJOaOG_EnvLYvG_wu380td6m7tneGLA@mail.gmail.com>
All,
The spec says:
"If the delay is zero, or does not conform to xs:nonNegativeInteger, then
the event is dispatched immediately"
I assume that it means dispatched synchronously. This means that there is a
difference of synchronicity between:
<xf:dispatch name="foo" targetid="my-model" delay="0"/>
and:
<xf:dispatch name="foo" targetid="my-model" delay="1"/>
It would be nice to be able to add an event to the event queue immediately.
Using `delay="1"` is close but not ideal.
The obvious way of doing that would be to change the spec and say that if
`delay` is present and contains a number, the event is always added to the
queue. So you always get asynchronous dispatch with a numeric `delay`.
Now, this causes a problem if you want to have a single action which, via
an AVT, allows for both asynchronous dispatch and asynchronous dispatch. A
special value, such as `delay="none"` could possibly be used.
<xf:dispatch name="foo" targetid="my-model" delay="none"/>
Or an empty value:
<xf:dispatch name="foo" targetid="my-model" delay=""/>
Also, a case could be made that if `delay` evaluates to something which is
not a number and not a value indicating synchronous dispatch, then the
event dispatch shouldn't take place (or an error could be raised):
<xf:dispatch name="foo" targetid="my-model" delay="bar"/>
Thoughts?
-Erik
Received on Tuesday, 23 May 2017 22:22:48 UTC