ورود

View Full Version : حرفه ای: ایجاد یک وب سایت خبری



noroozifar
دوشنبه 12 آبان 1393, 16:04 عصر
سلام
یک سایت خبری همچون varzesh3.com از چندین بخش درست شده و وقتی این سایت را نگاه میکنیم خیلی سریع صفحه را لود میکنه حالا می خواهم همینجور سایتی ایجاد کنم فیلدهای بانک به این صورت ایجاد کردم :
id شماره خبر
titlenews عنوان خبر
summerynews خلاصه خبر
body متن اصلی خبر
createdate تاریخ ایجاد
updatedate تاریخ آخرین ویرایش
imageurl عکس خبر
pubic خبر عمومی
special خبر ویژه
education خبر آموزش
malinews خبر مالی
comantes مجموعه نظرات در یک کالکشن
visitor تعداد افراد بازدید کننده خبر

حالا تو صفحه اصلی می خواهم فقط خبرهای عمومی و خبرهای ویژه و خبرهای آموزشی به تعداد 10 تا از آخرین خبرها ایجاد شده نمایش بگذارم پس مجبورم سه تا query ایجاد کنم و این باعث میشه راندمان سایت کم بشه مخصوصا برای عکس های مربوط به خبرها و صفحه خیلی دیر بیاد بالا و فشار زیادی هم به سرور وارد بشه یا همان هاست

به نظر شما چه کاری باید انجام بدم؟

hadi0x7c7
سه شنبه 13 آبان 1393, 15:59 عصر
output chache
https://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs
رو امتحان کردید؟

noroozifar
سه شنبه 13 آبان 1393, 18:22 عصر
بله امتحان کردم

[OutputCache(Duration=360,VaryByHeader="X-Requested-With",Location= OutputCacheLocation.Server)]
public ActionResult Index(int page = 1)
{

var model = (from r in db.News.AsEnumerable()
orderby r.CreateDate descending
select new NewsViewModel
{
Body = r.Body,
Comments = r.Comments,
Education = r.Education,
Financial = r.Financial,
Id = r.Id,
ImageUrl = r.ImageUrl,
Notic = r.Notic,
Public = r.Public,
Refahi = r.Refahi,
Special = r.Special,
Summary = r.Summary,
Title = r.Title,
Visitors = r.Visitors,
CreateDate = ((persian.GetYear(r.CreateDate) + "/" + persian.GetMonth(r.CreateDate) + "/" + persian.GetDayOfMonth(r.CreateDate))),
UpdateDate = ((persian.GetYear(r.UpdateDate) + "/" + persian.GetMonth(r.UpdateDate) + "/" + persian.GetDayOfMonth(r.UpdateDate)))
}).ToPagedList(page,6);
ViewData["News"] = model;
if (Request.IsAjaxRequest())
{
return PartialView("_PartialNews", ViewData["News"]);
}

return View();
}