فایل Global.asa ASP
- صفحه قبلی داخل ASP #include
- صفحه بعدی ایمیل 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>
- صفحه قبلی داخل ASP #include
- صفحه بعدی ایمیل ASP