Hello. Well after 2 months of using the first app I deployed and its being used, some times I realize that app slow down considerably when working with more than 1000 EO inserted into a NSMutableArray to be displayed in a AjaxSelectionList.
So what Im doing is:.. Fetching the EO's from a selected project, this are assigned to a NSMutableArray<TranslationSets>, then the list bidning of the AjasSelectionList its bound to that array, but this AjaxSelectionList its wraped inside an AjaxUpdateContainer. So when I select an item in the list I update another container in the bottom, so I can edit/modify the slovak translation of the selected TranslationSet. Then when I click update AjaxSubmit, I send the new value of the sk translation and make the relationship with the selection of the AjaxSelectionList (above mentioned), then I update the whole ajaxUpdateContainer which wraps the AjaxSelectionList.
Ok here I see a fail, is that Im updating the whole list again ,( even it will not re fetch because the EO are already in the EC), but it will send again the data back and forth client to server, and this is where its taking longer.
I would only Update the Selected Item int he AjaxselectionList.
so this roughly what I have i the html in the uuper part whcih contains the AjaxSelectionList,
<wo:AjaxUpdateContainer id="WGInfomation" onRefreshComplete="colorList('contentsSelectionList','li')"> <wo:form multipleSubmit = "$true" id="formAdmin"> <div id ="WGContents"> <webobject name = "ContentsRepetition"> <li> <div class="fDivC"><div class = "plabel"> <webobject name = "ProjectName"> <wo:WOString value = "$projectNames.projectName"/> </webobject> </div> </div> <div class = "sDivC"> <div class="sLabel"> <span class="baseL"><webobject name = "pName" /></span><br /> <wo:AjaxUpdateContainer id = "innerContainerList"> <webobject name = "trans"><div class="transL" id = "topList"><wo:string value = "$trasnFromBaseItem.tran"/></div></webobject> </wo:AjaxUpdateContainer> </div> </div> <wo:AjaxSubmitButton functionName="ajax2SubmitAndUpdate" updateContainerID="PhraseDetails" action = "$performPhraseSearch"/> </li> </webobject>
</wo:AjaxUpdateContainer>
so as you can see, inside the big AjaxUpdateContianer I have another one, which in fact that inner one is the one Im interested in refreshing, but If I put to refresh that one instead, then it will not update due that the external AjaxSelectionlist item binding still holds the old value.. thats why Im refreshing the whole AjaxSelectionList...
What a mess I have..
here aree the WOD:\ ContentsRepetition:AjaxSelectionList{ focus = true; elementName = "ul"; containerElementName="div"; list = contentsList; item = contentsItem; id="contentsSelectionList"; selection = contentsSelection; class = "plist2"; onchange = "ajax2SubmitAndUpdate()"; onselect ="compareStrings();"; }
trans :WORepetition{
list = contentsItem.toTransFromBases; item = trasnFromBaseItem;
}
Any ideas.. ? |