[Laszlo-dev] OpenLaszlo Event Model
André Bargull
andre.bargull at udo.edu
Sat Nov 1 08:01:34 PDT 2008
I've just implemented this "new event-system" locally, and amazon-demo
start-time was before my change by about 1350-1450ms [1], with my
changes it was dropped to 980-1050ms. And I didn't even updated anything
of the LFC to use the new, more effective methods...
[1] FF3 + FP10 (debug-player), demo compiled for swf9 non-debug, time
measured with <inittimer>
On 10/29/2008 1:14 AM, André Bargull wrote:
> I've started to reconcile with that idea and made up a some code
> snippets. IMO, there is at least one thing we definitely need to
> change: the current for API for LzDelegate#unregisterFrom(..). At the
> moment, the method signature is "function unregisterFrom
> (event:LzEvent)", this needs to be parallel to
> LzDelegate#register(..), so "function unregisterFrom
> (target:LzEventTarget, type:String)".
> (The attached code is neither complete nor fast, I just wanted to be
> minimalistic, but also not too abstract.)
>
>> We have an (improvement
>> suggestion)[http://jira.openlaszlo.org/jira/browse/LPP-6034 ] to
>> change the structure of the event system to be more efficient and
>> more DOM-like. I recently added a comment:
>>
>>
>>> > What we really want to do is get more in line with
>>> http://www.w3.org/TR/DOM-Level-2-Events/
>>> >
>>> > This would mean that LzEventable would become EventTarget, and >
>>> LzDelegatable [LPP-7037] would become EventListener.
>>> >
>>> > The major impact on our system is that LzEvents would no longer
>>> be > objects in themselves, but simply names (event types). This
>>> could > reduce the overhead of events, but would mean a big
>>> incompatibility. > Instead of:
>>> >
>>> > <target>.<event>.sendEvent(<value>);
>>> >
>>> > you would have to say:
>>> >
>>> > <target>.dispatchEvent(<event>, <value>);
>>> >
>>> > [In DOM2, dispatchEvent takes only an Event as its argument, the
>>> > event is an object that has attributes such as the event name >
>>> (type), state, and depending on the type of the event, additional >
>>> information -- what we usually pass as the single <value>. If we >
>>> want to be more compatible, perhaps we should implement the >
>>> `dispatchEvent` interface and another `dispatchSimpleEvent` >
>>> interface that handles most of our events. Otherwise the overhead
>>> we > save by not having LzEvent objects to attach listeners to will
>>> be > replaced by allocating an Event object every time you want to
>>> send > an event.]
>>>
>>
>> I'd be interested in other ideas and opinions.
More information about the Laszlo-dev
mailing list