في المقالة السابقة ، قدم المؤلف بالتفصيل كيفية استخدام استجابة كائن ASP المدمجة في هذه المقالة.
بالإضافة إلى الكائنات المستخدمة لإرسال البيانات وتلقيها ومعالجتها ، هناك أيضًا بعض الكائنات العملية التي تمثل تطبيقات الخادم النشطة ومعلومات المستخدم الفردية في ASP.
لنلقي نظرة على كائن التطبيق أولاً. جميع ملفات .asp في نفس الدليل الظاهري ومؤشراتها الفرعية تشكل تطبيق ASP. بدلاً من استخدام كائنات التطبيق ، يمكننا مشاركة المعلومات بين جميع مستخدمي تطبيق معين وحفظ البيانات باستمرار أثناء تشغيل الخادم. علاوة على ذلك ، يحتوي كائن التطبيق أيضًا على طرق للتحكم في الوصول إلى بيانات وأحداث على مستوى التطبيق والتي يمكن استخدامها لإحداث عملية عند بدء تشغيل التطبيق وتوقفه.
دعنا نتعرف على كائنات التطبيق معًا.
1. سمات
على الرغم من أن كائن التطبيق لا يحتوي على خصائص مدمجة ، إلا أنه يمكننا تعيين خصائص محددة من قبل المستخدم باستخدام بناء الجملة التالي ، والتي يمكن أن تسمى أيضًا مجموعات.
التطبيق (خاصية/اسم المجموعة) = القيمة
يمكننا الإعلان وإنشاء خصائص كائن التطبيق باستخدام البرنامج النصي التالي.
<٪
التطبيق (myvar) = مرحبا
تعيين التطبيق (myobj) = server.createBject (myComponent)
٪>
بمجرد تعيين خصائص كائن التطبيق ، يستمر حتى يتم إيقاف تشغيل خدمة خادم الويب حتى يتوقف التطبيق. نظرًا لأن القيم المخزنة في كائن التطبيق يمكن قراءة جميع مستخدمي التطبيق ، فإن خصائص كائن التطبيق مناسبة بشكل خاص لتمرير المعلومات بين مستخدمي التطبيق.2. الطريقة
تحتوي كائنات التطبيق على طريقتان ، وكلاهما يستخدم للتعامل مع العديد من المستخدمين الذين يكتبون البيانات المخزنة في التطبيق
1. تمنع طريقة القفل العملاء الآخرين من تعديل خصائص كائن التطبيق.
تمنع طريقة القفل العملاء الآخرين من تعديل المتغيرات المخزنة في كائن التطبيق للتأكد من أنه يمكن لعميل واحد فقط تعديل متغيرات التطبيق والوصول إليه في نفس الوقت. إذا لم يتصل المستخدم بشكل صريح بطريقة إلغاء القفل ، فسيقوم الخادم بإلغاء قفل كائن التطبيق بعد انتهاء ملف .asp.
دعنا نلقي نظرة على البرنامج التالي الذي يستخدم التطبيق لتسجيل عدد الوصول إلى الصفحة:<٪
dim numvisitsnumvisits = 0
application.lockapplication (numVisits) = Application (numVisits) + 1
application.unlock
٪>
مرحبًا بك في هذه الصفحة ، أنت <٪ = Application (numVisits) ٪> زائر في هذه الصفحة!
احفظ البرنامج النصي أعلاه في ملف .asp الخاص بك وأضف عدادًا إلى صفحتك بسهولة.
2. على عكس طريقة القفل ، تتيح طريقة إلغاء القفل للعملاء الآخرين تعديل خصائص كائن التطبيق.
في المثال أعلاه ، في المثال أعلاه ، تقوم طريقة إلغاء القفل بإلغاء تأمين الكائن بحيث يمكن للعميل التالي زيادة قيمة Numvisits.
ثالثا
1. application_onstart
يحدث حدث Application_onstart قبل إنشاء جلسة جديدة (أي حدث Session_onstart). يتم تشغيل حدث Application_onstart عند بدء تشغيل خادم الويب ويسمح للطلبات بالملفات الموجودة في التطبيق. يجب كتابة معالجة حدث Application_onstart في ملف Global.ASA.بناء الجملة لحدث Application_onstart هو كما يلي:
<script language = scriptLanguage runat = server>
Sub Application_onstart.
نهاية الفرعية
< /script>
2. applicati
ON_ONEND
يحدث حدث Application_onend بعد حدث Session_onend عندما يخرج التطبيق.
دعنا نلقي نظرة على بعض الأشياء التي يجب الاهتمام بها عند استخدام كائنات التطبيق.
لا يمكن تخزين الكائنات المدمجة في ASP في كائنات التطبيق. على سبيل المثال ، يقوم كل سطر أدناه بإرجاع خطأ.
<٪
تعيين التطبيق (var1) = الجلسة
تعيين التطبيق (var2) = طلب
تعيين التطبيق (var3) = استجابة
تعيين التطبيق (var4) = الخادم
تعيين التطبيق (var5) = التطبيق
تعيين التطبيق (var6) = ObjectContext
٪>
إذا قمت بتخزين صفيف في كائن تطبيق ، فلا تقم بتغيير العناصر المخزنة في الصفيف مباشرة. على سبيل المثال ، لا يمكن تشغيل البرنامج النصي التالي.
<٪ Application (StoredRray) (3) = قيمة جديدة ٪>
هذا لأنه يتم تنفيذ كائن التطبيق كمجموعة. عنصر Array Storedarray (3) لم يتم الحصول على مهمة جديدة. سيتم تضمين هذه القيمة في مجموعة كائن التطبيق وسوف تكتب أي معلومات تم تخزينها مسبقًا في هذا الموقع. يوصى بالحصول على نسخة من الصفيف قبل استرداد أو تغيير الكائنات في الصفيف عند تخزين الصفيف في كائن التطبيق. عند التشغيل على صفيف ، يجب عليك تخزين جميع المصفوفات في كائن التطبيق بحيث سيتم تخزين أي تغييرات تقوم بإجراءها. البرنامج النصي التالي يوضح هذا.
--- ASP8A.asp ---
<٪
قاتمة myarray ()
redim myarray (5)
myarray (0) = مرحبًا
myarray (1) = بعض السلسلة الأخرى
application.lock
التطبيق (storedarray) = myarray
application.unlock
استجابة
٪>
--- asp8b.asp ---
<٪
localarray = التطبيق (storedarray)
localarray (1) = هناك
Response.write localarray (0) & localarray (1)
application.lock
التطبيق (StoredArray) = LocalArray
application.unlock
٪>
هناك كائن مضمن آخر من ASP المدمج الذي يحتوي على وظائف مماثلة لكائنات التطبيق هو الجلسة. يمكننا استخدام كائن الجلسة لتخزين المعلومات اللازمة لجلسة مستخدم معينة. عندما يقفز المستخدم بين صفحات التطبيق ، لا يتم مسح المتغيرات المخزنة في كائن الجلسة ، وهذه المتغيرات موجودة دائمًا عندما يصل المستخدم إلى الصفحة في التطبيق. عندما يطلب المستخدم صفحة ويب من التطبيق ، إذا لم يكن لدى المستخدم جلسة ، فسيقوم خادم الويب تلقائيًا بإنشاء كائن جلسة. عندما تنتهي صلاحية الجلسة أو يتم التخلي عنها ، يقوم الخادم بإنهاء الجلسة.
يمكن إدارة كائنات الجلسة على الخادم عن طريق إرسال ملفات تعريف الارتباط الفريدة إلى برنامج العميل. عندما يطلب المستخدم صفحة في تطبيق ASP لأول مرة ، يتحقق ASP من معلومات رأس HTTP لمعرفة ما إذا كان هناك ملف تعريف ارتباط باسم AspsessionId في الرسالة. قيمة الجلسة ، وإرسال هذه القيمة إلى العميل كقيمة لملفات تعريف الارتباط AspsessionId الجديدة. الوظيفة الأكثر شيوعًا لكائن الجلسة هي تخزين تفضيلات المستخدم. على سبيل المثال ، إذا أشار المستخدم إلى أنه لا يحب عرض الرسومات ، فيمكنه تخزين المعلومات في كائن جلسة. بالإضافة إلى ذلك ، يتم استخدامه غالبًا في البرامج التي تحدد العملاء. تجدر الإشارة إلى أن حالة الجلسة يتم الاحتفاظ بها فقط في المتصفحات التي تدعم ملفات تعريف الارتباط ، وإذا أوقف العميل خيار ملف تعريف الارتباط ، فلن تعمل الجلسة.
1. سمات
1. SessionId
SES
تُرجع خاصية Sionid هوية جلسة المستخدم. عند إنشاء جلسة ، يقوم الخادم بإنشاء هوية منفصلة لكل جلسة. يتم إرجاع معرف الجلسة كنوع بيانات ممدود. في كثير من الحالات ، يمكن استخدام SessionId لإحصائيات تسجيل صفحة الويب.
2. مهلة
تحدد خاصية المهلة المهلة المهلة المهلة لكائن الجلسة في التطبيق في دقائق. إذا لم يقم المستخدم بتحديث أو يطلب صفحة ويب خلال فترة المهلة هذه ، فستنتهي الجلسة.
2. الطريقة
هناك طريقة واحدة فقط لكائن الجلسة ، والتي يتم التخلي عنها. إذا لم تتصل بشكل صريح بطريقة التخلي ، فسيقوم الخادم بحذف هذه الكائنات بمجرد توقيت الجلسة. عندما ينتهي الخادم من معالجة الصفحة الحالية ، يطلق المثال التالي حالة الجلسة.
<٪ session.abandon ٪>
ثالثا
يحتوي كائن الجلسة على حدثان يمكن استخدامهما عند بدء تشغيل كائن الجلسة وإطلاقه.
1. يحدث حدث Session_onstart عندما ينشئ الخادم جلسة جديدة. يقوم الخادم بمعالجة البرنامج النصي قبل تنفيذ الصفحة المطلوبة. يعد حدث Session_onstart أفضل وقت لتعيين متغيرات الجلسة ، لأنه يتم تعيينها قبل الوصول إلى أي صفحات.
على الرغم من أن كائن الجلسة يبقى عندما يحتوي حدث Session_onstart على استدعاء طريقة إعادة التوجيه أو النهاية ، فإن الخادم يتوقف عن معالجة ملف Global.ASA ويؤدي إلى تشغيل البرنامج النصي في الملف الذي يؤدي إلى حدوث حدث Session_onstart.
للتأكد من أن المستخدم يبدأ دائمًا جلسة عند فتح صفحة ويب معينة ، يمكن استدعاء طريقة إعادة التوجيه في حدث Session_onstart. عندما يدخل المستخدم التطبيق ، يقوم الخادم بإنشاء جلسة للمستخدم ومعالجة برنامج Session_onstart Event Script. يمكنك تضمين البرنامج النصي في هذا الحدث للتحقق مما إذا كانت الصفحة التي فتحها المستخدم هي صفحة بدء تشغيل ، وإذا لم يكن الأمر كذلك ، قم بتوجيه المستخدم للاتصال بالطريقة Response.redirect لبدء صفحة الويب. الإجراء كما يلي:
<script runat = server language = vbscript>
Sub Session_onstart
startPage = /myapp/starthere.asp
CurrentPage = request.ServerVariables (Script_Name)
إذا كان STROCMP (CurrentPage ، startPage ، 1) ثم
استجابة.
إنهاء إذا
نهاية الفرعية
< /script>
يمكن للبرامج أعلاه تشغيل فقط في المتصفحات التي تدعم ملفات تعريف الارتباط. نظرًا لأن المتصفحات التي لا تدعم ملفات تعريف الارتباط لا يمكنها إرجاع ملفات تعريف الارتباط SessionId ، فإن الخادم ينشئ جلسة جديدة كلما طلب المستخدم صفحة ويب. وبهذه الطريقة ، لكل خادم يطلب ، سيتم معالجة البرنامج النصي Session_onstart وسيتم إعادة توجيه المستخدم إلى صفحة بدء التشغيل.
2. يحدث حدث Session_onend أو توقيته أثناء الجلسة.
الأشياء التي يجب ملاحظتها حول استخدام كائنات الجلسة.
يمكن بدء الجلسة بالطرق الثلاث التالية:
1. يطلب المستخدم الجديد الوصول إلى عنوان URL الذي يحدد ملف .asp في التطبيق ، ويحتوي ملف Global.ASA للتطبيق على عملية SATE_ONSTART.
2. يقوم المستخدم بتخزين قيمة في كائن الجلسة.
3. طلب المستخدم ملف .asp للتطبيق ، ويستخدم ملف Application Global.ASA علامة <Object> لإنشاء مثيل لكائن مع نطاق جلسة.
إذا لم يطلب المستخدم أو يقوم بتحديث أي صفحات في التطبيق خلال الوقت المحدد ، فستنتهي الجلسة تلقائيًا. القيمة الافتراضية لهذه الفترة هي 20 دقيقة. يمكنك تغيير إعدادات حد المهلة الافتراضية للتطبيق عن طريق تعيين خاصية مهلة الجلسة في صفحة خاصية خيارات التطبيق في مدير خدمة الإنترنت. يجب تعيين هذه القيمة وفقًا لمتطلبات تطبيق الويب الخاص بك ومساحة ذاكرة الخادم. على سبيل المثال ، إذا كنت تريد أن يبقى المستخدمون الذين يرغبون في تصفح تطبيق الويب الخاص بك على كل صفحة لبضع دقائق فقط ، فيجب عليك تقصير قيمة المهلة الافتراضية لجلستك. ستؤدي قيمة مهلة الجلسة الطويلة المفرطة إلى الكثير من الجلسات المفتوحة وتستنفد موارد ذاكرة الخادم الخاصة بك. بالنسبة لجلسة محددة ، إذا كنت ترغب في تعيين قيمة مهلة أصغر من قيمة المهلة الافتراضية ، فيمكنك تعيين كائن الجلسة
الممتلكات المهلة. على سبيل المثال ، يقوم البرنامج النصي التالي بتعيين قيمة المهلة إلى 5 دقائق.
<٪ session.timeout = 5 ٪>
بالطبع ، يمكنك أيضًا تعيين قيمة مهلة أكبر من الإعداد الافتراضي. يمكنك أيضًا إنهاء الجلسة بشكل صريح من خلال طريقة التخلي عن كائن الجلسة. على سبيل المثال ، قم بتوفير زر خروج في الجدول ، وقم بتعيين معلمة الإجراء الخاصة بالزر على عنوان URL لملف .asp الذي يحتوي على الأوامر التالية.
<٪ session.abandon ٪>
اليوم ، تعلمنا كائنين مدمجين غالبًا ما يستخدمان ASP على صفحات الويب ، وخاصة على BBS القائم على الويب أو الدردشة. . يرجى الانتباه إلى تصميم فنون القتال الثمانية عشر لتصميم موقع الويب الديناميكي-ASP (9).