منظور این کد چیه ؟session

khz-web1

Active Member
منظور این کد چیه ؟


لطفا اگه میشه کامل توضیح بدید (چون خودم یه چیزهایی ازش میدونم)




کد:
<Script Runat="Server">


  

   Sub Session_Start()


  

      If Application("SessionCount") Is Nothing Then


  

         Application("SessionCount") = 0


  
      End If

    

      Application("SessionCount") += 1


  
   End Sub

    
   Sub Session_End()

  
     Application("SessionCount") -= 1

  
   End Sub

  
</Script>
 

TNZ187

Member
Application

سلام
می دونید که ما در Global.asax دو تا رویداد برای شروع عمر Session های یک بازدید کننده و برای پایان اون عمر داریم . برنامه نویس از این دو رویداد در واقع استفاده کرده است تا تعداد بازدیدکننده ها آنلاین رو مشخص کنه . حالا چه جوری ؟
همان طور که می دونید در Asp.net ما Session و Application رو به عنوان دو نوع حافظه در اختیار داریم . Application در تمام پروژه قابل دسترس است و البته برای همه کاربرها یکسان است . ولی Session برای کاربران متفاوت ، فرق می کند . به ازای هر بازدید کننده یک Session داریم .
برنامه نویس در این جا اطلاعات خودش رو روی Application ذخیره می کنه تا از تمام پروژه قابل دسترس باشه و به ازای همه یکسان چرا که وقتی می خواهد تعداد کاربران آنلاین رو استفاده کنه ، در واقع مقدار این Application رو نشون می ده . هر وقت یک Session ایجاد می شه ( که نشون دهنده ورود یک بازدیدکننده تازه است ) یک عدد به عدد متغیر موجود در Application اضافه می شه و هر وقت که Session از بین می ره ( که نشون دهنده این است که یک بازدید کننده برای مدت مشخصی با سایت ارتباط نداشته پس احتمالا از سایت بازدید نمی کنه ) یک عدد از متغییر درون Application کم می شه .
در آخر ما یک شمارنده بازدیدکنندگان آنلاین داریم. اگه باز هم سوالی هست بفرمایید.
 

khz-web1

Active Member
سلام جناب آقای Tnz187

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

پس این کدی که به من دادن مال افراد آنلاین هست ، من فکر کردم ما شمارنده سایت هست(واسه همین خودم هم کمی گیج شدم)


حالا اگه بخواهیم شمارنده بسازیم باید چیکار کنیم
 

TNZ187

Member
شمارنده

سلام
مطمئنا خود شما هم می دونید که انواع مختلفی از شمارنده وجود داره . مثلا شمارنده ای که هردفعه صفحه Refresh بشه یکی زیاد می شه . شمارنده ای که هر نفر رو بعد از اولین شمارش ، به حساب نمی یاره تا یه مدت زمان خاصی بگذره . شمارنده ای که Ip افراد رو ذخیره می کنه و این جوری خیلی ها فقط یک بار به شمارش می شند و ما بقی که IP مختلف استفاده می کنند ، حداقل تا وقتی که Ip خودشون رو عوض نکرده باشند .( معمولا بعد از Disconnect شدن و یا تغییر proxy ) . حالا شما چه مدلی رو مد نظر قرار دادید ؟
برای مثال اگه شما قسمت زیر رو از کدتون حذف کنید یک شمارنده خواهید داشت .
کد:
Sub Session_End()

  
     Application("SessionCount") -= 1

  
   End Sub
شمارنده ای که با این کار ایجاد می شه امکان تکرار یک فرد رو تنها در بازه های زمانی مشخص فراهم می کنه . مثلا 1 ساعت ( بسته به تنظیمات شما در قسمت Web.config داره ) . البته هر شمارنده طبق یک منطق طراحی می شه . مثلا ممکنه شرایط یک سایت ایجاب کنه که از همچین شمارنده ای استفاده کنه . مثلا سایت های خبری . چون هر چند وقت یک بار مطالب اون ها عوض می شه و برای اون ها مهمه که چند نفر به سایت سر می زنند ولو اینکه یک ساعت قبل هم بازدید کرده باشند .
یک روش پر استفاده دیگه ، بهره گیری از Cookie . تقریبا مشابه Session عمل می کنه با این تفاوت که اطلاعات روی دستگاه فرد ذخیره می شه و اگه کاربر اون رو پاک نکنه تا مدت زیادی می تونه به حیات خودش ادامه بده .
چیزی که مهمه اینه که راه های زیادی وجود داره و شرایط شما مشخص می کنه که کدوم راه مناسب تره.:wink:
 

جدیدترین ارسال ها

بالا