ورود

View Full Version : تبدیل بخشی از Page به tagهای HTML برای کم کردن حجم کاری سرور



Wily_Fox
سه شنبه 21 خرداد 1392, 23:53 عصر
با سلام

آیا میشه برای اینکه کمتر به دیتابیس رجوع کنیم بخشی از page رو که ثابت هست مثل تبلیغات و ... رو در زمان Update یا Insert یا (در یه بازه زمانی خاص مثل 2 تا 4 صبح در صورت نیاز فایل رو حذف و دوباره ایجاد کنیم) به tag های HTML تبدیل کرد و در یه PartialView ذخیره کرد. و از این PartialView استفاده کرد؟

آیا بهینه هست؟

فرض کنید حجم در خواست های سرور خیلی زیاد هست. و این کار رو فقط واسه کم کردن حجم کار سرور انجام خواهیم داد.

pcseven
چهارشنبه 22 خرداد 1392, 00:31 صبح
با سلام

آیا میشه برای اینکه کمتر به دیتابیس رجوع کنیم بخشی از page رو که ثابت هست مثل تبلیغات و ... رو در زمان Update یا Insert یا (در یه بازه زمانی خاص مثل 2 تا 4 صبح در صورت نیاز فایل رو حذف و دوباره ایجاد کنیم) به tag های HTML تبدیل کرد و در یه PartialView ذخیره کرد. و از این PartialView استفاده کرد؟

آیا بهینه هست؟

فرض کنید حجم در خواست های سرور خیلی زیاد هست. و این کار رو فقط واسه کم کردن حجم کار سرور انجام خواهیم داد.

راه صحیح اینست که PartialView مربوطه را Cache کنید.


[ActionOutputCache(60)] // Caches for 60 seconds

برای اطلاعات بیشتر این لینک (http://blog.stevensanderson.com/2008/10/15/partial-output-caching-in-aspnet-mvc/) را ملاحظه فرمایید.

Wily_Fox
چهارشنبه 22 خرداد 1392, 17:25 عصر
در صورتی که از Ajax استفاده کنیم آیا باز نیازی به کش کردن هست؟

آیا Ajax حجم درخواست های سمت سرور رو به حداقل می رسونه؟

pcseven
پنج شنبه 23 خرداد 1392, 12:01 عصر
در صورتی که از Ajax استفاده کنیم آیا باز نیازی به کش کردن هست؟

آیا Ajax حجم درخواست های سمت سرور رو به حداقل می رسونه؟

Ajax حجم اطلاعات مبادله شده سمت کلاینت را کاهش می دهد، در حالی که Cache کردن اطلاعات موجب کاهش بار روی سرور شده و در پاسخ به درخواستهای مشابه در بازه های زمانی و شرایط تعریف شده، بجای پردازش چند باره ی درخواست، نتیجه پردازش قبلی را ارسال می کند.

Wily_Fox
پنج شنبه 23 خرداد 1392, 12:22 عصر
من یه مدل دارم به شرح زیر:


public class HomePageViewModel
{
public IEnumerable<Slider> S_Models { set; get; }
public IEnumerable<Advertisement> A_Models { set; get; }
public OwnAdertisement O_Model { set; get; }
public IEnumerable<TabControl> T_Models { set; get; }
public IEnumerable<News> N_Models { set; get; }
public IEnumerable<MenuBottom> MB_Models { set; get; }
}


در HomeController اون رو پر می کنم. دفعه بعدی که کاربر درخواست بفرسته در واقع فقط N_Models هستش که با درخواست کاربر تغییراتی توش داده میشه و اون رو پر خواهیم کرد. یعنی بقیه قسمت ها دقیقا مثل قبل پر میشه.

حالا سوال اینجاست: من این مدل رو هر دفعه به این شکل پر می کنم و ارسال می کنم. کدام قسمت از این مدل رو کش کنم؟ مدل که یه بخش واحد هست و نمیشه اون تکه تکه کرد.

آیا مدل رو به دو مدل دیگه تقسیم کنم و مدل پایه رو کش کنم؟ چگونه؟

متشکرم