[jsr-314-open] JSF 2.1 ajax spec enhancements - delay
Ganesh
ganesh at j4fry.org
Tue Dec 22 14:56:45 EST 2009
Actually the cancellation doesn't need to be part of the delay option
if the queuesize option is at hand. By setting queuesize=1 the new
request would automatically cancel the old one.
So, I modify the proposal for the delay option to:
1. delay: Number of milliseconds before an ajax request is issued.
Delayed requests are only queued *after* the delay, so another
non-delayed request that is triggered after the delayed request can
be queued before the delayed request. Still, delayed requests block
queue space, so if the queue size is set to x and n requests
are queued (n<=x) then the queue size is reduced to x-n. Now,
if another request comes in and the queue and x-n requests are in
the queue then one delayed request is cancelled. If several requests
were delayed the request to cancel is chosen first-in-first-out.
> 1. delay: Number of milliseconds before an ajax request is issued.
> If another ajax request comes in before the end of the delay the
> prior one is discarded. Very important one for onkeyup events in
> autosuggest boxes to avoid bombing the server down.
>
>
> The delay attribute causes two things to happen: delay the request, and
> (potentially) cancel the request. The attribute name identifies the
> former, but does not imply the latter. I think that could be confusing.
>
> I'm also not sure that we want to tightly couple delay and cancellation.
> I want to control each individually, for example, I have a use case with
> an autoSuggest composite component where I add a delay to an Ajax call
> that hides a listbox, and I want don't want that Ajax call cancelled if
> another Ajax request comes in before the delay is over.
>
> Perhaps two attributes? "delay" and a boolean attribute that controls
> whether the request is canceled if another Ajax request comes in before
> the delay expires. A good name for the second attribute would be
> difficult to come up with.
>
> Also, there's the issue of whether we want to allow only certain types
> of Ajax requests (for example only requests fired by the same component)
> to cause the cancellation of a previous request with a delay.
More information about the jsr-314-open-mirror
mailing list