2008-09-23 8 views
17

में व्यूस्टेट जेएसएफ में व्यूस्टेट छिपे हुए फ़ील्ड के आकार को कम करने का सबसे अच्छा तरीका क्या है? मैंने देखा है कि मेरा दृश्य राज्य लगभग 40k है, यह क्लाइंट के पास जाता है और प्रत्येक अनुरोध पर सर्वर पर वापस आ जाता है और सर्वर पर आने वाली प्रतिक्रिया यह उपयोगकर्ता के लिए एक महत्वपूर्ण मंदी है।javax.faces को कम करने के लिए कैसे करें। जेएसएफ

मेरे पर्यावरण JSF 1.2, MyFaces, बिलाव, टॉमहॉक, RichFaces

उत्तर

16

क्या आपने सर्वर से राज्य की बचत को सेट करने का प्रयास किया है? यह केवल क्लाइंट को आईडी भेजना चाहिए, और सर्वर पर पूर्ण स्थिति रखना चाहिए। बहुत से उपयोगकर्ताओं को तो नीचे की ओर बहुत कम नदी के ऊपर है के रूप में

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>server</param-value> 
</context-param> 
+7

कृपया ध्यान रखें कि सर्वर स्थिति की बचत का उपयोग सर्वर मेमोरी खपत _a lot_ बढ़ाता है! यदि आपके पास कई उपयोगकर्ता हैं (हजारों) यह एक बाधा बहुत तेजी से हो सकता है। – Marcel

+1

मैं दोनों निर्दिष्ट किए हैं: '<संदर्भ param> javax.faces.STATE_SAVING_METHOD सर्वर <संदर्भ param> com.sun.faces .enableViewStateIdRenderingD गलत 'अभी भी मदद नहीं कर रहा है। मैं प्राइमफेस का उपयोग कर रहा हूँ। – Damian

11

आप MyFaces का उपयोग कर रहे हैं, तो आप ग्राहक को भेजने से पहले viewstate संपीड़ित करने के लिए इस सेटिंग को आजमा सकते हैं।

<context-param> 
    <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name> 
    <param-value>true</param-value> 
</context-param> ` 
0

एक विकल्प पूरी तरह से क्लाइंट की तरफ देखने राज्य को बचाने के लिए है, लेकिन आप इस तरह के वस्तु को क्रमानुसार करने में सक्षम नहीं होने के रूप में कुछ समस्या का सामना कर सकते हैं। आप अपनी आवश्यकता के आधार पर विभिन्न संपीड़न एल्गोरिदम/उपयोगिता का उपयोग करने का प्रयास करना चाह सकते हैं, लेकिन चूंकि ब्राउजर पहले से ही जीजेपीपी का उपयोग डिफ़ॉल्ट रूप से करेगा, इसलिए मुझे यकीन नहीं है कि आप कितना हासिल कर सकते हैं।

+0

मेरे सबसे बड़ी चिंता का विषय क्लाइंट से सर्वर तक पद के आकार है: बस फ़ाइल web.xml के लिए निम्न जोड़ें। कोई संपीड़न तब होता है जब ग्राहक अनुरोध भेजता है –

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