في المقالة السابقة ، قدم المؤلف بالتفصيل طريقتين عمليتين للغاية لاستخدام تطبيق وجلسة الكائنات المدمجة ASP. نظرًا لأنه يجب الإعلان عن كل من البرامج النصية للأحداث ONSTART و PENEND في ملف Global.ASA ، ستقدم هذه المقالة بالتفصيل كيفية استخدام ملف Global.ASA. من أجل تمكين الجميع من إتقان المعرفة التي تعلموها حتى الآن ، ستتضمن هذه المقالة أيضًا برنامج دردشة ASP للرجوع إليه.
في الآونة الأخيرة ، أرسل لي العديد من الأصدقاء خطابًا ليسألني عن سبب وجود مثل هذه الأخطاء عند تشغيل برنامج المثال في أول مسألتين. بادئ ذي بدء ، أود أن أعلن لك أن هذه البرامج مكتوبة بنفسي وأنها اجتازت فحص التأهيل قبل مغادرة المصنع ، ولا توجد منتجات مزيفة وريدي. :) نظرًا لاستخدام ملفات تعريف الارتباط في البرنامج لتسجيل معلومات العميل ، إذا لم تقم بتعيين ملفات تعريف الارتباط في متصفحك ، فلن يتم تشغيل البرنامج بشكل طبيعي. بالإضافة إلى ذلك ، يجب كتابة هذه البيان قبل أن يتم كتابة هذا البيان قبل أن يتم كتابة هذا البيان قبل أن يتم كتابة هذه البيان قبل أن يتم كتابة هذا البيان قبل أن يتم كتابة هذا البيان قبل أن يتم كتابة هذه البيان قبل أن تُكتب هذه البيان قبل أن يتمثل هذا في مجال معلومات ASP ، يجب أن تكون الطريقة التي يطًم أن العائد الجًبً على إنكًً إن الطريقة التيار الأمريكية HTTP إذا تم نقل معلومات رأس HTTP إلى العميل ، إذا تم استخدام reponse.cookie بعد إرسال معلومات رأس HTTP إلى العميل ، سيظهر الخطأ التالي: لقد تمت كتابة رأس HTTP إلى متصفح العميل. يجب أن يكون أي تعديل لرأس HTTP قبل الكتابة إلى محتوى الصفحة. ، قد لا ينتبه بعض الأصدقاء عند قطع البرنامج ، أو تعطيل ترتيب ما قبل وخلفي للبرنامج ، أو إضافة رمز HTML بشكل غير صحيح قبل برنامج عينة ASP ، مما يؤدي إلى خطأ في تشغيل البرنامج. لذلك ، أقترح أنه من ناحية ، لا تقوم بأي تغييرات على البرنامج عند تشغيل الروتين لأول مرة ، وتحاول تحسينه تدريجياً على فهم البرنامج. يجب على الأقل تحديد ملفات تعريف الارتباط المقبولة في المتصفح.
بعد ذلك ، سأقدم لك كيفية استخدام ملف Global.asa.
ما هو ملف global.asa؟ إنه في الواقع ملف اختياري حيث يمكن لكاتب البرنامج تحديد البرامج النصية للأحداث وإعلان الكائنات مع نطاقات الجلسة والتطبيق. لا يتم استخدام محتويات هذا الملف لعرضها على المستخدم ، ولكن لتخزين معلومات الحدث والكائنات المستخدمة عالميًا بواسطة التطبيق. يجب أن يكون اسم الملف global.asa ويجب تخزينه في الدليل الجذر للتطبيق. يمكن أن يكون لكل تطبيق ملف Global.ASA واحد فقط.
في ملف Global.ASA ، إذا لم يتم تغليف البرنامج النصي المضمّن باستخدام علامة <script> ، أو أن الكائن المحدد لا يحتوي على نطاق جلسة أو تطبيق ، فإن الخادم يعيد خطأً. يمكننا كتابة البرامج النصية المدرجة في ملف Global.asa في أي لغة تدعم البرنامج النصي. إذا كانت أحداث متعددة في نفس لغة البرمجة النصية ، فيمكن تنظيمها في مجموعة من علامات <script>.
لا يمكن استدعاء العملية المعلنة في ملف Global.asa إلا من واحد أو أكثر من البرامج النصية المتعلقة بأحداث Application_onstart و Application_onend و Session_onstart و Session_onend. فهي غير متوفرة في صفحة ASP للتطبيقات المستندة إلى ASP. إذا كنت ترغب في مشاركة الإجراءات بين التطبيقات ، فيمكنك إعلانها في ملف منفصل ثم استخدام عبارة إدراج من جانب الخادم (SSI) لتضمين الملف في برنامج ASP الذي يطلق الإجراء. بشكل عام ، يجب أن يكون تمديد الملف المحتوي.
فيما يلي ملف Global.ASA قياسي للغاية:
<script language = vbscript runat = server>
يتم تشغيل Session_onstart عندما يقوم العميل أولاً بتشغيل أي صفحة في تطبيق ASP
"Session_onend يتم تشغيله عند توقيت جلسة العميل أو يخرج من التطبيق
يتم تشغيل application_onstart عندما يصل أي عميل أولاً إلى الصفحة الرئيسية للتطبيق
يتم تشغيل Application_onend عندما ينخفض خادم الويب الخاص بالموقع
< /script>
<script language = vbscript runat = server>
sub application_onstart
VisitorCountFilename = server.mappath ( /ex2) + /visitcount.txt
set fileObject = server.createObject (scripting.filesystemObject)
set out = fileObject.OpentExtFile (VisitorCountFilename ، 1 ، false ، false)
التطبيق (الزوار) = Out.ReadLine
التطبيق (VisitorCountFilename) = VisitorCountFilename
نهاية الفرعية
'================================================= ================== ==========
sub application_onend
set fileOutObject = server.createBject (scripting.filesystemObject)
set out = fileOutObject.CreateTextFile (التطبيق (VisitorCountFilename) ، صواب ، خطأ)
Out.WriteLine (التطبيق (الزوار))
نهاية الفرعية
'================================================= =================== ========== SUB SESSION_ONSTART
Session.Timeout = 5
التطبيق (الزوار) = التطبيق (الزوار) + 1
جلسة (معرف) = Session.SessionId
نهاية الفرعية
< /script>
في برنامج Global.ASA هذا ، يشارك مكون الوصول إلى ملف ASP ، والذي يوفر الأساليب والخصائص والمجموعات للوصول إلى نظام الملفات. سيتم مناقشة هذا في مكونات ASP المستقبلية. هنا ، يعمل على إنشاء ملفات جديدة على الخادم والكتابة إلى الملفات. هذا في الواقع ملف عالمي لتطبيق ASP للوصول إلى صفحات ASP. مسار ومحتوى الملف في متغيرات مستوى التطبيق. عندما يقوم أي عميل بالوصول إلى أي صفحة في تطبيق ASP ، فإن تعريف Process Session_onstart يضيف تلقائيًا قيمة الزوار المتغير على مستوى التطبيق. وبهذه الطريقة ، عندما يزور العميل الصفحة ، سيتم إضافة الزوار المتغير تلقائيًا إلى وظيفة حساب معدل النقر إلى الظهور. نظرًا لأن قيمة الزوار المتغيرة يتم تخزينها في ذاكرة النظام ، إذا تم إيقاف الخادم أو إعادة تشغيله ، فسيتم ضياع البيانات المخزنة في المتغير تلقائيًا. يتم إيقاف تشغيل الخادم أو إعادة تشغيله.
بعد هذه الفترة من الدراسة ، أعتقد أن كل شخص قادر على استخدام كائنات ASP المدمجة التي تعلمناها في كتابة بعض تطبيقات ASP الأكثر بساطة. تطوير بعض تطبيقات ASP البسيطة ولكن العملية. اسمحوا لي أن أعطيك برنامجًا بسيطًا للغاية لـ ASP Web Room. ربما رأى الأصدقاء كيفية كتابة برامج دردشة ASP في بعض المجلات ، لكن المؤلف كتب برنامجًا أبسط هنا ، باستخدام ملف .asp واحد فقط. يرجى قص الرمز التالي في المفكرة وحفظه على أنه chat.asp.
<٪@ language = vbscript ٪>
<٪
استجابة. buffer = true 'قم بتعيين ذاكرة التخزين المؤقت للإخراج لعرض صفحات مختلفة.
عند استئناف الخطأ التالي ، تجاهل جزء خطأ البرنامج
إذا كان request.ServerVariables (request_method) = الحصول عليه ثم
حدد كيفية طلب العميل إلى صفحة الويب
'------------------------------------------- ------------------------------------------------- --------------------------
واجهة تسجيل الدخول إلى العملاء
'------------------------------------------- ------------------------------------------------- --------------------------
٪>
<form method = post action = chat.asp> <p>
<type type = text name = nick size = 20 value = nick style = background-color: rgb (192،192،192)> <br>
<نوع الإدخال = إرسال قيمة غرفة الدردشة = النمط B1 = RGB (255،255،0) ؛
<p> <input type = hidden name = log size = 20 value = 1> <br> </p>
< /form>
<٪
استجابة. إنهاء عملية البرنامج
آخر
استجابة. قم بمسح المحتوى في ذاكرة التخزين المؤقت
حديث خافت
إذا طلب .form (nick) <> ثم
حدد ما إذا كان العميل في واجهة الدردشة
الجلسة (نيك) = request.form (Nick)
إنهاء إذا
'------------------------------------------- ------------------------------------------------- --------------------------
واجهة دردشة العملاء
'------------------------------------------- ------------------------------------------------- --------------------------
٪>
<method method = post Action = chat.asp name = form1> <p> <٪ = Session (nick) ٪> Speak: <input type = text name = talk size = 50> <br>
<نوع الإدخال = إرسال قيمة = إرسال اسم = B1>
<إدخال نوع = reset value = إلغاء الاسم = b2> </p>
< /form>
<a href =/asptest/shusheng/chat.asp> اترك <//a> <br> <br>
<٪
إذا كان request.form (log) <> 1 ثم
إذا trim (request.form (Talk)) = ثم
حدد ما إذا كان المستخدم لم يدخل أي شيء
الحديث = الجلسة (نيك) والصمت هو الذهب.
آخر
Talk = trim (request.form (Talk))
قم بإزالة المساحة بعد الحرف
إنهاء إذا
application.lock
application (show) = <table border = '0' cellpadding = '0' cellpacing = '0' width = '85 ٪ '> <tr> <td width =' 100 ٪ 'bgColor ='#c0c0c0 '> < /td > </tr> <tr> <td width = '100 ٪'> <font color = '#0000ff'> & session (nick) & time & from & request.servervariables (remote_addr) & said: < /font> & talk & </td> </tr> <tr> <td width = '100 ٪' bgcolor = '#c0c0c0'> </td> </tr> </table> <br> وتطبيق (إظهار)
application.unlock
reponse.write application (show)
إنهاء إذا
إنهاء إذا
٪>
دعونا نجري تحليلًا خطوة بخطوة لبرنامج غرفة الدردشة هذا.
بادئ ذي بدء ، يجب أن يكون جميع العملاء في غرفة الدردشة قادرين على مشاركة المعلومات ، حيث من المحتم أن تستخدم تطبيق الكائن مع متغيرات على مستوى التطبيق. -المستوى. يمكننا استخدام كائن الطلب الذي تعلمناه لإدخال المحادثة من قبل العميل وحفظه في الحديث المتغير ، ثم تخزين قيمة الحديث في العرض المتغير على مستوى التطبيق ، على النحو التالي:
<٪ Application (show) = Talk & Application (show) ٪>
الشيء التالي الذي يجب مراعاته هو كيفية التعامل مع العملاء المختلفين عندما يعملون على تطبيقات الدردشة في نفس الوقت. هذه المشكلة هي في الواقع مثل اثنين من المستخدمين في قاعدة البيانات التي تكتب نفس السجل في نفس الوقت. مستخدم آخر اختفى أمام أي شخص كان حاضرا في الجلسة رأى ذلك. لتجنب هذا النوع من المشكلة ، نحتاج إلى استخدام خاصية قفل كائن التطبيق لتقييد المستخدم الحالي فقط لتحرير أو إضافة خصائص كائن التطبيق. لا يمكن تحرير خصائص كائن التطبيق بشكل صريح حتى ذلك الحين. كما هو موضح أدناه:
application.lock
التطبيق (عرض) = نقاش وتطبيق (عرض)
application.unlock
الآن بعد أن فهمت الجزء الأساسي من البرنامج بأكمله ، فكر في كيفية حفظ معلومات العميل. يحب:
الجلسة (نيك) = request.form (Nick)
أخيرًا ، ما نحتاج إلى مراعاته هو كيفية التعامل مع الأحداث المختلفة فقط في ملف .asp واحد ، مثل: واجهة تسجيل الدخول إلى العملاء ، واجهة دردشة العملاء. منذ المرة الأولى التي يطلب فيها العميل ملف .asp ، فإنه يستخدم طريقة HTTP GET بسيطة ، ولكن عندما يضيف العميل البيانات إلى حقل النموذج على الصفحة ويقوم بتقديم النموذج إلى نفسه ، سيتم طلب ملف .asp مرة أخرى ، ولكن يتم تمرير هذه البيانات من خلال Post HTTP. يمكن تحديد طريقة طلب الملف بطريقتين. أولاً ، اختبار ما إذا كانت مجموعة request.form تحتوي على أعضاء. والثاني هو استخدام متغير request.servervariables (request_method). إذا تم طلب النموذج عبر HTTP ، فإن هذه العوائد المتغيرة تحصل على النموذج والنشر إذا تم تقديم النموذج. نظرًا لأن الطريقة الأخيرة أكثر مباشرة في تحديد طريقة طلب الملف ، فإننا نستخدم الكود التالي لإصدار حكم:
إذا كان request.ServerVariables (request_method) = الحصول عليه ثم
نظرًا لأننا قمنا بإعداد ذاكرة التخزين المؤقت ASP ، عندما يحدد البرنامج أن طريقة طلب الصفحة ، يقوم البرنامج بتشغيل Response.end لإنهاء جميع العمليات اللاحقة. تشغيل البرنامج. وبهذه الطريقة ، يمكننا استخدام ملف .asp نفسه لعرض واجهات مختلفة للعملاء وفقًا لحالات مختلفة.
حسنًا ، أخبرتك الجزء الأساسي من برنامج الدردشة ASP. لا تتحدث في الدردشة ، فلن ترى ما يقوله العملاء الآخرون. يعلم الجميع سحر الدردشة في الإنترنت. تحسين مستوى برنامج الدردشة هذا تدريجياً حتى يتمكن الجميع من نقل النسخة المخفية من الأوبرا. ملاحظة: مع برنامج الدردشة هذا ، يمكنك استخدامه لإنشاء تطبيق دردشة على PWS الخاص بك. من خلال جهاز الكمبيوتر الخاص بك.