2013-02-01 20 views
5

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

मान लीजिए कि क्या मैं सत्र 1 से कैश या प्रोफाइल में कोई डेटा संग्रहीत करता हूं, तो क्या मैं सत्र 2 से उस डेटा तक पहुंच सकता हूं या नहीं। बस मुझे परिदृश्य & उदाहरण के साथ मार्गदर्शन करें जब हमें सत्र, कैश और प्रोफ़ाइल में डेटा स्टोर करना चाहिए। धन्यवाद

+0

क्या आप इसे देखते हैं? Http: //forums.asp.net/t/983735.aspx –

उत्तर

14

जब आप साइट के प्रदर्शन में सुधार करना चाहते हैं आप आमतौर पर cache का उपयोग करें:, डेटाबेस कॉल को कम फाइल सिस्टम पर फ़ाइलों तक पहुँचने, बाहरी सेवाओं कॉल करना, आदि

Scenario 1: मान लीजिए वहाँ जो किसी पृष्ठ पर सूचीबद्ध करता है एक आवेदन है डेटाबेस में संग्रहीत उत्पादों। उपयोगकर्ताओं को उत्पाद सूची फ़िल्टरिंग सुविधा की आवश्यकता है (उदाहरण के लिए eBay या अमेज़ॅन पर)। यह भी ज्ञात है कि उत्पादों और उत्पाद सुविधाओं की सूची शायद ही कभी उत्पाद सूची पृष्ठ उपयोग की आवृत्ति की तुलना में बदल रही है।

Solution 1: यहां आप डेटाबेस कॉल को कम करने के लिए cache का उपयोग कर सकते हैं। स्मृति में फ़िल्टरिंग करने और अनावश्यक डेटाबेस कॉल से बचने के लिए आपने उत्पाद सूची और उत्पाद सुविधाओं को cache पर रखा है। उत्पाद सूची या सुविधा में परिवर्तन होने पर Cache को अमान्य किया जाना चाहिए। यह समाधान तब तक ठीक होना चाहिए जब तक प्रदर्शन में लाभ की तुलना में स्मृति खपत हैंडलिंग सस्ता हो।

एक अच्छे संसाधन के रूप में मैं ASP.NET Caching: Techniques and Best Practices एमएसडीएन लेख पढ़ने का सुझाव देता हूं।


profile में आप आम तौर पर डेटा जो ठोस उपयोगकर्ता के लिए विशिष्ट है बचाने के लिए और सिस्टम में हर बार लॉग इन पर उपलब्ध होना चाहिए।

Scenario 2: विचार करें आप Scenario 1 में के रूप में ही आवेदन किया है, लेकिन अब आप उपयोगकर्ताओं को अपने फ़िल्टर प्राथमिकताएं (पसंदीदा फ़िल्टर्स की सूची की तरह) को बचाने के लिए की क्षमता प्रदान करने की जरूरत है।

Solution 2: आप एक प्रकार का फ़िल्टर-स्टेट क्लास बना सकते हैं और इसे उपयोगकर्ता profile में संग्रहीत कर सकते हैं। नतीजतन उन फ़िल्टर पैरामीटर बार-बार निर्दिष्ट करने में परेशान नहीं किया जाएगा और इन प्राथमिकताओं में हर बार लॉग उपलब्ध होगी।


Session दुकान उपयोगकर्ता-विशिष्ट जानकारी के लिए प्रयोग किया जाता है कि सभी वेब से सुलभ हो सकता है पेज और अगली बार उपयोगकर्ता लॉग इन करने की आवश्यकता नहीं होगी।

Scenario 3: मान लें कि कुछ ई-कॉमर्स एप्लिकेशन और मार्केटिंग लोग देखना चाहते हैं कि साइट पर क्या हो रहा है, वास्तविक समय में, यानी देखें कि कौन से पृष्ठ देखे गए थे कुछ उपयोगकर्ताओं द्वारा लॉग इन किए जाने पर। इस परिदृश्य पर एक चयनित उपयोगकर्ता गतिविधि स्नैपशॉट के रूप में विचार करें।

Solution 3: यहां आप session का उपयोग करके लॉग इन कर सकते हैं कि उपयोगकर्ताओं द्वारा कौन से यूआरएल गए थे और फिर लोगों को विपणन के लिए रिपोर्ट तैयार करते हैं।

राज्य प्रबंधन के लिए आप अन्य एमएसडीएन आलेख ASP.NET State Management Overview पर भी संदर्भित कर सकते हैं।


Another good answer जो वस्तुओं है कि asp.net अनुप्रयोग राज्य प्रबंधन कर रहे हैं के बीच अंतर पर प्रकाश डाला गया।


आशा है कि इससे आपको थोड़ा सा मदद मिलेगी।

+0

प्रोफ़ाइल सत्र विशिष्ट है ... यदि नहीं तो हम किसी अन्य सत्र से एक प्रोफ़ाइल डेटा तक कैसे पहुंच सकते हैं। क्या आप इसे नमूना कोड के साथ मार्गदर्शन कर सकते हैं। – Thomas

+1

@ थॉमस प्रोफाइल एक उपयोगकर्ता-विशिष्ट डेटा है जो जारी रखा जा सकता है, इसलिए यह सत्रों के बीच खो जाएगा नहीं। डिफ़ॉल्ट प्रोफाइल प्रदाता डेटाबेस में प्रोफाइल डेटा स्टोर करता है। Http://stackoverflow.com/questions/426609/how-to-assign-profile-values ​​पर एक नज़र डालें। इस प्रश्न में कोड नमूने हैं। –