galbal.asa
صفحه 1 از 1
galbal.asa
در فايل Global.asa، می توان اسكريپت هائی را تعريف نمود كه همزمان با بروز يك رويداد ( Event ) فعال شده و يا اقدام به تعريف اشياء Session و Application نمود. امكانات تعريف شده در فايل فوق برای تمامی صفحات تشكيل دهنده يك برنامه ASP قابل دستيابی و استفاده خواهند بود. ضرورت وجود فايل فوق اختياری بوده و در صورت تعريف می بايست در فهرست ريشه ای كه برنامه ASP در آن قرار دارد، استقرار يابد. هر برنامه ASP صرفا می تواند دارای يك فايل Global.asa باشد.
رويدادهای استاندارد در فايل Global.asa
در فايل فوق می توان به اشياء Application و Session گفت كه در زمان آغاز و خاتمه عمليات مربوط به خود چه كارهائی را انجام دهند. در مجموع در فايل فوق چهار نوع رويداد را می توان قرار داد :
• Application_OnStart: رويداد فوق زمانيكه اولين كاربر به اولين صفحه يك برنامه ASP دستيابی پيدا می كند، فعال می گردد.
• Session_OnStart: رويداد فوق هر دفعه كه يك كاربر جديد درخواست اولين صفحه يك برنامه ASP را داشته باشد، فعال می گردد.
• Session_OnEnd: رويداد فوق هر بار كه كاربری به جلسه كاری خود خاتمه می دهد فعال می گردد. در صورتيكه در يك مدت زمان مشخص و محدود ( پيش فرض بيست دقيقه ) در خواست صفحه ای توسط كاربر واصل نگردد، به جلسه كاری وی خاتمه داد می شود.
• Application_OnEnd: رويداد فوق پس از اينكه آخرين كاربر به كار خود خاتمه می دهد، فعال می گردد. معمولا رويداد فوق زمانيكه سرويس دهنده وب متوقف می گردد نيز فعال می گردد.
برای هر يك از رويدادهای فوق می توان روال هائی را نوشت كه مسئول برخورد با رويداد مربوطه باشند. اين روال ها درفايل Global.asa قرار می گيرند. چهارچوب كلی فايل فوق كه متضمن خواسته های چهارگانه فوق باشد می تواند بصورت زير باشد :
<script>
sub Application_OnStart
. . .
end sub
sub Application_OnEnd
. . .
end sub
sub Session_OnStart
. . .
end sub
sub Session_OnEnd
. . .
end sub
</script>
با مشاهده چهارچوب فوق دوستان متوجه شده اند كه از <% و %> استفاده نشده و بمنظور استفاده از اسكريپت ها در فايل Global.asa می بايست از تگ <script> استفاده و روال های مربوطه را تعريف نمود.
در رابطه با فايل Global.asa محدوديت هائی وجود دارد كه ذيلا به آنها اشاره می شود :
• فايل فوق قادر به نمايش اطلاعات نمی باشد، بنابراين نمی توانيم بكمك آن متنی را نمايش دهيم.
• از دايركتيو Include# نمی توان در فايل فوق استفاده نمود.
• در روال های Application_OnStart و Application_OnEnd صرفا می توان از اشياء Server و Application استفاده كرد.
• در روال Session_OnEnd می توان از اشياء Server و Application و Session استفاده نمود.
• در روال Session_OnStart می توان از تمامی اشياء از پيش ساخته شده همراه ASP استفاده نمود.
نحوه استفاده از روال ها
از روال های موجود در يك فايل Global.asa می توان در جهت مقاصد مختلفی استفاده بعمل آورد. در ادامه به تشريح برخی از اين نوع اهداف خواهيم پرداخت.
• از فايل Global.asa اغلب برای مقداردهی اوليه متغيرها استفاده می شود. در مثال زير نحوه تشخيص زمان مربوط به ملاقات يك وب سايت توسط يك كاربر نشان داده شده است. زمان فوق در متغير started مربوط به شی Session ذخيره می گردد. مقدار متغير فوق توسط هر يك از صفحات موجود در يك برنامه ASP قابل دستيابی خواهد بود.
<script>
sub Session_OnStart
Session("started")=now()
end sub
</script>
• از ديگرکاربردهای فايل Global.asa كنترل دستيابی به صفحات نيز می باشد. در مثال زير پس از ارتباط كاربر با سايت، بصورت اتوماتيك وی بسمت استفاده از يك فايل ( MyNewPage.asp ) ديگر هدايت می گردد.
<script>
sub Session_OnStart
Response.Redirect("MyNewPage.ASP")
end sub
</script>
کاربردهای فایل Golbal.asa
در اين مثال با استفاده از فايل Global.asa، تعداد ملاقات كنندگان فعال يك سايت را مشخص می نمائيم. در فايل فوق از سه روال استفاده خواهد شد كه هر يك عمليات محوله را انجام خواهند داد. روال Application_OnStart، متغير visitors مربوط به شی Application را صفر قرار می دهد. مقدار اوليه متغير فوق پس از اينكه سرويس دهنده كار را آغاز كرد، به آن داده خواهد شد. روال Application_OnStart زمانيكه يك ملاقات كننده جديد وارد سايت می گردد، يك واحد به متغير visitors اضافه كرده و در نهايت روال Session_OnEnd زمانيكه يك ملاقات كننده سايت را ترك می كند، يك واحد از متغير visitors كم می كند.
محتويات فايل Global.asa :
<script>
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 مطابق زير استفاده نمود.
<Application> Online Guests
پس از اجرای ASP فوق، خروجی زير را خواهيم داشت.
رويدادهای استاندارد در فايل Global.asa
در فايل فوق می توان به اشياء Application و Session گفت كه در زمان آغاز و خاتمه عمليات مربوط به خود چه كارهائی را انجام دهند. در مجموع در فايل فوق چهار نوع رويداد را می توان قرار داد :
• Application_OnStart: رويداد فوق زمانيكه اولين كاربر به اولين صفحه يك برنامه ASP دستيابی پيدا می كند، فعال می گردد.
• Session_OnStart: رويداد فوق هر دفعه كه يك كاربر جديد درخواست اولين صفحه يك برنامه ASP را داشته باشد، فعال می گردد.
• Session_OnEnd: رويداد فوق هر بار كه كاربری به جلسه كاری خود خاتمه می دهد فعال می گردد. در صورتيكه در يك مدت زمان مشخص و محدود ( پيش فرض بيست دقيقه ) در خواست صفحه ای توسط كاربر واصل نگردد، به جلسه كاری وی خاتمه داد می شود.
• Application_OnEnd: رويداد فوق پس از اينكه آخرين كاربر به كار خود خاتمه می دهد، فعال می گردد. معمولا رويداد فوق زمانيكه سرويس دهنده وب متوقف می گردد نيز فعال می گردد.
برای هر يك از رويدادهای فوق می توان روال هائی را نوشت كه مسئول برخورد با رويداد مربوطه باشند. اين روال ها درفايل Global.asa قرار می گيرند. چهارچوب كلی فايل فوق كه متضمن خواسته های چهارگانه فوق باشد می تواند بصورت زير باشد :
<script>
sub Application_OnStart
. . .
end sub
sub Application_OnEnd
. . .
end sub
sub Session_OnStart
. . .
end sub
sub Session_OnEnd
. . .
end sub
</script>
با مشاهده چهارچوب فوق دوستان متوجه شده اند كه از <% و %> استفاده نشده و بمنظور استفاده از اسكريپت ها در فايل Global.asa می بايست از تگ <script> استفاده و روال های مربوطه را تعريف نمود.
در رابطه با فايل Global.asa محدوديت هائی وجود دارد كه ذيلا به آنها اشاره می شود :
• فايل فوق قادر به نمايش اطلاعات نمی باشد، بنابراين نمی توانيم بكمك آن متنی را نمايش دهيم.
• از دايركتيو Include# نمی توان در فايل فوق استفاده نمود.
• در روال های Application_OnStart و Application_OnEnd صرفا می توان از اشياء Server و Application استفاده كرد.
• در روال Session_OnEnd می توان از اشياء Server و Application و Session استفاده نمود.
• در روال Session_OnStart می توان از تمامی اشياء از پيش ساخته شده همراه ASP استفاده نمود.
نحوه استفاده از روال ها
از روال های موجود در يك فايل Global.asa می توان در جهت مقاصد مختلفی استفاده بعمل آورد. در ادامه به تشريح برخی از اين نوع اهداف خواهيم پرداخت.
• از فايل Global.asa اغلب برای مقداردهی اوليه متغيرها استفاده می شود. در مثال زير نحوه تشخيص زمان مربوط به ملاقات يك وب سايت توسط يك كاربر نشان داده شده است. زمان فوق در متغير started مربوط به شی Session ذخيره می گردد. مقدار متغير فوق توسط هر يك از صفحات موجود در يك برنامه ASP قابل دستيابی خواهد بود.
<script>
sub Session_OnStart
Session("started")=now()
end sub
</script>
• از ديگرکاربردهای فايل Global.asa كنترل دستيابی به صفحات نيز می باشد. در مثال زير پس از ارتباط كاربر با سايت، بصورت اتوماتيك وی بسمت استفاده از يك فايل ( MyNewPage.asp ) ديگر هدايت می گردد.
<script>
sub Session_OnStart
Response.Redirect("MyNewPage.ASP")
end sub
</script>
کاربردهای فایل Golbal.asa
در اين مثال با استفاده از فايل Global.asa، تعداد ملاقات كنندگان فعال يك سايت را مشخص می نمائيم. در فايل فوق از سه روال استفاده خواهد شد كه هر يك عمليات محوله را انجام خواهند داد. روال Application_OnStart، متغير visitors مربوط به شی Application را صفر قرار می دهد. مقدار اوليه متغير فوق پس از اينكه سرويس دهنده كار را آغاز كرد، به آن داده خواهد شد. روال Application_OnStart زمانيكه يك ملاقات كننده جديد وارد سايت می گردد، يك واحد به متغير visitors اضافه كرده و در نهايت روال Session_OnEnd زمانيكه يك ملاقات كننده سايت را ترك می كند، يك واحد از متغير visitors كم می كند.
محتويات فايل Global.asa :
<script>
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 مطابق زير استفاده نمود.
<Application> Online Guests
پس از اجرای ASP فوق، خروجی زير را خواهيم داشت.
صفحه 1 از 1
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد