دروس ASP

الصفحة الرئيسية ASP

دروس الفسفور الابيض

مقدمة صفحات الويب صفحات الويب الحلاقة تخطيط صفحات الويب مجلدات صفحات الويب صفحات الويب العالمية نماذج صفحات الويب كائنات صفحات الويب ملفات صفحات الويب قواعد بيانات صفحات الويب مساعدي صفحات الويب WebPages WebGrid مخططات صفحات الويب البريد الإلكتروني لصفحات الويب أمن صفحات الويب نشر صفحات الويب أمثلة على صفحات الويب فئات صفحات الويب

ASP.NET Razor

مقدمة الحلاقة تركيب الشفرة المتغيرات Razor C # حلقات موس الحلاقة C # Razor C # المنطق متغيرات Razor VB حلقات الحلاقة VB Razor VB Logic

كلاسيك ASP

مقدمة ASP بناء جملة ASP متغيرات ASP إجراءات ASP شروط ASP حلقات ASP نماذج ASP ملفات تعريف الارتباط ASP جلسة ASP تطبيق ASP تضمين ASP # ASP Global.asa ASP أياكس البريد الإلكتروني ASP أمثلة على ASP

مرجع ASP

وظائف ASP VB كلمات رئيسية ASP VB استجابة ASP طلب ASP تطبيق ASP جلسة ASP خادم ASP خطأ ASP نظام ملفات ASP ASP TextStream محرك ASP ملف ASP مجلد ASP قاموس ASP أدروتور ASP متصفح ASP ربط محتوى ASP محور دوار للمحتوى ASP المرجع السريع ASP

برنامج ADO التعليمي

مقدمة ADO اتصال ADO مجموعة سجلات ADO عرض ADO استعلام ADO نوع ADO إضافة ADO تحديث ADO حذف ADO عرض ADO تسريع ADO

كائنات ADO

أمر ADO اتصال ADO خطأ ADO حقل ADO معلمة ADO خاصية ADO سجل ADO مجموعة سجلات ADO دفق ADO أنواع بيانات ADO

ASP ملف Global.asa


ملف Global.asa

ملف Global.asa هو ملف اختياري يمكن أن يحتوي على تعريفات للكائنات والمتغيرات والطرق التي يمكن الوصول إليها بواسطة كل صفحة في تطبيق ASP.

يمكن استخدام جميع البرامج النصية الصالحة للمتصفح (JavaScript ، و VBScript ، و JScript ، و PerlScript ، وما إلى ذلك) داخل Global.asa.

يمكن أن يحتوي الملف Global.asa على ما يلي فقط:

  • أحداث التطبيق
  • أحداث الجلسة
  • تعريفات <object>
  • إقرارات TypeLibrary
  • # تضمين التوجيه

ملاحظة: يجب تخزين الملف Global.asa في الدليل الجذر لتطبيق ASP ، ويمكن لكل تطبيق أن يحتوي على ملف Global.asa واحد فقط.


الأحداث في Global.asa

في Global.asa ، يمكنك إخبار كائنات التطبيق والجلسة بما يجب القيام به عند بدء التطبيق / الجلسة وما يجب القيام به عند انتهاء التطبيق / الجلسة. يتم وضع رمز هذا في معالجات الأحداث. يمكن أن يحتوي ملف Global.asa على أربعة أنواع من الأحداث:

Application_OnStart - يحدث عندما يقوم المستخدم الأول باستدعاء الصفحة الأولى في تطبيق ASP. يقع هذا الحدث بعد إعادة تشغيل خادم الويب أو بعد تحرير الملف Global.asa. يقع الحدث "Session_OnStart" مباشرة بعد هذا الحدث.

Session_OnStart - يحدث هذا الحدث في كل مرة يطلب فيها مستخدم جديد الصفحة الأولى الخاصة به في تطبيق ASP.

Session_OnEnd - يحدث هذا الحدث في كل مرة ينهي فيها المستخدم جلسة. تنتهي جلسة المستخدم بعد عدم طلب المستخدم للصفحة لفترة زمنية محددة (افتراضيًا يكون هذا 20 دقيقة).

Application_OnEnd - يقع هذا الحدث بعد أن أنهى المستخدم الأخير الجلسة. عادةً ما يحدث هذا الحدث عند توقف خادم ويب. يستخدم هذا الإجراء لتنظيف الإعدادات بعد توقف التطبيق ، مثل حذف السجلات أو كتابة المعلومات إلى ملفات نصية.

يمكن أن يظهر ملف Global.asa بالشكل التالي:

<script language="vbscript" runat="server">

sub Application_OnStart
'some code
end sub

sub Application_OnEnd
'some code
end sub

sub Session_OnStart
'some code
end sub

sub Session_OnEnd
'some code
end sub

</script>

ملاحظة: نظرًا لأنه لا يمكننا استخدام محددات البرامج النصية لـ ASP (<٪ و٪>) لإدراج البرامج النصية في ملف Global.asa ، فإننا نضع الإجراءات الفرعية داخل عنصر <script> HTML.



<object> الإعلانات

من الممكن إنشاء كائنات بنطاق جلسة أو تطبيق في Global.asa باستخدام علامة <object>.

