کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش MVC Core-ASP.NET Core 2.0 Response Caching



آموزش MVC Core-ASP.NET Core 2.0 Response Caching

Problem

نحوه ذخیره(cache) responses در ASP.NET Core.

Solution

برای یک پروژه خالی ایجاد کنید، services و middleware برای ذخیره در Startup پیکربندی کنید،

public void ConfigureServices(  
       IServiceCollection services)  
   {  
       services.AddResponseCaching();    
       services.AddMvc();  
   }    
   public void Configure(  
       IApplicationBuilder app,  
       IHostingEnvironment env)  
   {  
       app.UseResponseCaching();    
       app.UseMvcWithDefaultRoute();  
   }  

یک کنترلر ایجاد کنید، و ویژگی [ResponseCache] را اضافه کنید:

[ResponseCache(Duration = 60)]  
 public class HomeController : Controller  
 {  
     public IActionResult Index()  
     {  
         return View(new HomeOutputModel  
         {  
             LastUpdated = DateTime.Now  
         });  
     }  
 }  

پاسخ حاوی یک هدر Cache-Control است.


آموزش MVC Core

همانطور که بین کنترلر با قابلیت ذخیره سازی(caching) (Home) و یکی دیگر بدون آن (Movies) حرکت می کنید، متوجه خواهید شد که زمان به روزرسانی نشده است، یعنی آن را از سرور دریافت نمی کند بلکه از حافظه پنهان دریافت می کند.


آموزش MVC Core

Discussion

Response Caching middleware مسئول ذخیره و خدمت به پاسخ از cache است. هدرهای مرتبط با حافظه پنهان را به پاسخ HTTP اضافه می کند،و Cache-Control اصلی آن است.
هنگامی که middleware تنظیم می شود، ویژگی [ResponseCache] به controller / action اعمال می شود تا caching را فعال کند. این ویژگی دارای برخی از پارامترهای مفید برای تغییر رفتار middleware است.

  • Duration : استفاده از تنظیم زمان کش (در ثانیه).
  • Location : به هدر Cache-Control به عنوان public ، private یا no-cache ترجمه می شود.
  • VaryByQueryKeys: پاسخ ها بر اساس پارامترهای query string ذخیره می شوند.
  • VaryByHeader: استفاده می شود تا هدر پاسخ Vary HTTP را تنظیم کند.
  • CacheProfileName: میتواند به تنظیمات پروفایل حافظه پنهان در middleware MVC اشاره کند (نگاه کنید به زیر).
    services.AddMvc(options =>  
            {  
                options.CacheProfiles.Add("default", new CacheProfile  
                {  
                    Duration = 30,  
                    Location = ResponseCacheLocation.Any  
                });  
            });  
    

Logging

شما می توانید ورود به سیستم را فعال کنید تا عملکرد میان افزار Response Caching middleware را مشاهده کنید. در زیر اولین درخواست برای Home / Index است (خطوط highlighted را ببینید). درخواست های بعدی در این چرخه عمر(lifecycle) قرار می گیرند و به صفحه از حافظه پنهان (تا تاریخ انقضای آن) خدمت می کنند:


آموزش MVC Core

source code را می توانید از لینک زیر دانلود کنید:

https://github.com/TahirNaushad/Fiver.Perf.ResponseCaching

دانشجویان محترم می توانید فایل مربوط به این درس را در بخش پایینی دانلود نمایید .

1397/03/02 3239 1887
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...