فایل Global.asa ASP

Global.asa فائل ایک اختیاری فائل ہے، جس میں ASP ایپلی کیشن میں کسی بھی پیج کی جانب سے استعمال کئے جانے والے اوبجیکٹ، متغیر اور میتھدز کا دلیلیف کیا جاسکتا ہے۔

Global.asa فائل

Global.asa فائل ایک اختیاری فائل ہے، جس میں ASP ایپلی کیشن میں کسی بھی پیج کی جانب سے استعمال کئے جانے والے اوبجیکٹ، متغیر اور میتھدز کا دلیلیف کیا جاسکتا ہے۔ تمام مجاز براؤزر اسکریپٹس Global.asa میں استعمال کئے جاسکتے ہیں。

Global.asa فائل میں درج ذیل چیزیں شامل کی جاسکتی ہیں:

  • Application کی واقعه
  • Session کی واقعه
  • <object> دکھاؤ
  • اعلام TypeLibrary
  • #include کمان

نکته:Global.asa فائل کو ASP ایپلی کیشن کے رینک ڈائریکٹری میں رکھنا چاہئے، اور ہر ایپلی کیشن کو صرف ایک Global.asa فائل ہونا چاہئے。

Global.asa میں کی واقعه

Global.asa میں، ہم application اور sission کے آئیڈ کا عمل شروع اور ختم کردیئے جانے کی اطلاع دینے میں سکتے ہیں۔ اس کام کو انجام دینے والی کوڈ کو واقع کار میں رکھا جاتا ہے۔ Global.asa فائل کے چار طرح کے واقعات شامل کئے جاسکتے ہیں:

Application_OnStart - اس واقعہ کا واقع ہونا اس بات پر منحصر ہوتا ہے کہ پہلا استعمال کنندہ اپنا پہلا ویب پیج درخواست کردیا ہو۔ اس واقعہ کے بعد "Session_OnStart" واقعہ فوری طور پر واقع ہوتا ہے جب ووب سروےرو کو دوبارہ چلایا جائے یا Global.asa فائل کو ترمیم کیا جائے。

Session_OnStart - اس واقعہ کا واقع ہونا اس بات پر منحصر ہوتا ہے کہ نئے استعمال کنندہ اپنا پہلا ویب پیج درخواست کردیا ہو۔

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>

نکته:Global.asa فائل میں اسپ کے اسکریپت نمبر (<% و %>) کا استعمال نہیں کرسکتے، اس لئے ہم HTML کا <script> عنصر استعمال کرتے ہیں。

<object> دکھاؤ

Global.asa فائل میں <object> تگ کا استعمال کرکے سیشن یا ایپلیکیشن کا دائرہ کار والا عنصر بنایا جاسکتا ہے。

نکته:<object> تگ <script> تگ کے باہر ہونا چاہئیے。

قوانین:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
پارامتر وصف
scope عنصر کا دائرہ کار (دائرہ کار) (Session یا Application) طے کریں。
id عنصر کو ایک یونیق آئیڈ مقرر کریں。
ProgID

ClassID سے متعلق آئیڈ۔ProgID کی شکل یہ ہوتی ہے: [Vendor.]Component[.Version]

ProgID یا ClassID ضروری است.

ClassID

کامپوننت کام کلسی کا یونیق آئیڈ مقرر کریں。

ProgID یا ClassID ضروری است.

نمونه

این نمونه اول یک شیء به نام "MyAd" با استفاده از پارامتر ProgID به عنوان شیء محدوده session ایجاد می‌کند:

<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>

می‌توانید این شیء "MyAd" را از هر صفحه‌ای از برنامه ASP خود به کار بگیرید:

یک فایل .ASP:

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

اعلام TypeLibrary

TypeLibrary (کتابخانه نوع) یک مخزن است که فایل‌های DLL مربوط به اشیاء COM را در خود جای داده است. با درج فراخوانی TypeLibrary در Global.asa، می‌توان به متغیرهای ثابت اشیاء COM دسترسی پیدا کرد و کد ASP نیز می‌تواند خطاها را بهتر گزارش دهد. اگر برنامه وب شما از اشیاء COM با نوع داده‌ای که در کتابخانه نوع تعریف شده استفاده می‌کند، می‌توانید TypeLibrary را در Global.asa اعلام کنید.

قوانین:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
پارامتر وصف
file مسیر کامل به کتابخانه نوع اشاره دارد. پارامتر file یا uuid، هر دو ضروری هستند.
uuid شناسه منحصر به فردی برای کتابخانه نوع را تعیین می‌کند. پارامتر file یا uuid، هر دو ضروری هستند.
version اختیاری. برای انتخاب نسخه استفاده می‌شود. اگر نسخه مشخصی پیدا نشود، نسخه نزدیک‌تر استفاده می‌شود.
lcid اختیاری. شناسه منطقه برای کتابخانه نوع.

مقدار خطا

سرور یکی از پیام‌های خطا زیر را برمی‌گرداند:

خطا کد وصف
ASP 0222 نوع کتابخانه ناقص
ASP 0223 کتابخانه نوع پیدا نشد
ASP 0224 کتابخانه نوع نمی‌تواند بارگذاری شود
ASP 0225 کتابخانه نوع نمی‌تواند بسته شود

نکته:برچسب METADATA می‌تواند در هر جایی از فایل Global.asa قرار گیرد (در داخل و خارج از برچسب <script> نیز قابل قرار گیری است). با این حال، ما پیشنهاد می‌دهیم که برچسب METADATA در بالای فایل Global.asa قرار گیرد.

محدودیت‌ها

محدودیت‌های مرتبط با محتوایی که می‌توان در فایل Global.asa ارجاع داد:

شما نمی‌توانید متن فایل Global.asa را نمایش دهید. این فایل نمی‌تواند اطلاعات را نمایش دهد.

شما فقط می‌توانید از شیءات Server و Application در زیربرنامه‌های Application_OnStart و Application_OnEnd استفاده کنید. در زیربرنامۀ Session_OnEnd می‌توانید از شیءات Server، Application و Session استفاده کنید. در زیربرنامۀ Session_OnStart می‌توانید از هر شیء داخلی استفاده کنید.

چگونه می‌توان از زیربرنامه‌ها استفاده کرد

Global.asa اغلب برای инициالایز کردن متغیرها استفاده می‌شود.

در مثال زیر، نحوه‌ی تشخیص زمان دقیق ورود بازدیدکننده به وب‌سایت را نشان می‌دهیم. زمان در یک شیء Session به نام "started" ذخیره می‌شود و ارزش متغیر "started" می‌تواند توسط هر صفحه 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 میں، جب سرور شروع ہوتا ہے تو Application متغیر "visitors" کا ارزش 0 رکھا جائے گا。

جب نئے کاربروں کا دورہ ہو، Session_OnStart ذریعہ کاروالی میں متغیر "visitors" کو 1 بڑھادیا جائے گا。

جب بھی Session_OnEnd ذریعہ کاروالی شروع ہو، اس ذریعہ کاروالی میں متغیر "visitors" سے 1 کم کردیا جائے گا。

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 فائل موجود کاربروں کی تعداد کو دکھائے گا:

<html>
<head>
</head>
<body>
<p>در حال حاضر <%response.write(Application("visitors"))%> آنلاین هستند!</p>
</body>
</html>