ملاحظة: يجب أن تكون علامة <object> خارج علامة <script>!

بناء الجملة

<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>
....
</object>

Parameter Description
scope Sets the scope of the object (either Session or Application)
id Specifies a unique id for the object
ProgID An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]

Either ProgID or ClassID must be specified.

ClassID Specifies a unique id for a COM class object.

Either ProgID or ClassID must be specified.

أمثلة

ينشئ المثال الأول كائنًا لنطاق جلسة يسمى "MyAd" باستخدام معلمة ProgID:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

ينشئ المثال الثاني كائنًا لنطاق تطبيق يسمى "MyConnection" باستخدام معلمة ClassID:

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

يمكن استخدام الكائنات المعلنة في ملف Global.asa بواسطة أي برنامج نصي في التطبيق:

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

You could reference the object "MyAd" from any page in the ASP application:

SOME .ASP FILE:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>

إعلانات TypeLibrary

TypeLibrary هي حاوية لمحتويات ملف DLL المطابق لكائن COM. من خلال تضمين استدعاء إلى TypeLibrary في ملف Global.asa ، يمكن الوصول إلى ثوابت كائن COM ، ويمكن الإبلاغ عن الأخطاء بشكل أفضل بواسطة رمز ASP. إذا كان تطبيق الويب الخاص بك يعتمد على كائنات COM التي قامت بالتصريح عن أنواع البيانات في مكتبات الأنواع ، فيمكنك إعلان مكتبات الأنواع في Global.asa.

بناء الجملة

<!--METADATA TYPE="TypeLib"
file="filename" uuid="id" version="number" lcid="localeid"
-->

Parameter Description
file Specifies an absolute path to a type library.

Either the file parameter or the uuid parameter is required

uuid Specifies a unique identifier for the type library.

Either the file parameter or the uuid parameter is required

version Optional. Used for selecting version. If the requested version is not found, then the most recent version is used
lcid Optional. The locale identifier to be used for the type library

قيم الخطأ

يمكن للخادم إرجاع إحدى رسائل الخطأ التالية:

Error Code Description
ASP 0222 Invalid type library specification
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

ملاحظة: يمكن أن تظهر علامات البيانات الوصفية في أي مكان في ملف Global.asa (داخل وخارج علامات <script>). ومع ذلك ، فمن المستحسن أن تظهر علامات البيانات الوصفية بالقرب من أعلى ملف Global.asa.


قيود

قيود على ما يمكنك تضمينه في ملف Global.asa:

  • لا يمكنك عرض نص مكتوب في ملف Global.asa. لا يمكن لهذا الملف عرض المعلومات
  • يمكنك فقط استخدام كائنات الخادم والتطبيق في الإجراءات الفرعية Application_OnStart و Application_OnEnd. في الروتين الفرعي Session_OnEnd ، يمكنك استخدام كائنات الخادم والتطبيق والجلسة. في روتين Session_OnStart يمكنك استخدام أي كائن مدمج

كيفية استخدام الإجراءات الفرعية

غالبًا ما يتم استخدام Global.asa لتهيئة المتغيرات. 

يوضح المثال أدناه كيفية اكتشاف الوقت الدقيق الذي يصل فيه الزائر لأول مرة إلى موقع ويب. يتم تخزين الوقت في متغير جلسة يسمى "بدأ" ، ويمكن الوصول إلى قيمة المتغير "بدأ" من أي صفحة ASP في التطبيق:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

يمكن أيضًا استخدام Global.asa للتحكم في الوصول إلى الصفحة.

يوضح المثال أدناه كيفية إعادة توجيه كل زائر جديد إلى صفحة أخرى ، في هذه الحالة إلى صفحة تسمى "newpage.asp":

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

ويمكنك تضمين وظائف في ملف Global.asa.

في المثال أدناه ، يحدث الروتين الفرعي Application_OnStart عند بدء تشغيل خادم الويب. ثم يقوم الروتين الفرعي Application_OnStart باستدعاء روتين فرعي آخر يسمى "getcustomers". يفتح الروتين الفرعي "getcustomers" قاعدة بيانات ويسترد مجموعة سجلات من جدول "customers". يتم تعيين مجموعة السجلات إلى مصفوفة ، حيث يمكن الوصول إليها من أي صفحة ASP دون الاستعلام عن قاعدة البيانات:

<script language="vbscript" runat="server">

sub Application_OnStart
getcustomers
end sub

sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub

</script>

مثال Global.asa

في هذا المثال ، سننشئ ملف Global.asa يحسب عدد الزوار الحاليين.

  • يعين Application_OnStart متغير التطبيق "زوار" على 0 عند بدء تشغيل الخادم
  • يضيف الروتين الفرعي Session_OnStart واحدًا إلى المتغير "الزائرون" في كل مرة يصل فيها زائر جديد
  • يطرح الروتين الفرعي Session_OnEnd واحدًا من "الزوار" في كل مرة يتم فيها تشغيل هذا الروتين الفرعي

ملف Global.asa:

<script language="vbscript" runat="server">

Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub

</script>

لعرض عدد الزوار الحاليين في ملف ASP:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>