2008-09-17 6 views
5

सबसे पहले, एक छोटे पृष्ठभूमि:मैं RichFaces ScrollableDataTable नियंत्रण के प्रदर्शन को कैसे सुधार सकता हूं?

मैं 288 पंक्तियों और 8 कॉलम (2304 रिकॉर्ड) के साथ एक डेटा सेट प्रदर्शित कर रहा हूँ एक ScrollableDataTable और प्रदर्शन का उपयोग कर एक बहुत होना बाकी है। डेटाटेबल नियंत्रण का उपयोग करते हुए एक ही डेटा को प्रस्तुत करते समय 7 सेकंड की तुलना में नियंत्रण को पुन: प्रस्तुत करने वाला एक AJAX अनुरोध पूरा होने में लगभग 20 सेकंड लगते हैं।

सर्वलेट फ़िल्टर और जावास्क्रिप्ट के माध्यम से कब्जा कर लिया गया मेट्रिक्स दिखाता है कि लगभग सभी प्रोसेसिंग समय क्लाइंट-साइड पर खर्च किए जाते हैं। 1 9 .87 दूसरे अनुरोध में से, सर्वर पर 3.87 सेकेंड खर्च किए जाते हैं ... डेटा से पूछताछ और सॉर्ट करने में 6 सेकंड से कम समय के साथ।

डेटाटेबल नियंत्रण में स्विच करने से अनुरोध, प्रतिक्रिया, और स्क्रॉल करने योग्य डेटाटाइबल के साथ जो देख रहा है उसके 1/3 तक चक्र प्रस्तुत करता है, लेकिन कई महत्वपूर्ण विशेषताओं को भी हटा देता है।

और अब सवाल:

है किसी और अनुभवी प्रदर्शन ScrollableDataTable के साथ मुद्दों? पिन किए गए कॉलम और दो-अक्ष स्क्रॉलिंग के साथ JSF/RichFaces में टैब्यूलर डेटा की बड़ी मात्रा में प्रस्तुत करने का सबसे प्रभावी तरीका क्या है?

अद्यतन:

हम एक कस्टम नियंत्रण लेखन समाप्त हो गया। प्रस्तुत किए गए घटकों और जेनरेट किए गए जावास्क्रिप्ट पर पूर्ण नियंत्रण ने हमें डेटाटेबल से तुलनात्मक प्रतिक्रिया समय प्राप्त करने की अनुमति दी। मैं जैक के साथ सहमत हूं हालांकि - अंकन सही जवाब है।

उत्तर

1

जेएसएफ जीवन चक्र के "रेंडर रिस्पांस" चरण में बाधा सबसे अधिक संभावना है। यह एक बार में देखने के लिए बहुत से घटकों को प्रस्तुत करने की कोशिश कर रहा है।

मेरा सुझाव पृष्ठांकन का उपयोग करना है। यह आपके प्रदर्शन में काफी वृद्धि करना चाहिए क्योंकि यह एक समय में दृश्य के छोटे हिस्से को प्रस्तुत कर रहा है।

सुनिश्चित करें कि आपके rich:dataTablerows संपत्ति सेट है और यह भी है कि हो सकता है - अगर आप किसी भी स्तंभ को छानने कर रहे हैं - सुनिश्चित करें कि तारीख टेबल भी संपत्ति reRender="paginator" जहां paginator अपने rich:datascroller है कि सुनिश्चित करें।

0

मुझे बहुत समय पहले ऐसी ही समस्याएं थीं और लाइफस्क्रिप्ट का उपयोग करके पृष्ठ से बातचीत करने वाले डेटा को प्रदर्शित करने के लिए एक एप्लेट लिखना समाप्त कर दिया था। मेरी प्रदर्शन समस्याएं वही थीं जो आप देख रहे थे। क्लाइंट ने टेबल डेटा प्रस्तुत करने के लिए 30 सेकंड से अधिक समय लिया, और सर्वर ने 2 सेकंड से भी कम समय में अपनी प्रतिक्रिया बदल दी।

0

यह तालिका प्रस्तुत करने के लिए उत्पादित जावास्क्रिप्ट में एक बग की तरह लगता है। क्या आपने विभिन्न ब्राउज़रों में पेज की कोशिश की है? आप किस जेएसएफ कार्यान्वयन का उपयोग कर रहे हैं (आरआई या माईफेसेस या कुछ और)?