PDA

View Full Version : نمایش افراد آنلاین سایت ( آموزش گام به گام )



khazon
سه شنبه 04 دی 1386, 02:04 صبح
با سلام
مراحلی که ما طی میکنیم در Microsoft Visual Studio 2005 می بااااشد و من نمی دونم تو 2003 آیا کار به همین روشه یا خیر .

( زبون برنامه نویسی VB )

مرحله 1 :
به منوی فایل ها یا همون Solution Explorer رفته و کلیک راست کرده ، و قسمت Add New Item رو انتخاب کنید . از صفحه ای که باز شد ( ردیف وسط ) گزینه ی Golbal Applecation Class رو انتخاب کنید .
نام این Item رو به طور پیش فرض Golbal.aspx در نظر میگیره ، ما هم کاری بهش ندایم ...
کلید ADD رو کلیک کنید تا پنجره بسته شده و فایل Golbal.aspx به پرژتون اضافه بشه .

مرحله 2 :
بعد از اضافه شدن ، فایل به طور خودکار باز میشه و Source هایی نوشته شده که توضیحشون میدیم . ( اگه باز نشده ، لطفا بازش کنید )



<%@ApplicationLanguage="VB" %>
<scriptrunat="server">
Sub Application_Start(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs on application startup
EndSub
Sub Application_End(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs on application shutdown
EndSub
Sub Application_Error(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs when an unhandled error occurs
EndSub
Sub Session_Start(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs when a new session is started
EndSub
Sub Session_End(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs when a session ends.
' Note: The Session_End event is raised only when the sessionstate mode
' is set to InProc in the Web.config file. If session mode is set to StateServer
' or SQLServer, the event is not raised.
EndSub
</script>
خب ما با این 3 قسمت کار داریم :
Application_Start یعنی رمانی که پرژه برای اولین بار بر روی سرور اجرا میشه .
Session_Start یعنی زمانی که یه کاربر وارد میشه
Session_End یعنی زمانی که یه کاربر خارج میشه

مرحله 3 :
قسمت های گفته شده رو به این کد هایی که می نویسم تغییر بدین :
1)


Sub Application_Start(ByVal sender AsObject, ByVal e As EventArgs)
Application("NumUserOnline") = 0
EndSub
2)

Sub Session_Start(ByVal sender AsObject, ByVal e As EventArgs)
Session.Timeout = 20
Application.Lock()
Application("NumUserOnline") = Application("NumUserOnline") + 1
Application.UnLock()
EndSub
3)


Sub Session_End(ByVal sender AsObject, ByVal e As EventArgs)
Application.Lock()
Application("NumUserOnline") = Application("NumUserOnline") - 1
Application.UnLock()
EndSub
توضیح :
Session.Timeout = 20 یعنی بعد از 20 دقیقه این فعالیت انجام بشه .
بقیه ی کد ها کاملا واضح هستن !

نکته : این فایل Golbal یه مرجع میمونه و میشه از هر کجایی که دلمون خواست صداش بزنیم ، مثل کلاس ها ...

مرحله 4 و آخر :
مثلا میخوایم از فایل Defult.aspx یا هر فایل دیگه ای ، این خواصیت رو صدا بزنیم .
روی فایل دابل کلیک کنید تا باز بشه .
پایین صفحه سمت چپ دو قسمت وجود داره Source و Design ... کلید Source رو کلیک کنید تا وارد صفحه ی کد ( شبیه به HTML ) بشید .
حالا این عبارت رو بین تگ body کپی کنید :



Online : <%Response.Write(Application("NumUserOnline")) %> User
در واقع به صورت دقیق تر این کد رو باید اینطوری وارد کرد :


<body>
<formid="Form1"runat="server">

Online : <%Response.Write(Application("NumUserOnline")) %> User
</form>
</body>
خب حالا برنامه رو اجرا کنید ( F5 )
و اگه این برنامه بره تو اینترنت کابرهای آنلاین سایت شما رو نمایش میده .
توجه 1 : دقت کنید ، وقتی شما پرژه ی رو تو کامپوتر خودتون اجرا میکنید ، کامپیوتر شما تبدیل میشه به یه سرور مجازی و پایین صفحه کنار ساعت که گذینه اضافه میشه ...
اگه بعد از خاتمه ی برنامه این قسمت Stop بشه در واقع مثل اینه که سرور Reset شده و همونطور که تو قسمت Application_Start تعریف کردیم مقدار ابتدایی برای شروع مجدد سرور رو برابر صفر قرار بده و مقدار ما هم برابر صهر میشه ...
توجه 2 : هر کاربری بعد از 20 دقیقه از سیستم خارج میشه و رویه ی END اجرا میشه و یکی از شمارنده ی شما کم میشه ! سئوالی که پیش میاد اینه که اگه هنوز تو سایت باشه و یه مطلب طولانی رو میخونه اونوقت چی ؟ جواب : اگه کاری کنه که درخواستی به سرور ارسال شه باز شناسایی میشه و یکی به متغیرتون اضافه میشه .

( ببخشید اگه خطای لوپی ، لفظی ، املایی و ... داره )

فکر کنم بیش از حد گام به گام شد !!!

خب اگه از این ارسال خوشتون اومد و به اطلاعات اضافه شد و خواستین ازم تشکر کنین !!!
بر محمد و آل محمد صلوات بفرستین ، اینطوری با وجودی که این دنیامون خرابه ولی اون دنیامون خوب میشه ...

یا علی

khazon
سه شنبه 04 دی 1386, 02:13 صبح
شرمنده ، خواستم بنویسم نمایش افراد آنلاین سایت ، اشتباه نوشتم نمای ...
به هر حال من خواستم ارسال رو Delete کنم دوباره ارسال کنم ولی نمی دونم از جاست !!!

* عنوان ویرایش شد (titbasoft)