PDA

View Full Version : مشکلاتی در نمایش خبرها (Datatable,Session,Querystrin,...)



astary.hosein
سه شنبه 06 فروردین 1392, 00:19 صبح
سلام دوستان ؛خسته نباشید؛
من خبرهای سایتم رو با یک repeater نمایش میدم.
ووقتی خبری انتخاب میشه که ادامه خبر رو نشون بدم ، کد خبر رو از طریق Querystring به صفحه "نمایش خبر"میفرستم.
اما نمیخوام که دوباره در اون صفحه ، خبر مورد نظر رو select کنم.و میخوام جدول خبرها روکه در صفحه ی اصلی select کردم به وسیله ی یک Session، به صفحه نمایش ارسال کنم. و رکورد موردنظرم رو از اونجا انتخاب کنم و ادامه خبر رو نشون بدم .
اصلا یه سوال :
به نظرتون اگر من کدخبر انتخاب شده رو به صفحه نمایش ارسال کنم و دوباره در اون صفحه ، رکورد مربوط به این کد خبر رو Selectکنم بهتره ،یا اینکه :
در صفحه ی اصلی که خبرها Select شدن رو از طریق Session ، به صفحه ی "نمایش خبر "بفرستم و کد مورد نظرم رو از اون session نمایش بدم ؟
در روش اول :دوبار به سرور رجوع میشه، ولی از حافظه سرور کمتر استفاده میشه
درروش دوم :یک بار سمت سرور میره ، ولی از حافطه سرور ،بیشتر استفاده میشه
حالا کدوم روش به نظرتون بهتره؟
------------------------------------------
به هر حال من روش دوم رو انتخاب کردم .
و حالا ،وقتی Datatable رو دریافت می کنم ، نمیدونم چطوری خبری رو که میخوام رو از توش در بیارم .
اینم کدهایی که نوشتم :لطف کنید با استفاده از کد راهنمایی کنید ؟


DataTable dt = (DataTable) Session["news"];;
id = Request["dis"].ToString();
DataRow[] dr = dt.Select("Id=" + id);

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

clover
سه شنبه 06 فروردین 1392, 07:57 صبح
سلام
کاری که می فرمایید (ذخیره در Session) به کل اشتباه هست. ممکنه کاربر از طریق جستجوی گوگل وارد سایت شده باشه و مستقیما به صفحه ی خبر بره. در این حالت Session ای وجود نداره. همینطور برای خزنده های گوگل و دیگر موتور های جستجو مشکل به وجود خواهد اومد.

در صورتی که قصد دارید وب سایت خودتون رو بهینه کنید، روی روش هایی مثل استفاده از Cache متمرکز بشید.

astary.hosein
سه شنبه 06 فروردین 1392, 19:14 عصر
سلام
کاری که می فرمایید (ذخیره در Session) به کل اشتباه هست. ممکنه کاربر از طریق جستجوی گوگل وارد سایت شده باشه و مستقیما به صفحه ی خبر بره. در این حالت Session ای وجود نداره. همینطور برای خزنده های گوگل و دیگر موتور های جستجو مشکل به وجود خواهد اومد.

در صورتی که قصد دارید وب سایت خودتون رو بهینه کنید، روی روش هایی مثل استفاده از Cache متمرکز بشید.
این طوری ،حتی استفاده از روشی که Id خبر که با Querystringارسال شده رو سرچ کنیم و خبر رو نمایش بدیم هم به درد نمی خوره ؟
من تا حالا از Cache استفاده نکردم ، میشه یه نمونه کد بزارید که هم مشکل من رو حل کنه و هم با استفاده از Cache باشه ، ایشالله که بتونم جبران کنم.
ممنون.

clover
سه شنبه 06 فروردین 1392, 22:21 عصر
این طوری ،حتی استفاده از روشی که Id خبر که با Querystringارسال شده رو سرچ کنیم و خبر رو نمایش بدیم هم به درد نمی خوره ؟
چرا به درد نمی خوره؟ روش اصلی دقیقا همین هست.


من تا حالا از Cache استفاده نکردم ، میشه یه نمونه کد بزارید که هم مشکل من رو حل کنه و هم با استفاده از Cache باشه ، ایشالله که بتونم جبران کنم.
ممنون.
به صورت تجربی برای سایت های کوچیک (حتی تا 5000 بازدید در روز) به مشکل خاصی بر نمی خورید، حتی اگر خیلی بد و غیر بهینه کد نویسی کرده باشید، اما اگر اصرار به بهینه سازی دارید جستجو کنید. در همین سایت برنامه نویس مثال ها و لینک های مرجع زیادی پیدا می کنید.

astary.hosein
سه شنبه 06 فروردین 1392, 22:27 عصر
روش اصلی اینه!!پس Cache کردن یعنی چی ؟نکنه همین موضع یعنی Cache!!!!!!!!!
البته من همچنان دارم سرچ میکنم.

fakhravari
چهارشنبه 07 فروردین 1392, 11:14 صبح
http://www.codeproject.com/Articles/6158/Caching-in-ASP-NET