2011-01-23 20 views
12

क्या अंतर है बनाम जबछिपी हुई फ़ील्ड viewstate

  • छिपे हुए क्षेत्र बनाम देखें राज्य का उपयोग?
  • प्रत्येक का उपयोग कब करें?
  • कौन सा और अधिक सुरक्षित?
  • प्रदर्शन में कौन सा बेहतर है?
  • विकल्प क्या हैं?
+1

न तो एक दूसरे से वास्तव में बेहतर या बदतर हैं। आप क्या स्टोर करना चाहते हैं? – Phill

+0

कभी-कभी (उत्पादों के लिए आईडी), कभी-कभी डेटा टेबल और इतने पर .. –

उत्तर

8

व्यूस्टेट एक छिपे हुए क्षेत्र में संग्रहीत है और इसमें पूरे पृष्ठ के बारे में जानकारी शामिल है। इसे एन्क्रिप्टेड भी किया जा सकता है। चूंकि पोस्टबैक प्रदर्शन करते समय दृश्य स्थिति को हमेशा कोडबेइंड पर भेजा जाता है क्योंकि यह हमेशा व्यावहारिक होता है क्योंकि आपको हमेशा मूल्य मिलते हैं। दोष यह है कि यदि आप इसके अंदर अधिक जानकारी डालना शुरू करते हैं तो यह वास्तव में बड़ा हो सकता है और प्रदर्शन को भुगतना शुरू हो सकता है। उदाहरण के लिए कुछ AJAX अनुरोधों में आप केवल कुछ छोटी जानकारी सर्वर पर भेजना चाहते हैं और यदि आपने अपडेटपैनल्स का उपयोग किया है तो संपूर्ण व्यूस्टेट भेजा जाएगा और इसमें ऐसी जानकारी होगी जो आवश्यक नहीं है।

+0

हाँ, आप का मतलब है कि AJAX के भारी उपयोग के साथ व्यूस्टेट का उपयोग प्रदर्शन के अनुसार नहीं है? –

+1

@just_name, यह निर्भर करता है कि आप AJAX कैसे कर रहे हैं। यदि आप UpdatePanels का उपयोग कर रहे हैं, तो नहीं, यह बुद्धिमान नहीं है, अगर आप jQuery जैसे कुछ अन्य ढांचे का उपयोग कर रहे हैं तो आपके पास सर्वर पर जो भेजा जा रहा है उसका पूर्ण नियंत्रण है। –

+0

हाँ, मैं आपको बहुत धन्यवाद देता हूं। –

3

एक छिपे हुए क्षेत्र एक पृष्ठों HTML स्रोत में देखा जा सकता है जबकि ViewState है, कम से कम कहने के लिए, समझ से परे है और अपने .net संस्करण के आधार पर, डिग्री बदलती करने के लिए एन्क्रिप्टेड किया जा सकता है।

asp.net viewstate encryption

छिपे हुए क्षेत्र के प्रदर्शन में बेहतर हो, लेकिन कोई सुरक्षा प्रदान करता है और अगर पोस्ट की संख्या में हेरफेर किया जा सकता है, ViewState को बदलने के लिए एक बहुत आसान हो जाएगा।

सत्र चर इनके लिए एक अच्छा विकल्प हैं।

+2

+1 उदाहरण के लिए यदि आप क्लाइंट साइड स्क्रिप्ट आसानी से मूल्य तक पहुंचने में सक्षम होना चाहते हैं, तो एक छिपे हुए फ़ील्ड का उपयोग करें। – Lisa

-1

ViewState आंतरिक रूप से छिपे हुए क्षेत्र का उपयोग करता है। यह ASP.NET Engine द्वारा प्रबंधित किया जाता है और डिफ़ॉल्ट रूप से एन्क्रिप्ट किया जाता है।

दूसरी ओर, छिपे हुए क्षेत्र नियंत्रण के साथ, आप इसे प्रबंधित करने के लिए प्रबंधित करते हैं। डिफ़ॉल्ट रूप से, यह एन्क्रिप्टेड नहीं है।

प्रदर्शन के अनुसार, दोनों समान हैं। लेकिन, मुझे लगता है कि ViewState अधिक सुरक्षित है। ASP.NET क्लाइंट साइड के साथ किसी भी छेड़छाड़ को रोकने/पहचानने के लिए अपने हैश को बनाए रखता है।

आप डेटा स्टोर करने के लिए सत्र का भी उपयोग कर सकते हैं।

+6

व्यूस्टेट डिफ़ॉल्ट रूप से एन्क्रिप्ट नहीं किया गया है - यह एक बेस 64 एन्कोडेड स्ट्रिंग है। – codingbadger

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