[Qt-qml] ListModel and WorkerScript limitations

ari.koivisto at nokia.com ari.koivisto at nokia.com
Wed Sep 8 16:10:12 CEST 2010


> From: Kennedy Aaron (Nokia-MS-Qt/Brisbane)
> ><ari.koivisto at nokia.com> wrote:
> > (0.   The DOM API could be more complete, now the JS I wrote is not
> exactly
> > pretty)
> 
> Yes, the DOM API is quite a minimal subset of the full W3C spec.  Your
> best bet is to file bugs against the parts that you want, or, better
> yet, submit some patches!  We'd love to see contributions in this area.
> 
> In the future we are looking at sharing the webkit implementations of
> these constructs, which obviously support the entire spec, but that is
> not scheduled for any particular release.

Things like getElementsByTagName would've have made life a bit easier. 
I'll try to raise a suggestion around this soon.

> > 1.      In my case the server response document can take a while to
> process ­
> > few seconds on embedded devices -> I¹d like to use WorkerScript to
> > prevent the UI getting stuck, but I can¹t: ³If a list model is to be
> > accessed from a WorkerScript, it cannot contain list data.² Well,
> that
> > is exactly the case I have and I can¹t modify the ListModel to work
> > without list data
> 
> That is a limitation of the current implementation that is non-trivial
> to fix.  Future releases of QML will included better model data support
> that will hopefully help with this problem.

That is really a shame as WorkerScript would be a perfect fit for more
complex ListModel handling - especially around embedded use cases. Now the
PC version runs the JS XML parser with sample XML data in ~42ms and 
it takes ~1600ms on a embedded device, that is too much for fluid UI 
handling.

I'll try work around this issue for now via C++.

> > 2.      While looking at WorkerScript I noticed that I couldn¹t pass
> the
> > responseXML to the WorkerScript via SendMessage. WorkerScript gets
> > stuck when trying to access the object - e.g.
> > ³response.childNodes.length². Moving the whole XMLHttpRequest to
> > WorkerScript doesn¹t work either (³TypeError: Result of expression
> > 'doc.responseXML' [null] is not an object.²)
> 
> I can't reproduce this.  The attached example uses XMLHttpRequest from
> a worker script and it seems to be able to access responseXML without
> issue.
> Can you provide more details about your problem - like the specific
> release of Qt you are using and, ideally, a self contained example of
> the problem?

Ah, this was a "stupid user" error :-). Forgot that the test data lived in
different directory than the script while doing the WorkScript test.

Best Regards,
Ari





More information about the Qt-qml mailing list