مشاهده منبع مطلب به زبان اصلی

 

قبل از مطالعه این صفحه ، حتما مطالب زیر مطالعه شده باشد :

کوکی

جلسه یا Session

application

 

 

یک فایل اختیاری است

در این فایل ما کارهایی را که می خواهیم در زمان روی دادن رویدادهای مربوط به جلسه و شی اپلیکیشن  اجرا شود را می نویسیم

دقیقا اسم این فایل باید global.asa  باشد .

و کجا ان را ذخیره کنیم ؟

درست در ریشه سایت . یعنی در جایی که سایت را ذخیره می کنیم

 

با این فایل می توان کارهای خیلی مفید و خوبی انجام داد

 

مثلا :

از این فایل استفاده می کنیم تا نشان دهیم هم اکنون چند کاربر فعال در سایت ما هستند ؟

و همچنین می توان مشخص کرد که  اطلاعات دریافت شده از سیستم هر کاربر در بانک اطلاعاتی در ون سرور ذخیره شود

 

 

مثال برنامه نویسی :

 

در این مثال نشان می دهیم هم اکنون چند کاربر در حال مشاهده وب سایت ما هستند

 

دقت کنید که تمام دستورات باید درون تگ های زیر نوشته شود

 

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

دستورات

</SCRIPT>

 

 

قبلا گفتیم که ما چهار رویداد داریم  :

* Application_OnStart

* Session_OnStart

* Session_OnEnd

* Application_OnEnd

 

 

یاد اوری :

وقتی اولین نفر وارد سایت شما شد ، رویداد Application_OnStart روی می دهد که می توانید برای ان دستوراتی در نظر بگیرید . فرض کنید متغیر a با مقدار 0 را  از نوع اپلیکیشن  در این رویداد ایجاد می کنیم .

چند لحظه بعد یک نفر دیگر هم وارد سایت ما می شود ، حواسمون باشه متغیر a چون از نوع اپلیکیشن بود ، پس برای کاربر دوم هم قابل استفاده است . یعنی متغیرهای از نوع اپلیکیشن بین کاربرانی که در مکانهای مختلف ولی همزمان دارند از سایت ما دیدن می کنند ،  به اشتراک گذاشته می شوند .

 

 

و وقتی اخرین کاربر هم سایت ما را بست و دیدن تمام شد ، شی اپلیکیشن نابود می شود .

 

اما برای هر کاربری که وارد سایت ما می شود می توان متغیری فقط برای همان کاربر ایجاد کرد که می شود متغیر از نوع جلسه . مثلا متغیر a از نوع جلسه تعریف شود . این a که برای علی ایجاد شده با a که برای رضا تولید خواهد شد فرق دارند . 

 

 

 

 

هر کدام از این رویدادها بصورت زیر در فایل global.asa نوشته می شوند

 

 

 Sub Application_OnStart


نوشتن دستوراتی که به محض فعال شدن سرور وب سایت ما ،  اجرا شود


End Sub

-------------------------------------------------------------------------------

Sub Session_OnStart
   


نوشتن دستوراتی که به محض ورود هر کار بر به یکی از صفحات  سایت ،  اجرا شود

Session_OnStart برای هر کاربر مجزا از  کاربر دیگرعمل می کند 

 

End Sub

 -------------------------------------------------------------------------------

 

Sub Session_OnEnd

نوشتن دستوراتی که به محض خروج هر کار بر از  سایت ،  اجرا شود

End Sub

 

-------------------------------------------------------------------------------

Sub Application_OnEnd

نوشتن دستوراتی که به محض خروج اخرین کار بر از  سایت ،  اجرا شود

End Sub

 

 

 

برای شمارش تعداد بینندگان انلاین سایت ، ما یک متغیر از نوع اپلیکیشن باید داشته باشیم . نام انرا را به طور مثال ActiveUsers می گذاریم .

 

به محض فعال شدن سرور وب باید مقدار این متغیر صفر شود

 

Sub Application_OnStart

           Application("ActiveUsers") = 0


End Sub

 

------------------------------------------------------------------------

هر کاربر که وارد سایت ما می شود یعنی یکی به تعداد بازدیدکنندگان اضافه شود

هر کاربر که وارد سایت می شود رویداد Session_OnStart روی می دهد .می خواهیم زمان خاتمه جلسه هر کاربر را 20 دقیقه کنیم یعنی اگر بعد از بیست دقیقه کاربر دیگر صفحه ای از سایت ما را ندید یا همان صفحه را دوباره رفرش نکرد ، جلسه او با سرور وب ما تمام شود .

از طرفی چون می خواهیم متغفیر اپلیکیشن را که بین همه کاربران عمومی است در اینجا تغییر دهیم بهتر است اول انرا قفل کنیم تا برای کاربر دیگر همزمان با این کاربر تداخل در محاسبات روی ندهد . بعد مقدار را عوض می کنیم و بعد قفل را باز می کنیم

اما گفتیم جلسه را با کدام دستور اغاز می کنیم ؟

بله با دستور Session

ما اینجا نیازی به متغیر جلسه نداریم ولی چون باید با دستور Session جلسه را اغاز کنیم الکی یک متغیر جلسه در نظر می گیریم و مقداری را که کاربردی هم برایمان ندارد در ان قرار می دهیم . در اینجا زمان و تاریخ سرور در متغیر جلسه satrt قرار گرفته است .

و بعد هم یکی به تعداد شمارنده بازدیدکنندگان انلاین افزوده شده است

 

 

 

 

Sub Session_OnStart

Session.Timeout = 20


Session("Start") = Now

Application.Lock


Application("ActiveUsers") = Application("ActiveUsers") + 1


Application.UnLock


End Sub

 

 

 

----------------------------------------------------------------

در مرحله بعد می گوئیم  هر کاربری از سایت خارج شود یا اینکه 20 دقیقه ذکر شده تمام شود  ، از تعداد شماره بازدیدکنندگان انلاین کم شود . با خروج هر کاربر از سایت ، رویداد Session_OnEnd روی می دهد

 

Sub Session_OnEnd


Application.Lock


Application("ActiveUsers") = Application("ActiveUsers") - 1


Application.UnLock


End Sub

 

***********************************************

***********************************************

 

پس محتوای فایل global.asa من به این شکله :

notepad را باز کردم و اینها رو توش نوشتم

 

Sub Application_OnStart

           Application("ActiveUsers") = 0


End Sub

Sub Session_OnStart

Session.Timeout = 20


Session("Start") = Now

Application.Lock


Application("ActiveUsers") = Application("ActiveUsers") + 1


Application.UnLock


End Sub

 

Sub Session_OnEnd


Application.Lock


Application("ActiveUsers") = Application("ActiveUsers") - 1


Application.UnLock


End Sub

 

***********************************************

***********************************************