يعرف أي شخص كتب ASP أكبر قليلاً أن الجلسة مفيدة حقًا. ولكن هل تعرف حقًا كيف تعمل الجلسة؟ ربما بعد أن تفهم ، لن تجرؤ أبدًا على استخدام هذا الكائن الكراهية مرة أخرى. على الرغم من أن طريقة التغيير إلى البدائل مزعجة بعض الشيء ، بعد الاعتبارات طويلة الأجل ، يجب أن أفعل ذلك.
أولاً ، دعنا نتحدث عن فوائد الجلسة ، والتي يمكن استخدامها لتسجيل متغيرات البيانات المملوكة ملكية خاصة من قبل العميل ولن تختفي خلال النطاق الزمني. هذه حقًا وظيفة مهمة ، خاصة تلك التي يجب أن تستخدمها الأنظمة التي تحتوي على الأعضاء. على سبيل المثال ، حساب تسجيل الدخول للعضو ، والوقت ، والعديد من البيانات في الوقت الفعلي المسجلة (مثل نظام التسوق يسجل المنتجات في سلة التسوق للمستخدم) ، هذه المعلومات هي الاحتياجات الخاصة لكل مستخدم ، وعادة ما يستخدم المطور سجل جلسة.
ومع ذلك ، تتكون الجلسة في ASP من ملفات تعريف الارتباط ، ويقوم الخادم بنقل جميع المعلومات المسجلة في الجلسة إلى متصفح المستخدم في شكل ملفات تعريف الارتباط. عادةً ما تقوم المتصفحات بحفظ ملفات تعريف الارتباط هذه. هذا هو مبدأ التشغيل للجلسة. إعادة تكوين الذاكرة ، وما إلى ذلك الإجراء الأولي. قد تفكر الآن ، "لا بد من استخدام هذه الوظيفة ، ومع ذلك ، فإن هذا المقال يتحدث عن الجلسة. بالطبع هناك بدائل.
يعد التطبيق أيضًا جيدًا في تسجيل ومعالجة البيانات المؤقتة. لا يشبه التطبيق الجلسة ، التي لا تمرر البيانات إلى المستخدم وانتظر في المرة القادمة لقراءتها عبر الإنترنت.
نظرًا لأن كائنات التطبيق عامة ، فإن أول ما يجب القيام به هو التخطيط لمنطقة مشتركة لكل مستخدم ، بحيث يكون لكل مستخدم مجاله الخاص لتسجيل البيانات لتحقيق الغرض من جلسة المحاكاة. هناك طريقتان للقيام بذلك الآن:
1. تهيئة وتخصيص مساحة ذاكرة المستخدم مقدمًا عند تنشيط الخادم. . ومع ذلك ، هناك قيود. برامج صغيرة مثل غرف الدردشة.
2. يجب اعتبار هذه الطريقة أكثر ملاءمة للتطبيقات الكبيرة. الغرض من هذين الحلول المحاكاة هو تقليل استهلاك موارد الجلسة ، ولكن بعد كل شيء ، لا يزال لا يمكن الاستغناء عنه.
■ الخطة الأولى
أولاً ، نبدأ في تنفيذ الحل الأول.
تم الانتهاء من التهيئة ، ولكن كيفية استخدامه؟ نحتاج فقط إلى تغيير المعلومات المخزنة في الجلسة ، مثل الحساب ووقت تسجيل الدخول ، إلى كائن التطبيق الذي أنشأناه ، حيث يقوم المستخدم بتسجيل الدخول:
| البحث عن مساحة غير مستخدمة ل I = 1 للتطبيق (ClientMax) إذا كان التطبيق (user_status_ & i) = 0 ثم رقم المستخدم المؤقت جلسة (فهرس) = i قفل application application.lock "ضبط على الحالة المستخدمة التطبيق (user_status_ & i) = 1 'وضع في بيانات متغيرة التطبيق (user_account_ & i) = حساب التطبيق (user_logtime_ & i) = الآن () "فتح application.unlock الخروج ل إنهاء إذا التالي |
للحصول على البيانات المتغيرة ذات الصلة للمستخدم ، يشبه ما يلي:
| reponse.write (Application (user_account_ & session (index)) |
قد تجد أنك لا تعني عدم استخدام الجلسة؟ إذن لماذا توجد الجلسة في الكود الأصلي أعلاه؟ كما ذكرنا سابقًا ، لا يمكن أن يحل هذا البديل محل الجلسة. في هذا الوقت ، يتعين علينا الاعتماد على الجلسة. . تحتوي هذه الطريقة على بعض التحسينات ، لكنها تكفي للتطبيقات الصغيرة.
■ الخطة الثانية
فيما يتعلق بالحل السابق ، قد تعتقد أيضًا أن رقمنا المخصص يستخدم الجلسة للتسجيل. هذا صحيح ، بغض النظر عما إذا كنا نريد استخدامه أم لا ، سيساعد الخادم تلقائيًا في تعيين رقم ، ولن يتكرر هذا الرقم. هذا الترقيم هو إجراء ستفعله الجلسة بالتأكيد ، حتى نتمكن من استخدامه لاستبدال برنامج الترقيم الذي نكتبه بأنفسنا ، والذي يوفر جهدًا آخر وحتى لديه توسع أكبر. ولكن في الأساس ، لا يزال الحل الأول أعلاه مفيدًا ، مثل غرف الدردشة التي تحد من عدد الأشخاص والتطبيقات الصغيرة الأخرى.
إذا كان موقع ويب به مئات أو آلاف أو حتى عشرات الآلاف من الأشخاص على موقع ويب كل ثانية ، فلن يعمل بالتأكيد إذا كان يستخدم الحل السابق. لنفترض أنك حددت الحد الأقصى البالغ 10000 شخص ، بمجرد تنشيط الخادم ، سيساعدك على قطع 10،000 منطقة للتحضير لـ 10000 مستخدم. يمثل فقط 320،000 كيلو (320 ميجابايت). قليل ، أعتقد أن 512 ميجابايت منك سيكون كافيًا. لذلك ، يتمثل الحل في تكوين مساحة متغير المستخدم بشكل حيوي ، وقطع قطعة من المساحة عندما يكون المستخدم متصلاً بالخادم ، لذلك ليست هناك حاجة لتكوين ذاكرة ضخمة مقدمًا.
الحل الثاني بسيط نسبيًا.
| "lock applicationapplication.lock" ضع بيانات متغيرة التطبيق (user_account_ & session.sessionid) = حساب التطبيق (user_logtime_ & session.sessionid) = الآن () "إلغاء تأمين Application.unlock |
للحصول على البيانات المتغيرة ذات الصلة للمستخدم ، يشبه ما يلي:
| Response.write (Application (user_account_ & session.sessionid)) |
في الماضي ، قرأت العديد من الكتب التي ذكرت أن الجلسة كان من الصعب للغاية تناول الموارد ، لذلك حاول ألا تستخدمها ، لكن لا يزال يتعين علي استخدامها عندما يتعين عليهم ذلك ، ولم يعلم الكتب حلًا أكثر ملاءمة. الآن عندما تفهم كيفية استبدال الجلسة ، استخدمها جيدًا! ربما يمكن تحسين مشاكل الكفاءة التي تكون مضطربة دائمًا كثيرًا!