Re: [Xsltforms-support] xsltforms Performance
Brought to you by:
alain-couthures
|
From: Tambet M. <tam...@gm...> - 2010-01-28 07:55:10
|
I just did a few tests with my case.
function selectAll(form, regexp, checked)
{
var elements = form.elements;
var elements_length = elements.length;
for(var i = 0; i < elements_length; i++)
{
var element = elements[i];
if (element.type == 'checkbox' && element.name.search(regexp) != -1)
{
element.checked = checked;
}
}
}
I had a form with 200 checkboxes.
for(var i = 0; i < elements_length; i++) - took ~1s to check all
for(var i = 0; i < elements.length; i++) - took ~2s to check all
for(var i = 0; i < form.elements.length; i++) - took ~3s to check all
It seems that accessing properties (maybe only form.elements?) is slow
in IE(8). All cases worked almost instantaneously in FF(3.5).
Tambet
Klotz, Leigh wrote:
> I tried this just now; it was tedious but doable. I didn't bother for
> strings. Some loops affect the list length and need to be left alone.
> I didn't get it 100% right and get the occasional JS error; care must
> be taken!
>
> I tried a sample application and didn't see a measureable clock-time
> performance improvement in IE8.
> There are some areas where performance is poor compared to other FF3.6
> (four seconds vs instantaneous) but this didn't fix it
>
> I'm willing to believe that this fixes problems I just didn't happen
> encounter, but it doesn't fix one I did encounter.
>
> Leigh.
>
> ------------------------------------------------------------------------
> *From:* Tambet Matiisen [mailto:tam...@gm...]
> *Sent:* Wednesday, January 27, 2010 12:30 AM
> *To:* xsl...@li...
> *Subject:* Re: [Xsltforms-support] xsltforms Performance
>
> Christopher Dedels wrote:
>>
>> Profiling tools report at least 13 seconds in IE 8 (2.5 seconds in
>> FF/Chrome) to "tab" from one field to the next, regardless of whether
>> the data in the field was changed. As you can expect, this is not
>> acceptable for my users.
>>
>
> I've noticed, that IE calculates .length property of arrays by
> counting all array elements. This makes such cycles especially slow:
>
> for (var i = 0; i < frm.elements.length; i++)
>
> This can be easily fixed by assigning length to a variable:
>
> var elements_length = frm.elements.length;
> for (var i = 0; i < elements_length; i++)
>
> You could search XSLTForms javascript code for ".length" and try if
> this fix makes it better.
>
> Tambet
|