موصى به: تفسير كيفية استخدام متغيرات كائن الجلسة بشكل صحيح في ASP يعرف أي شخص يستخدم ASP أن كائن جلسة يخزن المعلومات اللازمة لجلسة مستخدم محددة ، وعندما يقفز المستخدم بين صفحات التطبيق ، لا يتم مسح المتغيرات المخزنة في كائن الجلسة ، وتكون هذه المتغيرات موجودة دائمًا عندما يصل المستخدم إلى الصفحة في التطبيق. يمكن أن يقلل من تعقيد البرنامج وتحسين كفاءة البرمجة ، ولكنه يحتوي أيضًا على العديد من أوجه القصور.
1. سمات1. SessionId
تُرجع خاصية SessionID هوية جلسة المستخدم. عند إنشاء جلسة ، يقوم الخادم بإنشاء هوية منفصلة لكل جلسة. يتم إرجاع معرف الجلسة كنوع بيانات ممدود. في كثير من الحالات ، يمكن استخدام SessionID لإحصائيات تسجيل صفحة الويب.
2. مهلة
تحدد خاصية المهلة المهلة المهلة المهلة لكائن الجلسة في التطبيق في دقائق. إذا لم يقم المستخدم بتحديث أو يطلب صفحة ويب خلال فترة المهلة هذه ، فستنتهي الجلسة.
2. الطريقة
لا يوجد سوى طريقة واحدة لكائنات الجلسة ، والتي تتخلى عنها. تحذف طريقة التخلي عن جميع الكائنات المخزنة في كائنات الجلسة وتطلق مصدر هذه الكائنات. إذا لم تتصل بشكل صريح بطريقة التخلي ، فسيقوم الخادم بحذف هذه الكائنات بمجرد توقيت الجلسة. عندما ينتهي الخادم من معالجة الصفحة الحالية ، يطلق المثال التالي حالة الجلسة.
<٪ session.abandon ٪>
ثالثا. الأحداث
يحتوي كائن الجلسة على حدثان يمكن استخدامهما عند بدء تشغيل كائن الجلسة وإطلاقه.
1. يحدث حدث Session_onstart عندما ينشئ الخادم جلسة جديدة. يقوم الخادم بمعالجة البرنامج النصي قبل تنفيذ الصفحة المطلوبة. يعد حدث Session_onstart أفضل وقت لتعيين متغيرات الجلسة ، لأنه يتم تعيينها قبل الوصول إلى أي صفحات.
على الرغم من أن كائن الجلسة يبقى عندما يحتوي حدث Session_onstart على مكالمات إعادة التوجيه أو النهاية ، فإن الخادم سيتوقف عن معالجة ملف Global.ASA ويؤدي إلى تشغيل البرنامج النصي في الملف الذي يؤدي إلى حدوث حدث Session_onstart.
للتأكد من أن المستخدم يبدأ دائمًا جلسة عند فتح صفحة ويب معينة ، يمكن استدعاء طريقة إعادة التوجيه في حدث Session_onstart. عندما يدخل المستخدم التطبيق ، يقوم الخادم بإنشاء جلسة للمستخدم ومعالجة برنامج Session_onstart Event Script. يمكنك تضمين البرنامج النصي في هذا الحدث للتحقق مما إذا كانت الصفحة التي فتحها المستخدم هي صفحة بدء تشغيل ، وإذا لم يكن الأمر كذلك ، قم بتوجيه المستخدم للاتصال بالطريقة Response.redirect لبدء صفحة الويب. الإجراء كما يلي:
<scriptrunat = serverLanguage = vbscript>
SUPERESSING_ONSTART
startPage =/myapp/starthere.asp
CurrentPage = request.ServerVariables (Script_Name)
Ifstrcomp (CurrentPage ، startPage ، 1) ثم
استجابة.
Endif
ينتهي
</script>
يمكن للبرامج أعلاه تشغيل فقط في المتصفحات التي تدعم ملفات تعريف الارتباط. نظرًا لأن المتصفحات التي لا تدعم ملفات تعريف الارتباط لا يمكنها إرجاع SessionIdCookies ، فإن الخادم ينشئ جلسة جديدة كلما طلب المستخدم صفحة ويب. وبهذه الطريقة ، لكل خادم يطلب ، سيتم معالجة البرنامج النصي Session_onstart وسيتم إعادة توجيه المستخدم إلى صفحة بدء التشغيل.
2. يحدث حدث Session_onend عندما يتم التخلي عن الجلسة أو توقيتها.
فيما يتعلق بالمسائل التي تحتاج إلى الانتباه إليها عند استخدام كائنات الجلسة ، يرجى الرجوع إلى المقالة السابقة.
يمكن بدء الجلسة بالطرق الثلاث التالية:
1. يطلب المستخدم الجديد الوصول إلى عنوان URL الذي يحدد ملف .asp في التطبيق ، ويحتوي ملف Global.ASA للتطبيق على عملية SATE_ONSTART.
2. يقوم المستخدم بتخزين قيمة في كائن الجلسة.
3. طلب المستخدم ملف .asp للتطبيق ، ويستخدم ملف Application Global.ASA علامة <Object> لإنشاء مثيل لكائن مع نطاق جلسة.
إذا لم يطلب المستخدم أو يقوم بتحديث أي صفحات في التطبيق خلال الوقت المحدد ، فستنتهي الجلسة تلقائيًا. القيمة الافتراضية لهذه الفترة هي 20 دقيقة. يمكن تغيير إعدادات حد المهلة الافتراضية للتطبيق عن طريق تعيين خاصية مهلة الجلسة في صفحة خاصية خيارات التطبيق في مدير خدمة الإنترنت. يجب تعيين هذه القيمة وفقًا لمتطلبات تطبيق الويب الخاص بك ومساحة ذاكرة الخادم. على سبيل المثال ، إذا كنت تريد أن يتصفح المستخدمون تطبيق الويب الخاص بك على كل صفحة لبضع دقائق فقط ، فيجب عليك تقصير قيمة المهلة الافتراضية لجلستك. ستؤدي قيمة مهلة الجلسة الطويلة المفرطة إلى الكثير من الجلسات المفتوحة وتستنفد موارد ذاكرة الخادم الخاصة بك. بالنسبة لجلسة محددة ، إذا كنت ترغب في تعيين قيمة مهلة أصغر من قيمة المهلة الافتراضية ، فيمكنك تعيين خاصية المهلة لكائن الجلسة. على سبيل المثال ، يقوم البرنامج النصي التالي بتعيين قيمة المهلة إلى 5 دقائق.
<٪ session.timeout = 5 ٪>
بالطبع ، يمكنك أيضًا تعيين قيمة مهلة أكبر من الإعداد الافتراضي. تحدد خاصية Session.TimeOut قيمة المهلة. يمكنك أيضًا إنهاء الجلسة بشكل صريح من خلال طريقة التخلي عن كائن الجلسة. على سبيل المثال ، قم بتوفير زر خروج في الجدول ، وقم بتعيين معلمة الإجراء الخاصة بالزر على عنوان URL لملف .asp الذي يحتوي على الأوامر التالية.
<٪ session.abandon ٪>
المشاركة: كيف يمنع ASP التقديمات المتكررة للنماذج غالبًا ما يواجه المستخدمون بعض المواقف غير المتوقعة عند تقديم النماذج ، مثل تحديث الصفحة عدة مرات ، والضغط على مفتاح الخلفية ، وما إلى ذلك ، إذا لم يتم اتخاذ تدابير التحكم ، فسوف يتسبب ذلك في مشكلة تقديم النموذج المتكرر. تتكون طريقة الوقاية التي تم تقديمها في هذه المقالة بشكل أساسي من أربعة روتين فرعي. في التطبيقات البسيطة نسبيًا ، تحتاج فقط إلى وضع هذه الرموز في الملف المضمّن والإشارة إليها مباشرة ؛ لهؤلاء