في السلسلة المنشورة ، ناقشنا كائنين ASP: كائن التطبيق وكائن الجلسة ، حتى نتمكن من الوصول إلى المجموعات والأساليب والخصائص والأحداث التي يوفرها كائن التطبيق وكائن الجلسة. سيدرس هذا القسم هذين الكائنين من منظور البرمجة.
· قم بإنشاء كائن تطبيق عند تحميل ASP DLL ويتم الرد على الطلب الأول إلى صفحة الويب ASP. يوفر هذا الكائن مكان تخزين لتخزين المتغيرات والكائنات المتاحة لجميع صفحات الويب التي يفتحها جميع الزوار.
· عندما يطلب الزائر صفحة ASP من الموقع لأول مرة ، قم بإنشاء كائن جلسة له ويظل صالحًا حتى فترة المهلة الافتراضية (أو فترة المهلة التي تحددها البرنامج النصي). يوفر الكائن مكان تخزين لتخزين المتغيرات والكائنات المتاحة فقط لصفحات الويب التي يفتحها الزائر أثناء نشاط الجلسة.
العلاقة
1. نظرة عامة على أعضاء كائن تطبيق ASP
يصف هذا القسم جمع وطرق وأحداث كائنات التطبيق (لا تحتوي كائنات التطبيق على خصائص). يتم شرح كائن الجلسة (مع الخصائص) في القسم التالي. بعد ذلك ، سنستمر في استكشاف المهام التي تم إنجازها باستخدام هذه الكائنات ، وشرح بمزيد من التفصيل كيفية عمل كل عضو في كل كائن.
1. جمع كائنات التطبيق
يوفر كائن التطبيق مجموعتين يمكن استخدامه للوصول إلى المتغيرات والكائنات المخزنة في مساحة التطبيق العالمية. المجموعة والوصف على النحو التالي:
جمع ووصف كائنات تطبيق الجدول
| يجتمع | يوضح |
| محتويات | لا توجد مجموعة من جميع المتغيرات (وقيمها) المخزنة في كائن التطبيق المحدد باستخدام عنصر <jounter>. يتضمن إشارات إلى المصفوفات المتغيرة ومثيلات كائن النوع المتغير |
| StaticObjects | مجموعة من جميع المتغيرات (وقيمها) المخزنة في كائن التطبيق المحدد باستخدام عنصر <jound> |
2. طرق كائنات التطبيق
تتيح طريقة كائن التطبيق حذف القيم في مساحة التطبيق العالمية ، والتحكم في الوصول المتزامن إلى المتغيرات داخل تلك المساحة. يتم عرض الطرق والتعليمات في الجدول التالي:
طرق وأوصاف كائنات تطبيق الجدول
| طريقة | يوضح |
| المحتويات. | قم بإزالة متغير اسمه متغير _name من مجموعة Application.Content |
| المحتويات. | قم بإزالة جميع المتغيرات من Application.Content Collection |
| قفل() | قفل كائن التطبيق بحيث يمكن فقط لصفحة ASP الحالية الوصول إلى المحتوى. تستخدم لضمان أن العمليات المتزامنة التي تؤديها الأساليب التي تسمح للمستخدمين بقراءة وتعديل القيمة في وقت واحد لا تفسد المحتوى |
| فتح() | فتح صفحات الويب ASP على كائنات التطبيق |
لاحظ أنه لا يمكن حذف المتغيرات من Application.StaticObjects Collection خلال وقت التشغيل.
3. أحداث كائنات التطبيق
يوفر كائن التطبيق حدثين يتم تشغيلهما عندما يبدأ وينتهي ، كما هو موضح في الجدول التالي:
أحداث وأوصاف كائنات تطبيق الجدول
| حدث | يوضح |
| onstart | يتم تشغيله عند بدء تشغيل ASP ، قبل أن يطلب المستخدم صفحة الويب لتنفيذها وقبل إنشاء أي مستخدم كائن الجلسة. تستخدم لتهيئة المتغيرات أو إنشاء كائنات أو تشغيل رمز آخر |
| بصل | نشأ عندما ينتهي تطبيق ASP. يحدث بعد انتهاء جلسة المستخدم الأخيرة وتم تنفيذ جميع التعليمات البرمجية في الحدث ببربية تلك الجلسة. في نهاية الأمر ، يتم إلغاء جميع المتغيرات الموجودة في التطبيق |
نظرة عامة على كائن جلسة ASP
يحدد هذا القسم جميع أعضاء كائن الجلسة.
1. جمع كائنات الجلسة
يوفر كائن الجلسة مجموعتين يمكن استخدامه للوصول إلى المتغيرات والكائنات المخزنة في مساحة الجلسة المحلية للمستخدم. يتم عرض هذه المجموعات والأوصاف في الجدول التالي:
تعيين ووصف كائنات جلسة الجدول
| يجتمع | يوضح |
| محتويات | مجموعة من جميع المتغيرات وقيمها المخزنة في كائن الجلسة المحدد ، ولا يتم تعريف هذه المتغيرات والقيم باستخدام عناصر <Object>. يتضمن إشارات إلى المصفوفات المتغيرة ومثيلات كائن النوع المتغير |
| StaticObjects | مجموعة من جميع المتغيرات المخزنة في كائن الجلسة المحدد باستخدام عنصر <jound> |
2. خصائص كائنات الجلسة
يوفر كائن الجلسة أربع خصائص. يتم عرض هذه الخصائص والأوصاف في الجدول التالي:
الجدول 3-7 خصائص وأوصاف كائنات الجلسة
| ملكية | يوضح |
| codepage | اقرأ/اكتب. عدد صحيح. يحدد صفحة التعليمات البرمجية لعرض محتوى الصفحة في المتصفح. صفحات التعليمات البرمجية هي قيم رقمية لمجموعة الأحرف ، ويمكن استخدام صفحات التعليمات البرمجية المختلفة بلغات وأماكن مختلفة. على سبيل المثال ، يتم استخدام رمز ANSI صفحة 1252 في اللغة الإنجليزية الأمريكية ومعظم اللغات الأوروبية. يتم استخدام رمز الصفحة 932 للأحرف اليابانية |
| lcid | اقرأ/اكتب. عدد صحيح. يحدد معرف منطقة الصفحة (LCID) المرسلة إلى المتصفح. LCID هو اختصار قياسي دولي يحدد بشكل فريد المنطقة. يمكن أيضًا استخدام LCID في تنسيق العملات والبيانات الأخرى طالما أن هناك معلمة LCID اختيارية. يمكن أيضًا تعيين LCID في تعليمات معالجة ASP <٪ & hellip ؛ ٪> ويأخذ الأسبقية على الإعدادات في سمة LCID للجلسة. يوفر هذا الفصل قائمة بتعليمات معالجة ASP لاحقًا |
| SessionId | قراءة فقط. شكل طويل. إرجاع معرف الجلسة لهذه الجلسة ، والذي يتم إنشاؤه بواسطة الخادم عند إنشاء الجلسة. فريدة من نوعها فقط خلال عمر كائن التطبيق الأصل ، بحيث يمكن إعادة استخدامها عند بدء تطبيق جديد |
| نفذ الوقت | اقرأ/اكتب. عدد صحيح. حدد فترة مهلة في دقائق لهذه الجلسة. إذا لم يقم المستخدم بتحديث أو يطلب صفحة ويب خلال فترة المهلة ، تنتهي الجلسة. يمكنك تعديله حسب الحاجة في كل صفحة ويب. القيمة الافتراضية هي 10 دقائق. يجب أن تكون هذه المرة أقصر في المواقع ذات الاستخدام العالي |
3. طرق كائنات الجلسة
يسمح كائن الجلسة بإزالة القيم المحددة من مساحة الجلسة على مستوى المستخدم وينهي الجلسة حسب الحاجة. يتم عرض طرق وأوصاف كائن الرؤية في الجدول التالي:
طرق وأوصاف كائنات جلسة الجدول
| طريقة | يوضح |
| المحتويات. | قم بإزالة متغير اسمه متغير _name من مجموعة Session.Content |
| المحتويات. | قم بإزالة جميع المتغيرات من Session.Content Collection |
| يتخلى عن() | عند الانتهاء من تنفيذ صفحة الويب ، يتم إنهاء جلسة المستخدم الحالية ويكون كائن الجلسة الحالي غير موثق. ولكن حتى بعد استدعاء الطريقة ، لا يزال من الممكن الوصول إلى متغيرات الجلسة الحالية في الصفحة. عندما يطلب المستخدم الصفحة التالية ، سيتم بدء جلسة جديدة وسيتم إنشاء كائن جلسة جديد (إذا كانت موجودة) لاحظ أنه لا يمكن حذف المتغيرات من مجموعة Session.StaticObjects أثناء وقت التشغيل. |
4. أحداث كائنات الجلسة
يوفر كائن الجلسة حدثين يتم تشغيلهما عند بدء التشغيل والنهاية ، كما هو موضح في الجدول 3-9:
الجدول 3-9 الأحداث وأوصاف كائنات الجلسة
| حدث | يوضح |
| onstart | يتم تشغيله عند بدء جلسة مستخدم ASP ، قبل تنفيذ صفحة الويب المطلوبة للمستخدم. تستخدم لتهيئة المتغيرات ، أو إنشاء كائنات ، أو تشغيل رمز آخر. |
| بصل | يتم تشغيله عندما تنتهي جلسة مستخدم ASP. بدءًا من طلب الصفحة الأخيرة للمستخدم إلى التطبيق ، يتم تشغيل الحدث إذا تم تجاوز فترة مهلة الجلسة المحددة مسبقًا. عندما تنتهي الجلسة ، قم بإلغاء جميع المتغيرات في تلك الجلسة. يتم تشغيل هذا الحدث أيضًا عند استخدام طريقة التخلي لإنهاء جلسة مستخدم ASP في الرمز |
الأحداث التي تستخدم التطبيق والجلسة
تعكس كائنات تطبيق ASP وجلسة الميزات التي لا تملكها كائنات ASP المدمجة الأخرى. ومع ذلك ، كما هو موضح في جدول عضو الكائن السابق ، فهذه أحداث مرتبطة بجلسة ASP وعمل التطبيق.
1. معالجات الأحداث للتطبيق والجلسة
كلما بدأ تطبيق أو جلسة ما ، يؤدي ASP إلى حدوث حدث. يمكن اكتشاف هذه الأحداث والإجابة عليها عن طريق كتابة رمز نص النصي العادي في ملف خاص ، يسمى Global.asa ، الموجود في الدليل الجذر للتطبيق (لموقع الويب الافتراضي هو /inetpub /wwwroot دليل ، أو كمجلد محدد على أنه أ تطبيق حقيقي). يمكن أن يحتوي هذا الملف على عنصر واحد أو أكثر من عناصر HTML المستخدمة لإنشاء مثيلات مكون لاستخدامها في جلسة التطبيق أو المستخدم.
الرمز التالي هو مثال على ملف Global.asa. نركز فقط على العنصر <Object> وخطوط التعليمات البرمجية التي تبدأ بالكلمة الرئيسية المحددة:
| <!- إعلان مثيل مكون ASPCOUNTER مع نطاق مستوى التطبيق //-> < معرف الكائن = aspcounter runat = نطاق الخادم = التطبيق progid = mswc.counters > </كائن > <!- إعلان مثيل مكون AspContentLimk مع نطاق مستوى الجلسة //-> < معرف الكائن = ASPContentLink Runat = نطاق الخادم = الجلسة progid = mswc.nextLink> </كائن > < لغة البرنامج النصي = vbscript runat = الخادم > sub application_onstart () "قم بإنشاء مثيل لمجموعة سجل ADO مع نطاق مستوى التطبيق تعيين التطبيق (adoconnection) = server.createBject (adodb.connection) Dim vararray (3) 'قم بإنشاء صفيف متغير واملأه vararray (0) = هذا أ فاراراي (1) = صفيف متغير vararray (2) = مخزنة في vararray (3) = كائن التطبيق التطبيق (variant_array) = vararray'store في التطبيق التطبيق (start_time) = CSTR (الآن) "قم بتخزين التاريخ/الوقت كسلسلة التطبيق (زيارة _count) = 0 'تعيين متغير مضاد إلى صفر نهاية الفرعية sub application_onend () قم بتعيين التطبيق (Adoconnection) = لا شيء نهاية الفرعية sub sesson_onstart () "قم بإنشاء مثيل لمكون AdroTator مع نطاق مستوى الجلسة Set Session (Aspadrotator) = server.createBject (mswc.adrotator) Dim vararray (3) 'إنشاء ARRY البديل واملأه vararray (0) = هذا أ فاراراي (1) = صفيف متغير vararray (2) = مخزنة في vararray (3) = كائن الجلسة الجلسة (variant_array) = vararray 'تخزينها في الجلسة الجلسة (start_time) = CSTR (الآن) "قم بتخزين التاريخ/الوقت كسلسلة "يمكننا الوصول إلى محتويات الطلب والاستجابة في session_onstart "معالج الأحداث للصفحة التي بدأت الجلسة. مكان أن سياق صفحة ASP متاح مثل هذا. على سبيل المثال ، يمكننا الحصول على عنوان IP للمستخدم: الجلسة (your_ip_address) = request.ServerVariables (Remote_Addr) application.lock intvisits = التطبيق (visit_count) +1 التطبيق (Visit_Count) = Intvisits application.unlock نهاية الفرعية Sub Session_onend () تعيين الجلسة (aspadrotator) = لا شيء نهاية الفرعية </السيناريو > |
نظرًا لأن ملف Global.ASA يستخدم في صفحة المثال في هذا الفصل ، سيكون من الضروري وضع الملف في الدليل الجذر لموقع الويب ، أو في دليل تم تكوينه كتطبيق افتراضي ، وتضمين ملفات العينة الأخرى .
قراءة وتخزين القيم
لاحظ المثال أعلاه كيفية قراءة متغيرات التطبيق والجلسة ، بنفس الطريقة التي تأخذ بها مجموعة من كائنات الطلب والاستجابة. اضبط قيم هذه المتغيرات:
| التطبيق (variable_name) = variable_value Application (variable_name) = variable_array_variable_name تعيين التطبيق (variable_name) = object_reference |
احصل على قيم هذه المتغيرات:
| variable_value = application (variable_name) variant_array_variable = application (variable_name) تعيين Object_Reference = Application (variable_name) |
بالطبع ، يمكن اتباع نفس النهج لكائنات الجلسة.
يمكنك معرفة كيفية قفل وكائن التطبيق عند الوصول إليه من معالج حدث الجلسة ؛ هذا غير مطلوب عند الوصول إلى القيم في كائنات التطبيق باستخدام الكود داخل أحداث التطبيق. هذا لأنه في أي تطبيق لا يوجد سوى مثيل واحد من كائن التطبيق ، ويتم تنفيذ رمز معالج الأحداث الخاص به فقط عندما لا توجد جلسة مستخدم نشطة.
يمكنك أيضًا معرفة كيفية تنفيذ عداد جلسة المستخدم الأساسية. فيما يلي شركة Visit_Count على مستوى التطبيق ، والتي يتم زيادتها تلقائيًا عند بدء جلسة جديدة. بشكل عام ، لا يقتصر الأمر على حفظ القيم في كائنات التطبيق أو الجلسة. على سبيل المثال ، يحتوي موقع الويب الخاص بـ Web Developer على ملف Global.ASA المقابل على http://webdev.wrox.co.uk يتم الحصول عليها من مجموعة request.servervariables. يوفر هذا طريقة أساسية لحساب عدد الزوار وجمع بعض المعلومات الأساسية حول الزوار.