PDA

View Full Version : یه مطلب در مورد رویدادها



Majid2003
جمعه 30 آبان 1382, 10:28 صبح
با سلام خدمت تمام برو بچه های سایت برنامه نویس و البته تمامی استادهای عزیز!!!؟؟؟؟ :lol:
ببینید این مطلبی که من مینویسم درست هست یا نه؟(آخه من از روی e-book کار میکنم اینکه بعضی از مسائل برام نامفهومه، این کتاب های فارسی هم که قربونش برم باید دوباره کلمه هاشو به اینگلیسی ترجمه کرد تا تازه بفهمیم منظور نویسنده چی بوده. لطفا کمکم کنید.)
رویداد Application_Start وقتی انجام میشه که اولین شی Session ما درست بشه(به طور مثال شما یه سایت درست کردی و حالا اونو رو هوست فرستادی و اماده به کاره. وقتی اولین کاربر به سایت وصل میشه Application_Start اجرا میشه و بعد یک شی Session ایجاد میشه و بعد هم Session_Strat اجرا میشه.)
با این تفاصیر هر کاربری که وصل میشه یک شی Session جدید و با ID متفاوت درست میشه.تا وقتی که کاربر در سایت حضور داره و TimeOut تموم نشده شی Session مربوط به اون به قوت خودش باقیه.و هروقت که کاربر لینک و یا صفحه ای رو درخواست کنه تنها اتفاقی که می افته اینکه اول رویداد Application_BeginRequest و بعد Application_EndRequest اجرا میشه.
حالا فرش میکنیم که کاربرها یکی یکی ازسایت خارج میشن یا TimeOut اونها تموم میشه در این صورت رویداد Session_End هر کدوم اجرا میشه وقتی آخرین کاربر ازسایت خارج شد یعنی آخرین رویداد Session_End اجرا شد و آخرین شی Seeeion ازبین رفت اون وقت Appliction_End اجرا میشه و منابع برنامه مثل متغیرها و ... از بین میره، تا موقعی که دوباره یه کاربر وارد سایت بشه و این داستان ها دوباره تکرار بشه. :cry:
حالا چند تا سوال دارم:
1-رویداد Application_BeginRequest و Application_EndRequest دقیقا به جه دردی میخورن؟
2-اگه ما بخواهیم که یه متغیر سطح Application درست کنیم که مثلا تعداد افراد آنلاین یه هفته رو نگه داره باید چی کار کنیم که این متغیر بعد از خروج آخرین کاربر از بین نره؟ :?:
امیدوارم که همیشه پیروز و سربلند باشید 8)
متشکرم :wink:

Vahid_Nasiri
جمعه 30 آبان 1382, 12:30 عصر
1- بدرد نوشتن hit Counter
2- بهتر است از دیتابیس استفاده کنید و زیاد اعتمادی به اینگونه متغیرها نداشته باشید

Majid2003
پنج شنبه 13 آذر 1382, 06:46 صبح
با سلام
چه جوری میشه SessionID رو به لینکهای تمام صفحات اضافه کرد؟و چه جوری میشه فقط به لینکهای یک صفحه ی مورد نظر اضافه بشه(مثل همین سایت)؟
اگه جواب شما اینه که در قسمت <SessionState> فایل Web.config باید Cookieless="true" رو وارد کنم من این کارو کردم ولی با این عمل SessionID در قسمت آخر لینک قرار نمیگیره بلکه در وسط قرار میگیره(اما در این سایت در قسمت آخر لینک بعد از sid= قرارمیگیره!!)تازه تمام صفحات این طوری میشه نه اون صفحه ای که مد نظر منه!!
راستی یه سوال دیگه اینکه چه جوری میتونم به تمام Sessionهایی که در سرور وجود دارد(درحال اجرا است)دسترسی پیدا کنم.(مثل یه آرایه)
امیدوارم که همیشه پیروز و سربلند باشید
متشکرم

Majid2003
پنج شنبه 27 آذر 1382, 06:05 صبح
با سلام
چرا سایت اینجوری شده مثل اینکه بچه ها از اون جنب و جوش اولیه افتادن(جوابها برسی نمیشه یا اصلا جوابی داده نمیشه یا هر کس فقط تاپیک مورد نظر خودشو دنبال میکنه) :roll: امیدوارم هرچه زودتر این کسالت برطرف بشه :) چون برنامه نویسهای ما همیشه باید شاد و سرحال باشن :mrgreen:
اینم سوال من:(راستی سوال قبلی من هم بدون جواب مونده اگه میشه یه نگاهی هم به پست بالایی بندازید. :wink: )
این طوری که من متوجه شدم اگر زمان TimeOut تموم بشه یا کاربر یه IE جدید باز کنه(مثلا Open in new windows بکنه)یه Session جدید ایجاد میشه خب حالا سرور از کجا باید بفهمه که این Session جدید از همون کامپیوتر قبلی است (یعنی از یه یوزر جدید نیست). یعنی بتونه به ادامه کارهای مربوط به اون کاربر بپردازه نه که از اول شروع کنه.
از همتون متشکرم.

Vahid_Nasiri
پنج شنبه 27 آذر 1382, 22:57 عصر
سشن را چک کنید! اگر نال بود یعنی تخریب شده است و اگر همان مقدار مورد نظر شما را نداشت یعنی ........
در کل نگران این موضوع نباشید. در عمل مدیریت آن به عهده ی خود موتور مربوطه است.