الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أين يتم تخزين قيم المتغيرات في module

مغلق
بدأه bgd في 10 أبريل 2005 · 4 رد · 909 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لقد قمت با ستخدام module وقمت بالتصريح عن بعض المتغيرات العامة باستخدام public

لاستخدامها في كافة صفحات الموقع وعملت مع بشكل سليم وكامل وبدون اخطاء

ولكن عندما قمت بتجربة العمل على السيرفر وكان معي اكثر من شخص يعملون في نفس الوقت حصل امر غريب جداً

اصبح هنا تداخل في المعلومات وسأشرح لكم ما ا قصد بالتحديد

عندما قام المستخدمون بالدخول تم تخزين السجل المدني لكل واحد فيهم في متغير اسمه emp_code

بعد ذلك ينتقل المتصفح الى صفحة اخرى لادراج رغبات انتقال للموظفين واعتمدت على نفس المتغير طبعا لادخال الارغبات

فعندما يقوم احدهم بادخال الرغبة يصادف ان يكون احد الموظفين الاخرين نفذ عملية الدخول وتغيرت قيمة المتغير باسمه

فتصبح رغبات النقل الموجوده عند المستخدم الاول ليست له وانما تسجل للمستخدم الاخير

فلماذا هل قيمة المتغير تخزن في السيرفر ام في ذاكرة المتصفح

بعد ذلك استخدمت طريقة تمرير الباراميترات الى الصفحة الاخرى ونجحت تماما باستخدام querystring

ولكني افضل الطريقة الاولى

ارجوا افادتنا عن طريقة عمل المتغيرات واين يتم تخزين القيم وكيف نحفظ قيمه من التغيير بواسطة مستخدمين اخرين

ولكم الشكر

تم تعديل هذه المشاركة بواسطة bgd في 10 أبريل 2005 في 16:09

#2

وعليكم السلام ورحمة الله وبركاته

يمكنك استخدام الكاش بدل من تعريف متغيرات عامة وهكذا تضمن خصوصية كل مستخدم على حدة

مثال بسيط مثلاً يمكنك تخزين القيمة 1 داخل متغير اسمه emp_code كالآتي :

Cache.Item("") = 1

ولاستعدائها 

emp_code=Cache.Item("emp_code")

وهكذا تضمن خصوصية كل مستخدم ولكن قد تقابل مشاكل في تكرار القيم ، وهذه لها عدة أساليب منها استخدام حقل من نوع IDENTITY ، أو عمل متغير عام يكون READONLY من جهة المستخدم ويقوم بتحديث نفسه ذاتياً عند كل استدعاء ، المهم الأفكار كثيرة فاختر ما يناسبك

وفقك الله تعالى

#3

نسيت وضع متغير في الكاش :)

الصحيح هكذا بدل السطر الأول

Cache.Item("emp_code") = 1

#4

شكرا لك اخي العزيز

لقد جربت الطريقة وعملت معي بشكل ممتاز

لكن لي ملا حظه اخرى على الطريقة

في البداية قمت بتشغيل التطبيق وعمل جيدا ثم اغلقته

قمت بفتح الصفحه التي تم تمرير الطريقة لها مباشرة بدون ان افتح الصفحة الاولى والتي اسندت القيمة منها فوجدت ان القيمة لم تحذف لازالت موجوده من التشغيل الاول للتطبيق

اريد ان اعرف اين يتم تخزين البيانات في هذه الحاله

هل في ذاكرة المتصفح لا اعتقد لان القيمة لم تحذف مع اغلاق المتصفح ام يقوم بانشاء ملفات كوكيز تلقائية ولا يحذفها الا بوقت

شكرا لك اخي محمد ونريد الاستفادة اكثر حول الطريقه

تم تعديل هذه المشاركة بواسطة bgd في 11 أبريل 2005 في 00:24

#5

البرنامج له عنصر كاش واحد فقط ، ويتم الاحتفاظ به في ذاكرة النظام نفسه ، ويظل محتفظا به حتى تحذفه أنت باستخدام remove مثلا او .... يحتاج النظام لموارد إضافية فيقوم هو بمسحه تلقائياً ! لذا يفضل عمل اختبار على الكاش للتأكد من أنها لازالت محتفظة بالقيم مثلاً باستخدام if ....nothing ، المهم أنصحك بقراءة هذا الموضوع جيداً من أحد المصادر لأنه لا يقتصر على ما قلنا

وفقك الله تعالى

هذا الموضوع مغلق.

مواضيع مشابهة