-
FEATURED COMPONENTS
First time here? Check out the FAQ!
I have a Vlayout
which contains a huge list of Groupbox
objects. While rendering them in the UI in IE8, the browser either takes a lot of time to load or it hangs. The ZK version that I am using is 5.0.8. I also tried upgrading to 5.0.11, but of no use. There are no issues in IE9, IE10, IE11, Firefox and Chrome browsers. Is there anything I can do to improve the performance in IE8? OR IS THIS AN EXISTING ISSUE? According to the link mentioned here - http: //stackoverflow .com/questions/212254/how-can-i-troubleshoot-rendering-performance-issues-in-ie , it looks like an existing issue and there is no answer for IMPROVING THE PERFORMANCE!
When encountering a performance issue, we should identify where is the bottleneck: server or client side. Since you said that this issue doesn't happen in other browsers, it's very possible that slow rendering is the cause of the performance issue.
To display huge amounts of data, I suggest to use Listbox or Grid, because they support Render-on-Demand which doesn't render all components at a time and this feature will improve performance. You can put Groupbox inside a Listbox like:
<listbox>
<template>
<listitem>
<listcell>
<groupbox>groupbox</groupbox>
</listcell>
</listitem>
</template>
Or use a Listbox render ( http://books.zkoss.org/wiki/ZK%20Developer's%20Reference/MVC/View/Renderer/Listbox%20Renderer ), if you need to create components upon data in runtime. Paging in a Listbox is another good approach if it fits your requirement
I also suggest you to reduce the number of components used in a Groupbox. For those content doesn't change dynamically, you can use native component ( http://books.zkoss.org/wiki/ZK%20Developer's%20Reference/Performance%20Tips/Use%20Native%20Namespace%20instead%20of%20XHTML%20Namespace)
For Groupbox, you can enable client render on demand, and make a Groubox close at the beginning. Then ZK will create those components inside a Groupbox only when a Groupbox is open.
Your using a very old version of ZK. Perhaps this has been corrected / improved in a later version. How huge is huge? Perhaps you should you could change your vlayout to a listbox and implement a load on demand model like the one demonstrated at:
www.zkoss.org/zkdemo/listbox/loadondemand
Hello AlwaysALearner,
Perhaps it would be wise to use some sort of pagination method.
Having a single page with thousands upon thousands of rows sounds entirely unfriendly for the end user.
Something like a simple means of pagination would certainly solve your problem, as well as decrease load times and increase usability.
Best Regards,
Darksu
Hello @snaef999,
This is just a comment and not an answer, as I cannot give comment for provided answers.
I tried upgrading to 5.0.11, but of no use. I cannot upgrade to newer versions as there are certain classes which we are using and don't exist in the newer JARs.
I have around 250 Groupboxes (this may not sound like a big number, but each Groupbox has 100s of listboxes). The "Load on demand" is already applied for the listboxes in each groupbox. The code is implemented in such a way that it is very difficult to change the structure at this point of time.
Hello @Darksu,
Will that really help improve the load performance? I'm asking this because, even though there are around 250 Groupboxes, I manually restricted the creation of Groupboxes count to 5 and tried to load the Vlayout which contains only 5 Groupbox objects in the UI. I still got the same result. The IE8 browser was frozen.
Asked: 2015-01-02 08:55:57 +0800
Seen: 26 times
Last updated: Jan 05 '15