2010-06-29 21 views
6

हम एक जावा वेब ऐप विकसित कर रहे हैं जो इसके यूआई के लिए जेएसएफ (सीम के माध्यम से रिचफैसेस) का उपयोग करता है। मैंने कई लेख पढ़े हैं जो इंगित करते हैं कि UI घटकों पर "rendered =" विशेषता का उपयोग करके एक बहुत ही महत्वपूर्ण प्रदर्शन हिट होता है। हमारे पास कई घटक हैं जिन्हें हम सक्षम या अक्षम करना चाहते हैं, उनके मूल्य निर्धारित किए गए हैं या नहीं। उदाहरण के लिए, यदि हम बिक्री के लिए कोई आइटम प्रदर्शित कर रहे हैं तो हमारे पास सेट किए गए गुणों के लिए रिक्त फ़ील्ड का गुच्छा नहीं होगा।जेएसएफ - "rendered =" के लिए वैकल्पिक?

इस प्रदर्शन को देखते हुए, हम कई "प्रस्तुत" फ़ील्ड का उपयोग करने के बारे में डरते हैं। क्या इसके लिए एक बेहतर प्रदर्शन विकल्प है? क्या इस क्षेत्र का उपयोग करने के प्रदर्शन में सुधार करने के लिए हम कुछ भी कर सकते हैं?

+3

मुझे 'rendered' विशेषता के प्रदर्शन हिट को चित्रित करने वाले लेखों के लिंक में रुचि होगी ... – Dolph

+0

मुझे आपके वेबपैप के प्रोफाइलर परिणामों में भी रूचि होगी। संकेत: [VisualVM] (https://visualvm.dev.java.net/) + [जेएमटर] (http://jakarta.apache.org/jmeter/)। – BalusC

+0

एक बार ऐसा लेख यहां है, विशेष रूप से "सशर्त रेंडरिंग की लागत" पर अनुभाग ... http://www.jsfcentral.com/articles/speed_up_your_jsf_app_1-2.html हमने कोई पर्याप्त प्रोफ़ाइल नहीं की है अपने आप को। हमें अभी तक यूआई प्रोग्रामिंग में से अधिकांश तक नहीं मिला है, लेकिन यह सुनिश्चित करना चाहता था कि जब हम ऐसा करते हैं तो हम इसे सही तरीके से निपटा रहे हैं। – Shadowman

उत्तर

4

यदि गेटर कुछ (कैश) बूलियन संपत्ति लौटने की तुलना में कुछ और नहीं करता है, तो मुझे वास्तव में कोई दर्द नहीं दिखता है। इसके लिए कोई विकल्प नहीं है। प्रदर्शन में सुधार करने के लिए आप जो भी कर सकते हैं, वह मॉडल (आलसी लोडिंग) या दृश्य (c:set) में कैश करना है। बदले में गेटर विधि आविष्कार की लागत पूरी तरह से नगण्य है।

+1

लेकिन '' से सावधान रहें - यह कुछ संस्करणों और कुछ मामलों (पुनरावृत्ति) – Bozho

+0

पर आपके इनपुट के लिए धन्यवाद के रूप में काम नहीं कर सकता है। यदि प्रदर्शन हिट नगण्य है, तो हम इसका उपयोग करेंगे। – Shadowman

0

कोई अन्य तरीका वैसे भी मुक्त नहीं होगा .. इसलिए मैं घटकों को छुपाने/दिखाने के लिए मानक जेएसएफ तरीके का उपयोग करूंगा।

0

आप style="display : (#{bean.booleon} ? block : none)" जेएसएफ टैग का उपयोग कर सकते हैं।

+0

लेकिन फिर यह कोड एचटीएमएल पेज में है। Rendered विशेषता के साथ यह भी एचटीएमएल कोड में नहीं है! – marcel

संबंधित मुद्दे