ورود

View Full Version : سوال: چگونه آمار بازدید گنندگان را در asp.net mvc بدست آوریم؟



880820673
یک شنبه 04 مرداد 1394, 17:15 عصر
سلام
خواهشمندم به من کمک کنید

sanay_esh
دوشنبه 05 مرداد 1394, 11:52 صبح
شما بهتره در سایت جاری یا سایتهای مشابه حتی در گوگل جستجو کنید صدها نمونه کد برای آمار بازدید در MVC می یابید.

بهتره کلمات کلیدی هم استفاده کنید : مانند Visitors Count یا Online User

به این لینک ها هم یه سر بزنید
1 (http://www.c-sharpcorner.com/Blogs/46603/how-to-count-total-number-of-hit-in-Asp-Net-mvc.aspx)
2 (http://stackoverflow.com/questions/6504642/how-to-count-number-of-visitors-of-pages-mvc)
3 (http://forums.asp.net/t/2044631.aspx?Hit+counter+in+ASP+NET+MVC4+using+dat abase+for+storage)

r4hgozar
یک شنبه 11 مرداد 1394, 11:27 صبح
سلام.
تو تمام مقالاتی که شما دادین فقط اومده و بازدید کننده انلاین رو نشون داده.
و اگه خوایم این ها رو در بانک ذخیره کنیم و مثلا بصورت زیر نمایش بدین کاملا غیر بهینه هست. چون هر بار باید در دیتابیس ذخیره کنیم کاربر جدید رو.(البته چیزی که من بلدم)
بازدید کننده آنلاین
بازدید دیروز
بازدید امروز
بازدید هفته
بازدید کل

خوب حالا اگه ما بخوایم تنها یک بار در روز اطلاعات رو ذخیره کنیم. یعنی مقدار کاربران روز رو نگه داریم و مثلا در 12 شب اون رو وارد دیتابیس کنیم و مقدار متغییر دوباره 0 بشه.
اگه ما از aplication.end هم استفاده کنیم برای نگهداری متغییر در یک روز باز هم منطقی نیست.چون امکان داره کاربری نباشه و مقدار 0 بشه.
اگه دوستان تحربه ای در این ضمیه دارن ممنون میشم راهنمایی کنند. که چطوری میشه یه امار بازدید خوب برا mvc تهیه کرد.
خیلی دنبالش گشتم

omid nasri
یک شنبه 11 مرداد 1394, 23:51 عصر
سرویس های زیادی موجود هستش که شما می تونی از آن استفاده کنید، ولی پیشنهاد بنده استفاده از سرویس گوگل هستش که تمامی امکانات مدیریت خروج و ورود ها رو بر حسب نیاز شما برسی خواهد کرد .
یکی از معایب این سرویس در دست رس نبودن برای کاربران ایرانی هستش که برای استفاده از آن باید از ف ی ل ت ر ش ک ن استفاده کنی. به این معنی برای دیدن نمایش خروجی دستور شما فیلتر شدن باید روشن باشد.

r4hgozar
دوشنبه 12 مرداد 1394, 08:26 صبح
درسته من تو خیلی از مقالات خارجی گوگل انالیز رو دیدم.
اما من می خوام این امکانات رو در اختیار کاربر قرار بدم.
اگه کسی تجربش رو داره ممنون میشم پیشنهاد بده.

sanay_esh
دوشنبه 12 مرداد 1394, 10:39 صبح
به تاخیر انداختن اینکه آخر روز به دیتابیس درج کنید یک مشکل عمده ای را بوجود میارد که شما میخواهید این اطلاعات یک روز را کجا نگهدارید ؟!

اگر در سشن session نگهدارید که فاجعه است .
اگر در فایل نگهدارید که کمی غیر معمول است چون آنچنان با ذخیره در بانک تفاوتی ندارد.

اگر راه حل دیگری دارید ارائه نمائید تا بقیه دوستان هم مطلع شوند...

r4hgozar
دوشنبه 12 مرداد 1394, 11:59 صبح
من قدیم با یه دوستم اقای Mathteacher که لطف کردن با هم این کد رو نوشته بودیم.
من اینجوری کار کردم. از دیروز روش نشستم دوباره یکم روش کار کردم تا کامل تر شد


protected void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application["today"] = (int)Application["today"] + 1;
var dt1 = (DateTime)Application["date"];
if (dt1 == null)
{
dt1 = DateTime.Now;
Application["date"] = DateTime.Now;
}
var dt2 = DateTime.Now;
TimeSpan ts = dt2.Subtract(dt1);
int days = ts.Days;

var see = new Visitor(_service);
see.Check();



Application.UnLock();
}



این نمی دونم بهنه هست یا نه.
اما با کاری که تو کلاسش کردم. فقط روزی یه بار میره و اطلاعات رو تو دیتابیس ذخیره می کنه.و دوباره آنلاین یوزر 0 میشه تا روز بعدی. داره از session استفاده میشه.
اما از طرف دیگه اطلاعات فقط یه بار در هر روز میره و در دیتابیس ذخیره میشه.
در واقع session یک کانتر برای کاربر امروز.
البته تا حالا چند بار در هاست یکی از سایت هام وقتی تعداد بازدید بالای 500 رفت سایت ارور داد. ارور اجرا شدن این کلاس.
ممنون میشم دوستان راهنمایی کنند.

r4hgozar
سه شنبه 13 مرداد 1394, 14:46 عصر
کسی نظری نداره؟

hakim22
جمعه 16 مرداد 1394, 11:48 صبح
بهترین راه اینه که شما اطلاعات رو در دیتابیس لوگ کنید. بعد همیشه میتوانید از اطلاعات گزارش گیری کنید.
سیستم لوگ کارایی بالایی داره . به این صورت که شما ورود و خروج کاربرها یا کارهای مختلفی که در سایت انجام میدهند را لوگ میکنید
بعد میتوانید علاوه بر گزارش گیری آماری برای بررسی ها امنیتی و همینطور عیب یابی سیستم ازش استفاده کنید.

میتوانید سیستم لوگ رو دستی بنویسید یا از log4Net یا NLog استفاده کنید.

برای چک کردن ورودی کاربر هم لوگ شما باید در متد Session Start اجرا شود.

یک راه بسیار خوب این است که یک ActionFilter از نوع Global تعریف کنید و همه ی رفتار کاربر و کسانی که از سایت بازدید میکنند لوگ کنید. معمولا سرعت ذخیره اطلاعات بالاست
و کاربر کندی احساس نمیکند . هر زمان احساس کردید در سرعت سایت شما تاثیر گذار بوده میتوانید به بهینه سازی یا روش دیگر فکر کنید. غیر فعال کردن این سیستم خیلی ساده است.

mbasirati
دوشنبه 07 دی 1394, 15:59 عصر
سلام

برای بخش پنل مدیریت هر وب سایت معمولا نباید بازدیدی ثبت بشه. این رو چطور میشه مدیریت کرد؟

kafinetetaha
چهارشنبه 26 خرداد 1395, 10:30 صبح
در سایت برنامه نویسان در مورد این مطلب کاملا تو ضیح داده شده