Hi! > hmm could'nt just use a custom ajax decorator? Or override the js part > of the onchangeajaxbehaviour?
Hmm.. sounds like a good starting point... thanks. BTW: I totally lost you on that lazy loading thing... the user would like the page to load in a snap and using it to be like a snap. How would your proposed lazy loading be implemented? ** Martin > > 2010/5/19 Jeremy Thomerson <jer...@wickettraining.com>: >> Well, if the rendering of all that extra JS is what's causing the problem, >> I'd try to limit it to one rendering of the (slightly-modified) behavior. >> >> You can basically render something like this: >> >> function somethingInMyTableChanged(rowInd) { >> return wicketAjaxGet('{standardBehaviorUrl}&rowIndex=' + rowInd); >> } >> >> Then, you add a simple behavior to your row items like: >> >> new SimpleAttributeModifier("onchange", true, new Model<String>("return >> somethingInMyTableChanged(" + item.getRowIndex() + ");"); >> >> In your behavior, now you have to do a little extra work (don't use an >> onchangeajaxbehavior, just use a custom defaultajaxbehavior or something >> like that). You'll need to call >> RequestCycle.get().getRequest().getServletRequest().getQueryParameters().get("rowIndex") >> and use that to see which row changed. >> >> Anyway, it should work, but it's a little less "clean" than you normally >> would do in Wicket. BUT - if you have proven that it's the rendering of all >> that extra AJAX string stuff that's slowing you down, then it's worth doing. >> >> -- >> Jeremy Thomerson >> http://www.wickettraining.com >> >> >> >> On Wed, May 19, 2010 at 11:09 AM, Martin Makundi < >> martin.maku...@koodaripalvelut.com> wrote: >> >>> Hi! >>> >>> Yes.. my question now is: how to easily extract the JS? It is from >>> onchangeajaxbehavior etc. >>> >>> I would like to continue using wicket standard onchangeajaxbehavior >>> but somehow override the way it injects the js into the component tag. >>> Suggestions to accomplish this? >>> >>> ** >>> Martin >>> >>> 2010/5/19 Jeremy Thomerson <jer...@wickettraining.com>: >>> > If you've already proven that removing the AJAX removes the contention, >>> I'd >>> > go with Nino's "otherwise" route. That was my first guess. Depending on >>> > what you're doing with those AJAX calls, you could probably make it so >>> that >>> > you have one to three of them for the entire table, wrapped in a custom >>> > function. (You don't have to extract them to a separate JS). Then each >>> row >>> > would shorten it's JavaScript output to myCustomFunction(rowIndex). If >>> you >>> > need some help, let us know. I posted a message on this list a week or >>> so >>> > ago showing how to wrap existing AJAX in a custom function. That might >>> > help, too. >>> > >>> > -- >>> > Jeremy Thomerson >>> > http://www.wickettraining.com >>> > >>> > >>> > >>> > On Wed, May 19, 2010 at 10:51 AM, nino martinez wael < >>> > nino.martinez.w...@gmail.com> wrote: >>> > >>> >> The easiest thing would probably to lazy load the rows somehow, how >>> >> are load time pr row?.. Otherwise you could extract the long inline >>> >> code into a seperate js and wrap them into induvidual methods, >>> >> although I do not know if it makes page load faster or there could be >>> >> other issues. >>> >> >>> >> 2010/5/19 Martin Makundi <martin.maku...@koodaripalvelut.com>: >>> >> > Hi! >>> >> > >>> >> > HELP! >>> >> > >>> >> > I have a problem. I have a table with 20 columns and 30 rows >>> >> ("calendar"). >>> >> > >>> >> > The problem is that it renders very slowly in browsers. >>> >> > >>> >> > The reason is not directly network speed but it is the VERY heavy >>> >> > markup. Each table cell has 3 ajax components and the ajax call >>> >> > functions are loooooooooong. >>> >> > >>> >> > I have tested to strip away all ajax calls and it renders pretty OK. >>> >> > Now what I am thinking is that is there a way to shorten the wicket >>> >> > ajax call urls? >>> >> > >>> >> > Any practical suggestions? I tried also shortening the wicket-id names >>> >> > but there still remains quite some blob of excess markup that could >>> >> > brobably be in some reusable function?? >>> >> > >>> >> > Here is a sample markup of just one single cell and you can immagine >>> >> > how big of a blob it is when having 20x30 cells (copy-pasted from >>> >> > firebug): >>> >> > >>> >> > <td class="order_confirmed" id="id84be1"><span style="position: >>> >> > relative; float: left;"><select onchange="var wcall=wicketAjaxPost('', >>> >> > wicketSerialize(Wicket.$('memo-8-3')),function() { >>> >> > }.bind(this),function() { }.bind(this), function() {return >>> >> > Wicket.$('memo-8-3') != null;}.bind(this));" id="memo-8-3" >>> >> > name="p:f:ss:s:t:w:3:m:8:o" style="position: absolute; display: none; >>> >> > z-index: 2;" class="show-hide"> >>> >> > <option value=""></option> >>> >> > <option value="99255" selected="selected">Option</option> >>> >> > <option value="200345">Another option</option> >>> >> > </select></span> >>> >> > <div id="c4be2"> >>> >> > <input type="text" onchange="if (!wicketAjaxBusy()) { >>> >> > overrideShow = true;var wcall=wicketAjaxPost('', >>> >> > wicketSerialize(Wicket.$('s4714')),function() { overrideShow = >>> >> > false;}.bind(this),function() { overrideShow = false;}.bind(this), >>> >> > function() {return Wicket.$('s4714') != null;}.bind(this));}" >>> >> > tabindex="008003" maxlength="1024" id="s4714" >>> >> > name="p:f:ss:s:t:w:3:m:8:c:s" value="10-18" style="border: 1px solid >>> >> > rgb(0, 255, 0);"><select onchange="var wcall=wicketAjaxPost('', >>> >> > wicketSerialize(Wicket.$('r4715')),function() { >>> >> > }.bind(this),function() { }.bind(this), function() {return >>> >> > Wicket.$('r4715') != null;}.bind(this));" id="r4715" >>> >> > name="p:f:ss:s:t:w:3:m:8:c:r" style="position: absolute; display: >>> >> > none;" class="colors show-hide" size="1"> >>> >> > <option value="">new stuff</option> >>> >> > <option value="B">Option</option> >>> >> > </select><script >>> >> > type="text/javascript"><!--/*--><![CDATA[/*><!--*/ >>> >> > initializeShowHide('s4714','#r4715'); >>> >> > /*-->]]>*/</script> >>> >> > >>> >> > <div class="right-side"><a id="i4716" href="#">Info</a><script >>> >> > type="text/javascript"><!--/*--><![CDATA[/*><!--*/ >>> >> > initializeShowHide('i4716','#memo-8-3', true); >>> >> > /*-->]]>*/</script> >>> >> > >>> >> > </div><a onclick="var wcall=wicketSubmitFormById('f4b6d', '', >>> >> > 'p:f:ss:s:t:w:3:m:8:c:c' ,function() { }.bind(this),function() { >>> >> > }.bind(this), function() {return >>> >> > Wicket.$$(this)&&Wicket.$$('f4b6d')}.bind(this));;; return >>> >> > false;" id="c4be3" name="p:f:ss:s:t:w:3:m:8:c:c" style="margin: 0pt >>> >> > 1px;"><img border="0" title="Tyhjennä" alt="x" >>> >> > src="/images/redcross.png"></a> >>> >> > </div></td> >>> >> > >>> >> > >>> >> > ** >>> >> > Martin >>> >> > >>> >> > --------------------------------------------------------------------- >>> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> >> > For additional commands, e-mail: users-h...@wicket.apache.org >>> >> > >>> >> > >>> >> >>> >> --------------------------------------------------------------------- >>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> >> For additional commands, e-mail: users-h...@wicket.apache.org >>> >> >>> >> >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org