Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.1
-
None
-
None
Description
I ran the performance testing again against the scripts and found following out, for ie we use innerHTML with some fixes
for the rest contextual ranges, this works, but contextual range creation is way slower than using innerHTML, neither is W3C standard, but at least innerHTML is supported over all browsers (with some bugs in older ie versions where it stems from), but innerHTML will be part of the HTML5 spec, since I solved all ie6 related innerhtml problems for our usecase I guess it is save to move over to innerHTML, we are talking about a differentce of 42 miliseconds on firefox 3.6 between the two methods.
Mojarra still is faster (but fails to run my performance test on chrome, while our scripts work),
this is partially caused by MyFaces constantly sending oamSubmit for a form refresh (we should move that code finally out into an external resource), but also partially on the javascript side, one reason for the performance bottleneck was the usage
of contextualRanges which are half as fast as innerHTML.
Another issue is our oo layer, eval is calls way too often globalEval, introducing a namespace index should resolve this.
On dom level the heaviest operation is the replaceElements probably by some inlining for the 95% simple cases we can resolve that one to mojarra levels.
Last but not least our exectScript also can be performance improved by simply concatenating all scripts and then doing a single eval.