I was only suggesting PasteMonkey because you had a lot of HTML to
paste and a large amount of code is hard to read through Groups,
Groups fudges the formatting and doesn't do syntax highlighting.
Plus, it's a jQuery project :-).

The problem is in the HTML, kind of.  When you create a DOM element
(or set of elements) with plain text HTML jQuery will be forced to run
that regex against all of it.  There is no way around it, in order to
allow jQuery to make sure it's parsing HTML and not a selector, the
regex has to find HTML tags or special characters in the text - even
if its 1000 words of plaintext and just one <br /> tag.  The problem
is that you're trying to load a very large amount of text, and making
jQuery figure out that it's HTML.  The easiest workaround is as Wizzud
suggested - if you tell jQuery that it's HTML by using .html(), you
skip the regex.  Looking at the jQuery source, using appendTo is fine
also*, just don't use $(state.html) - there's no need to make a jQuery
object from the HTML, since jQuery can append anything -- text, DOM
elements, HTML, etc.

*Example:
$(parent).append(state.html);

If you do need a jQuery object from the HTML, for manipulation or
parsing, there are quick ways to do that, too.  Let us know how this
works out.

Charles
doublerebel.com



On Oct 13, 1:33 pm, koollx <[EMAIL PROTECTED]> wrote:
> I can use PasteMonkey but I don't see how it can help in this case -
> what exactly do you want me to paste in it? The line that takes over
> 20 seconds to execute is the regexp applied to the HTML that's passed
> to jQuery constructor. There is no point in editing HTML (I think)
> because it is automatically generated by the server and is very
> dynamic. I just pasted one example of it. There is no way to predict
> all possible combinations of that HTML.
>
> The issue I think is in regexp, or IE performance when applying
> regexp. The regexp is in jquery.js.
>
> Are you suggesting that the problem is in the HTML markup I'm trying
> to insert into the page?
>
> On Oct 12, 7:12 pm, polyrhythmic <[EMAIL PROTECTED]> wrote:
>
> > Alex,
>
> > May I recommend to you PasteMonkey?
>
> >http://pastemonkey.org/
>
> > Charles
> > doublerebel.com
>
> > On Oct 12, 11:42 am, koollx <[EMAIL PROTECTED]> wrote:
>
> > > I'm trying to use jQuery 1.2.1 to add AJAX functionality to my web
> > > application. I am using jQuery Form plugin to submit te form via AJAX
> > > and have a server-side algorithm that returns page updates. The server
> > > returns a JSON array with HTML elements to be updated and then I loop
> > > through that array and process each item. For update, I first remove
> > > the existing DOM element, then recreate it using jQuery constructor,
> > > and then append it to the parent. It works find in FireFox, but in IE
> > > the performance is horrendous. It takes 25 seconds in IE6 and IE7
> > > pretty much hangs. I traced the delay to the following line of code in
> > > jQuery init method:
>
> > >                         var m = quickExpr.exec(selector);
>
> > > So it seems that jQuery is to blame for the performance. Is there
> > > something I can do to improve it? Is this a bug/issue that needs to be
> > > resolved? I'd like to help fix it but I'm not familiar with jQuery
> > > design well enough to know why the regexp is there and how we can
> > > simplify/remove it. Here's my update code:
>
> > >                         var $component = $(state.html);
> > >                         $component.appendTo(parent);
>
> > > And the HTML that takes particularly long is pasted below (it may look
> > > like a large page but it isn't. It loads into the browser without
> > > jQuery AJAX in less then a second):
>
> > >               <div id=\"JTabbedPane10546001\" style=
> > > \"position:absolute;left:0px;top:46px;width:884px;height:644px\"
> > > tabbedPane=\"true\">
> > >               <ul>
> > >               <li><a href=\"#JTabbedPane10546001-tab-0\"><span>Button
> > > Demo</span></a></li>
> > >               <li><a href=\"#JTabbedPane10546001-tab-1\"><span>Source
> > > Code</span></a></li>
> > >               </ul>
> > >               <div id=\"JTabbedPane10546001-tab-0\" style=
> > > \"position:absolute;left:2px;top:26px;width:874px;height:585px\"><div
> > > id=\"JPanel12136681\" style=\"position:absolute;left:2px;top:1px;width:
> > > 874px;height:611px;clip:rect(0px 874px 611px 0px)\" class=\" border\">
> > >                     <div id=\"JPanel14907335\" style=
> > > \"position:absolute;left:2px;top:2px;width:874px;height:
> > > 611px;clip:rect(0px 874px 611px 0px)\">
> > >                     <div id=\"JTabbedPane30196714\" style=
> > > \"position:absolute;left:0px;top:0px;width:874px;height:611px\"
> > > tabbedPane=\"true\">
> > >                     <ul>
> > >                     <li><a href=\"#JTabbedPane30196714-
> > > tab-0\"><span>Buttons</span></a></li>
> > >                     <li><a href=\"#JTabbedPane30196714-
> > > tab-1\"><span>Radio Buttons</span></a></li>
> > >                     <li><a href=\"#JTabbedPane30196714-
> > > tab-2\"><span>Check Boxes</span></a></li>
> > >                     </ul>
> > >                     <div id=\"JTabbedPane30196714-tab-0\" style=
> > > \"position:absolute;left:2px;top:26px;width:868px;height:555px\"><div
> > > id=\"JPanel5403403\" style=\"position:absolute;left:2px;top:1px;width:
> > > 868px;height:581px;clip:rect(0px 868px 581px 0px)\">
> > >                           <div id=\"JPanel16702321\" style=
> > > \"position:absolute;left:5px;top:5px;width:548px;height:
> > > 567px;clip:rect(0px 548px 567px 0px)\" class=\" border\">
> > >                             <fieldset style=\"position:absolute;left:
> > > 9px;top:8px;width:529px;height:61px;clip:rect(0px 549px 81px 0px)\"
> > > class=\" border\">
> > >                             <legend>Text Buttons</legend>
> > >                             <input type=\"button\" id=
> > > \"JButton7715289\" name=\"JButton7715289\" value=\"One \" class=
> > > \"button\" onClick=\"return doSubmit('/button/JButton7715289')\" style=
> > > \"position:absolute;left:11px;top:21px;width:69px;height:27px\">
> > >                             <span style=\"font-size:1;width:
> > > 10;position:absolute;left:80px;top:34px;width:11px;height:1px
> > > \">&nbsp;</span>
> > >                             <input type=\"button\" id=
> > > \"JButton5689693\" name=\"JButton5689693\" value=\"Two\" class=\"button
> > > \" onClick=\"return doSubmit('/button/JButton5689693')\" style=
> > > \"position:absolute;left:92px;top:21px;width:66px;height:27px\">
> > >                             <span style=\"font-size:1;width:
> > > 10;position:absolute;left:158px;top:34px;width:11px;height:1px
> > > \">&nbsp;</span>
> > >                             <table border=0 cellpadding=2
> > > cellspacing=0 class=\"button\" onclick=\"return doSubmit('/button/
> > > JButton7083822')\" id=\"JButton7083822\" style=\"border-width:
> > > 1px;border-style:outset;position:absolute;left:170px;top:22px;width:
> > > 351px;height:25px\">
> > >                               <tr>
> > >                                 <td align=center>
> > >                                 <table border=0 cellpadding=2
> > > cellspacing=0>
> > >                                   <tr>
> > >                                     <td><span><font size=2
> > > color=red><bold>Three!</font></span></td>
> > >                                   </tr>
> > >                                 </table>
> > >                                 </td>
> > >                               </tr>
> > >                             </table>
> > >                             </fieldset>
> > >                           <span style=\"font-size:30;width:
> > > 1;position:absolute;left:9px;top:73px;width:1px;height:31px\">&nbsp;</
> > > span>
> > >                             <fieldset style=\"position:absolute;left:
> > > 9px;top:105px;width:410px;height:114px;clip:rect(0px 430px 134px 0px)
> > > \" class=\" border\">
> > >                             <legend>Image Buttons</legend>
> > >                             <a href=\"#\" onclick=\"return doSubmit('/
> > > button/JButton6676137')\"><img src=\"http://localhost:8040/webcream/
> > > Windows_docs/images/resources/images/buttons/b1.gif\" alt=\"\" title=
> > > \"\" style=\"position:absolute;left:5px;top:16px\" border=0></a>
> > >                             <span style=\"font-size:1;width:
> > > 10;position:absolute;left:132px;top:61px;width:11px;height:1px
> > > \">&nbsp;</span>
> > >                             <a href=\"#\" onclick=\"return doSubmit('/
> > > button/JButton18285669')\"><img src=\"http://localhost:8040/webcream/
> > > Windows_docs/images/resources/images/buttons/b2.gif\" alt=\"\" title=
> > > \"\" style=\"position:absolute;left:143px;top:16px\" border=0></a>
> > >                             <span style=\"font-size:1;width:
> > > 10;position:absolute;left:270px;top:61px;width:11px;height:1px
> > > \">&nbsp;</span>
> > >                             <a href=\"#\" onclick=\"return doSubmit('/
> > > button/JButton26899046')\"><img src=\"http://localhost:8040/webcream/
> > > Windows_docs/images/resources/images/buttons/b3.gif\" alt=\"\" title=
> > > \"\" style=\"position:absolute;left:281px;top:16px\" border=0></a>
> > >                             </fieldset>
> > >                           <span style=\"font-size:0;width:
> > > 0;position:absolute;left:8px;top:213px;width:0px;height:323px
> > > \">&nbsp;</span>
> > >                           </div>
> > >                         <span style=\"font-size:0;width:
> > > 0;position:absolute;left:485px;top:5px;width:0px;height:0px\">&nbsp;</
> > > span>
> > >                           <div id=\"_133097577\" style=
> > > \"position:absolute;left:557px;top:5px;width:303px;height:
> > > 571px;clip:rect(0px 303px 571px 0px)\">
> > >                             <div id=\"JPanel13419753\" style=
> > > \"position:absolute;left:0px;top:0px;width:299px;height:
> > > 567px;clip:rect(0px 299px 567px 0px)\" class=\" border\">
> > >                               <div id=\"JPanel26452617\" style=
> > > \"position:absolute;left:9px;top:8px;width:116px;height:
> > > 252px;clip:rect(0px 116px 252px 0px)\">
> > >                               <span id=\"JLabel18384844\" style=\"text-
> > > align:left;position:absolute;left:0px;top:0px;width:104px;height:16px
> > > \" class=\"label\"><nobr>Display Options:</nobr></span>
> > >                               <span id=\"JCheckBox32263490\" style=
> > > \"text-align:left;position:absolute;left:0px;top:16px;width:
> > > 110px;height:25px\" class=\"checkbox\"><input type=\"checkbox\" id=
> > > \"JCheckBox32263490\" name=\"JCheckBox32263490\" class=\"checkbox\"
> > > checked onClick=\"doSubmit('/event/JCheckBox32263490')\">Paint Border</
> > > span>
> > >                               <span id=\"JCheckBox12860026\" style=
> > > \"text-align:left;position:absolute;left:0px;top:42px;width:
> > > 104px;height:25px\" class=\"checkbox\"><input type=\"checkbox\" id=
> > > \"JCheckBox12860026\" name=\"JCheckBox12860026\" class=\"checkbox\"
> > > checked onClick=\"doSubmit('/event/JCheckBox12860026')\">Paint Focus</
> > > span>
> > >                               <span id=\"JCheckBox14375014\" style=
> > > \"text-align:left;position:absolute;left:0px;top:67px;width:
> > > 80px;height:25px\" class=\"checkbox\"><input type=\"checkbox\" id=
> > > \"JCheckBox14375014\" name=\"JCheckBox14375014\" class=\"checkbox\"
> > > checked onClick=\"doSubmit('/event/JCheckBox14375014')\">Enabled</
> > > span>
> > >                               <span id=\"JCheckBox8952636\" style=
> > > \"text-align:left;position:absolute;left:0px;top:92px;width:
>
> ...
>
> read more ยป

Reply via email to