[ 
https://issues.apache.org/jira/browse/WICKET-5132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13654495#comment-13654495
 ] 

Emmeran Seehuber commented on WICKET-5132:
------------------------------------------

I can confirm this problem. I just upgraded to Wicket 6.7.0 and got this error. 

Within my application i can reproduce this error very easy: Just open a (Ajax) 
ModalWindow and add many Javascript behaviors to it, so that the Javascript to 
evaluate is not too small (i.e. > 2 kb).

The problem here is, that according to the Chrome "Network"-Tab the <evaluate> 
element has one CDATA. But in the DOM it is split (for whatever reason) into 3 
CDATA nodes. 

jquery(node).text() will concat the text of all those nodes. "text = 
node.firstChild.nodeValue; " will not ....

You need to put a loop here. Something like

var text =""; var n = node.firstChild; while(n) { text = text + n.nodeValue; n 
= n.nextSibling; }

I'll downgrade to Wicket 6.6 till this is fixed.
                
> Evaluation of returned data (which includes alot of javascript) very slow 
> after ajax call in IE10.
> --------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-5132
>                 URL: https://issues.apache.org/jira/browse/WICKET-5132
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.0.0
>         Environment: IE10
>            Reporter: Bas Veenema
>            Assignee: Martin Grigorov
>              Labels: javascript, performance
>             Fix For: 6.7.0
>
>         Attachments: response_script.txt
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> We're using ajax to update a treetable. In IE10, when the ajax call returns 
> the data, which contains alot of javascript code, processEvaluation in 
> wicket-ajax-jquery.js stalls on var text = jQuery(node).text();
> In jQuery procedure Sizzle.getText is called, which eventually returns 
> property elem.textContent. In IE10 this last statement takes about 26 seconds 
> for our case while the same statement in chrome takes about 6 ms.
> It seems strange that IE10 takes this long to return the textContent of a 
> node, but why is this necessary in the first place?
> The purpose of var text = jQuery(node).text() would be to get the text of the 
> node. I think it would suffice to state var text = 
> node.childNodes[0].nodeValue instead of var text = Query(node).text(), 
> because the text is in the node itself, and it's not necessary to get the 
> text from its descendants, because it has no descendants.
> In our case this modification improves the duration from 25915 ms to 8 ms in 
> IE10.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to