محاضرة ASP 4: مكونات ASP المضمنة
الكاتب:Eve Cole
وقت التحديث:2009-05-30 19:58:14
في المحاضرات الثلاث الأولى، قمنا بشكل أساسي بتقديم الكائنات الأربعة المضمنة التي يوفرها ASP:
كائن الاستجابة: إرسال المعلومات إلى المتصفح.
كائن الطلب: الوصول إلى المعلومات المرسلة من المتصفح إلى الخادم (مثل الحصول على بيانات النموذج).
كائن الجلسة: يقوم بتخزين وقراءة معلومات محادثة مستخدم محددة.
كائن التطبيق: يقوم بتخزين وقراءة معلومات التطبيق التي يشاركها جميع المستخدمين.
بالإضافة إلى ذلك، هناك كائنات Server وكائنات ObjectContext التي سنتعلمها في الأمثلة المستقبلية (تلميح: في الواقع، يمكنك بالفعل استخدام المعرفة التي تعلمتها لكتابة غرفة محادثة عبر الإنترنت دون أن تدرك ذلك). محتوى هذه المحاضرة هو استخدام مكونات خادم ActiveX الخاص بـ ASP (المكونات).
1. مكون قدرات المتصفح:
نحن نعلم أن المتصفحات المختلفة قد تدعم وظائف مختلفة، على سبيل المثال، تدعم بعض المتصفحات الإطارات والبعض الآخر لا يدعمها. باستخدام هذا المكون، يمكنك التحقق من إمكانيات المتصفح بحيث يمكن لصفحة الويب الخاصة بك عرض صفحات مختلفة لمتصفحات مختلفة (مثل عرض صفحات الويب بدون إطار للمتصفحات التي لا تدعم الإطار). استخدام هذا المكون بسيط للغاية، تجدر الإشارة إلى أنه لاستخدام هذا المكون بشكل صحيح، يجب عليك التأكد من تحديث ملف Browscap.ini (في الواقع، كل متصفح وميزاته مدرجة في هذا الملف. سوف تقوم بذلك) فهم بعد فتحه بنفسك )، وإلا فقد تكون النتائج مختلفة تمامًا. على سبيل المثال، يتم عرض IE5.0 المضمن في الإصدار الثاني من Win98 كـ Netscape في المثال التالي. يوجد هذا الملف عمومًا ضمن "WinntSystem32InetSrv" على خادم الويب. ويمكن تنزيل أحدث إصدار من http://www.asptracker.com/ أو http://www.cyscape.com/browscap.
مثال: wuf22.asp
<أتش تي أم أل>
<الجسم>
'ملاحظة: استخدام المكونات مشابه لاستخدام الكائنات، ولكن يجب إنشاء المكونات قبل الاستخدام، وليست هناك حاجة للإنشاء قبل استخدام الكائنات المضمنة.
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
انتظر من فضلك......
<ف>
<حدود الطاولة=1 لوحة الخلية=10>
<TR><TD>نوع المتصفح</TD><TD><%=BrowsCap.Browser%></TD></TR>
<TR><TD>إصدار المتصفح</TD><TD><%=BrowsCap.version%></TD></TR>
<TR><TD>ما إذا كانت الجداول مدعومة</TD><TD><%=BrowsCap.tables%></TD></TR>
<TR><TD>ما إذا كانت عناصر تحكم ActiveX مدعومة</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
<TR><TD>ما إذا كانت JavaApplets مدعومة</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
<TR><TD>ما إذا كان JavaScript مدعومًا أم لا</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>ما إذا كانت ملفات تعريف الارتباط مدعومة</TD><TD><%=BrowsCap.Cookies%></TD></TR>
<TR><TD>ما إذا كانت الإطارات مدعومة</TD><TD><%=BrowsCap.Frames%></TD></TR>
<TR><TD>نظام التشغيل</TD><TD><%=BrowsCap.Platform%></TD></TR>
<TR><TD>ما إذا كان VBScript مدعومًا أم لا</TD><TD><%=BrowsCap.vbscript%></TD></TR>
</الجدول>
<%Set BrowseCap = لا شيء%>
</الجسم>
</HTML>
ملاحظة: في هذا المثال، تناولنا أيضًا طريقة CreateObject الخاصة بكائن الخادم. يتم استخدام Server.CreateObject لإنشاء مكونات ActiveX التي تم تسجيلها على الخادم (ملاحظة: هناك طرق أخرى لإنشاء المكونات). لكن لا تنس استخدام "Set Object = Nothing" لتحرير الموارد في الوقت المناسب. يجب أن يصبح هذا عادة.
2. مكون الوصول إلى الملفات
يتكون مكون الوصول إلى الملفات من كائن FileSystemObject وكائن TextStream. باستخدام كائن FileSystemObject، يمكنك إنشاء الدلائل والملفات واسترجاعها وحذفها، بينما يوفر كائن TextStream وظيفة قراءة الملفات وكتابتها.
مثال wuf23.asp. التأكيد: فقط من خلال الممارسة يمكن تعميق الفهم. إن ممارسة ومقارنة نتائج تشغيل البرنامج هي أفضل طريقة لإتقان مهارات البرمجة بسرعة.
<%@ اللغة=VBScript %>
<% خيار صريح
"لاحظ المسار المطلق: C:Inetpubhomeaspwuf23.asp مسار الصفحة الرئيسية: C:Inetpubhome
مسار خافت، ملف، FSO، CTF، Str، StrHTML، StrNoHTML
'استخدم طريقة CreateObject لإنشاء كائن FileSystemObject FSO
تعيين FSO = Server.CreateObject("Scripting.FileSystemObject")
Path = Server.MapPath("test") 'إرجاع الدليل الفعلي للاختبار (المسار المطلق)
'وبقدر ما يتعلق الأمر بهذا المثال، فإن الجملة التالية ترجع بالضبط نفس المسار مثل الجملة أعلاه
'المسار = Server.MapPath("asptest")
الاستجابة.كتابة المسار و"<Br>"
إذا كان FSO.FolderExists(Path) = false، فحدد ما إذا كان المجلد موجودًا أم لا
FSO.CreateFolder(Path) "إنشاء مجلد جديد."
نهاية إذا
الملف = المسار & "asptest.txt"
'كتابة عملية الملف
إذا كان FSO.FileExists(File) = True، فحدد ما إذا كان الملف موجودًا أم لا
'إنشاء كائن TextStream CTF
Set CTF = FSO.OpenTextFile(File, 8, False, 0) 'افتح الملف، راجع الوصف للحصول على التفاصيل
آخر
اضبط CTF = FSO.CreateTextFile(File,False, False) 'ملف جديد
نهاية إذا
CTF.Write "<P>السلسلة الأولى؛" 'اكتب السلسلة
CTF.WriteLine "السلسلة الثانية؛ " 'اكتب السلسلة وأضف حرف السطر الجديد
CTF.اكتب "السلسلة الثالثة؛"
CTF.Close 'ملاحظة لإغلاق الملف
'قراءة عملية الملف
تعيين CTF = FSO.OpenTextFile(File, 1,,0)
Do while CTF.AtEndOfStream <> True 'تحديد ما إذا كان الملف سينتهي (بيان الحلقة)
Str = CTF.ReadLine 'اقرأ سطرًا واحدًا (في كل مرة)
StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf
StrHTML = StrHTML & Server.HTMLEncode(Str) & "<BR>" & VbCrLf
حلقة
الاستجابة.اكتب StrNoHTML
الاستجابة.اكتب StrHTML
CTF.إغلاق
تعيين CTF = لا شيء "حرر الكائن".
تعيين FSO = لا شيء
%>
CTF = FSO.OpenTextFile(File, 8, False, 0)، المعلمة الأولى بين قوسين هي اسم الملف؛ المعلمة الثانية هي 8، مما يعني إلحاق المحتوى بعد الملف الأصلي إذا كان 1، فهذا يعني القراءة - فقط، وإذا كان 2، فسيتم إعادة كتابة الملف الأصلي؛ وتعني المعلمة الثالثة خطأ أنه في حالة عدم وجود الملف المحدد، فلن يتم إنشاء الملف؛ وإذا كان صحيحًا، فهذا يعني أن الملف المحدد غير موجود إذا كان موجودًا، فسيتم إنشاء الملف؛ المعلمة الرابعة 0 تعني أنه سيتم فتحه بتنسيق ملف ASCII. إذا كان -2، فهذا يعني فتحه بالتنسيق الأصلي.
CTF = FSO.CreateTextFile(File,False, False)، المعلمة الثانية false تعني عدم الكتابة فوق الملف الموجود، إذا كانت صحيحة، فهذا يعني الكتابة فوق (الكتابة فوق) الملف الموجود؛ المعلمة الثالثة false تعني أن تنسيق الملف هو ASCII ، تشير القيمة True إلى أن تنسيق الملف هو Unicode.
تقوم طريقة MapPath الخاصة بكائن الخادم بتحويل المسار الظاهري المحدد إلى مسار ملف حقيقي. يتعامل MapPath مع الأحرف "/" و"" بنفس الطريقة.
تسمح لك طريقة HTMLEncode الخاصة بكائن الخادم بتشفير سلسلة معينة بتنسيق HTML، أو تمكين المتصفح من عرض أحرف معينة بشكل صحيح. في المثال أعلاه، إذا لم يتم ترميزه، فلن يتم عرض "<P>"، ولكن سيتم معاملته كعلامة HTML بواسطة المتصفح. ويمكنك مقارنة النتائج الجاري تشغيلها.
في الواقع، يعد مكون الوصول إلى الملفات قويًا نسبيًا في تشغيل الملفات والمجلدات ومحركات الأقراص، كما أنه يوفر المزيد من الطرق إذا كنت بحاجة إلى استخدام هذه المعرفة، فلا تنس استخدامها.
بالإضافة إلى ذلك، أصبحت كتابة عداد صفحات الويب الآن أمرًا سهلاً للغاية، فلا عجب أن العديد من صفحات الويب توفر عدادات مجانية. ماذا عن ذلك؟ حاول كتابة عداد رسومي بنفسك، يمكنك الغش بقدر ما تريد، إنه أمر رائع. (سر صغير: لدي مثيل wuf24.asp على صفحتي الرئيسية)
3. AD Rotator (مكون التقليب الإعلاني)
في الوقت الحاضر، عندما أتصفح الإنترنت، فإن أكثر ما أكرهه هو اللافتات الإعلانية على الصفحات الرئيسية للأشخاص الآخرين، وأكثر ما يعجبني هو اللافتات الإعلانية على صفحتي الرئيسية، حيث تشبه اللافتات الإعلانية في كل مكان الرسائل غير المرغوب فيها ويصعب الحماية منها. يمكنك أيضًا إنشاء مثل هذه البيانات المهملة بنفسك. يمكن لمكون AD Rotator الخاص بـ ASP عرض الإعلانات بشكل عشوائي في كل مرة تقوم فيها بفتح صفحة ويب أو إعادة تحميلها. يتكون هذا المثال من ثلاثة أجزاء:
wuf25.asp الروتينية
<%@ اللغة=VBScript %>
<% خيار صريح
إعلان خافت
'إنشاء كائن دوار AD
تعيين adr = Server.CreateObject("MSWC.AdRotator")
adr.Border = 2 'حدد حجم الحدود لملف الرسومات
adr.Clickable = True 'يشير إلى ما إذا كانت الصورة المعروضة عبارة عن ارتباط تشعبي
adr.TargetFrame = "_blank" 'قم بتعيين الارتباط التشعبي لتحديد اسم الإطار، مثل: _TOP _NEW _PARENT
'احصل على إعدادات الصورة والارتباط التشعبي المراد عرضها - المعينة في الملف AdrSet.txt
الاستجابة.اكتب adr.GetAdvertisement("AdrSet.txt")
%>
محتويات AdrSet.txt (متبوعة بالتعليقات، وليس محتوى هذا الملف):
إعادة توجيه wuf26.asp بعد الضغط على الإعلان ستتم معالجته بواسطة wuf26.asp
العرض 468 عرض صورة الإعلان
الارتفاع 60 ارتفاع الصورة الإعلانية
* فاصل
موقع الصورة الإعلانية، والتي يمكن أن تكون أيضًا ملف رسومي محلي
http://www.163.com/ يشير إلى الرابط إذا لم يكن هناك ارتباط تشعبي، فاكتب "-".
وصف النص نيتياس
20 يوضح الوزن النسبي للإعلان، أي تكرار العرض
http://www.sina.com.cn/
سينا.كوم
30
http://www.canon.com.cn/
كانون
50
في هذا المثال هناك ثلاث صور (حجم الصورة 468X60) والروابط تشغل أربعة أسطر وفي الاستخدام الفعلي يمكنك اتباع نفس الطريقة وإضافة المزيد من الصور.
<% 'wuf26.asp
URL = Request.QueryString("url")
الاستجابة.إعادة التوجيه(URL)
%>
wuf26.asp هو أبسط برنامج معالجة، ويمكنك إضافة المزيد من التعليمات البرمجية هنا وفقًا للاحتياجات الفعلية.
قم بتشغيله واتضح أن استخدام هذا المكون بسيط جدًا أيضًا، كل ما عليك فعله هو الحصول على ملف AdrSet.txt الخاص بك. وباستخدام هذا المكون، يمكنك أيضًا تصميم صفحة رئيسية لتبادل الإعلانات والتي أصبحت الآن عصرية للغاية.
4. مكون ربط المحتوى من الواضح أن هذا المكون مرتبط بالروابط. إذا كنت تريد معرفة الاستخدام المحدد لهذا المكون على الفور، أخشى أن يكون الأمر متسرعًا جدًا، فمن الأفضل أن تستشهد بمثال كلاسيكي أولاً: لنفترض أنك تقرأ ملفًا كتاب على شبكة الإنترنت، يجب أن لا تكون على دراية بالروابط التالية سوف تكون غير مألوفة: الفصل 1، الفصل 2،...، الفصل السابق، الفصل التالي (أو الصفحة السابقة، الصفحة التالية)، وما إلى ذلك. ما يتعين علينا فعله الآن هو كيفية إعداد الانتقالات بين هذه الروابط بسهولة وسرعة.
قم أولاً بإنشاء ملف نصي لقائمة الارتباطات، مثل urllist.txt
wuf23.asp الفصل الأول: عمليات الملفات (مكون الوصول إلى الملفات)
wuf28.asp الفصل الثاني: مثال على استخدام مكون ربط المحتوى
wuf22.asp الفصل 3: يتم فصل عنوان URL لرابط مكون قدرة المستعرض ووصفه بواسطة مفتاح Tab. يتم استخدام wuf27.asp التالي لسرد كافة الارتباطات في urllist.txt.
<% @LANGUAGE = VBScript %>
<% خيار صريح %>
<html><head><title>استخدام مكون ربط المحتوى</title></head>
<الجسم>
<h2>جدول المحتويات: لاحظ أن الرابط الأساسي هو الفصل الثاني، يجب عليك النقر عليه</h2>
<ul>
<%
خافت NextLink، العد
"إنشاء مكون ربط المحتوى".
تعيين NextLink = Server.CreateObject("MSWC.NextLink")
'احصل على عدد الروابط في الملف urllist.txt
الكونت = NextLink.GetListCount("urllist.txt")
عنوان URL الخافت، Dscr، I
لأني = 1 للعد
url = NextLink.GetNthURL ("urllist.txt"، I) 'الحصول على الارتباط التشعبي
Dscr = NextLink.GetNthDescription ("urllist.txt"، I) 'الحصول على وصف النص
Response.اكتب "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
التالي
%>
</ul></body></html>
بعد ذلك، خذ wuf28.asp كمثال لتوضيح كيفية الانتقال تلقائيًا إلى الفصل السابق والفصل التالي.
<% @LANGUAGE = VBScript %>
<% خيار صريح %>
<html><head><title>انتبه إلى هذا الرابط</title></head>
<الجسم>
<p>وهذا نص الفصل الثاني......</p>
<% 'يحتوي كل ملف على الجملة التالية لتحقيق الارتباط التلقائي%>
<!--#include file="wuf29.asp"-->
</body></html>
يمكن أن تؤدي إضافة الجملة الأخيرة هنا إلى تحقيق القفز التلقائي.
<%
خافت NextLink، رتبة
تعيين NextLink = Server.CreateObject ("MSWC.NextLink")
'ما هو الرابط الحالي في urllist.txt؟
رتبة = NextLink.GetListIndex ("urllist.txt")
الاستجابة.اكتب "<hr>"
إذا (الرتبة > 1) فإن "الرتبة = 1" لا توجد صفحة سابقة
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>الفصل السابق</a>|"
نهاية إذا
إذا كان (الرتبة < NextLink.GetListCount("urllist.txt")) ثم "الرتبة" في النهاية، فلا توجد صفحة تالية
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>الفصل التالي</a>|"
نهاية إذا
%>
بعد تشغيل هذا المثال، ستتمكن فورًا من فهم دور هذا المكون حقًا. باختصار، ليست هناك حاجة لكتابة "الفصل السابق" و"الفصل التالي" في كل صفحة، ويمكن القيام بذلك بالكامل من خلال wuf29.asp ليست مريحة للغاية؟ ! وإلا، ألن يكون الأمر مزعجًا جدًا إذا قمت بتعديل الرابط يدويًا؟
الآن يجب أن تفهم أن هناك عددًا كبيرًا من العدادات المجانية ولوحات الرسائل المجانية وغرف الدردشة المجانية وشبكات تبادل الإعلانات وما إلى ذلك على الإنترنت. مبادئها ليست أكثر من هذا، لذا لا داعي لعبادتها.