جستجو در دورآموز

خانه / وبگاه / نحوه کش کردن یک متد اکشن asp.net core
432 برگشت

نحوه کش کردن یک متد اکشن asp.net core

رامین اسلامی
رامین اسلامی

مدیر وب سایت دورآموز ،مدیر پروژه تیم برنامه نویسی جی وب ، برنامه نویس و مدرس زبان های برنامه نویسی و گرافیک

دوشنبه، 07 بهمن 1398 ساعت 12:32:20
نحوه کش کردن یک متد اکشن asp.net core

آموزش کش کردن یک اکشن متد در asp.net core

در asp.net core میتوان دسترسی به بانک اطلاعاتی و دریافت اطلاعات را با ذخیره آن در حافظه کش سرور به حداقل رساند .با این کار سرعت اجرای صفحات به صورت چشمگیری افزایش می یابد.
بدین منظور مراحل زیر را  دنبال نمایید


تنظیم فایل startup

  public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => false;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
 
     
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            //این کد را اضافه کنید
             services.AddMemoryCache();
        }

تزیق وابستگی IMemoryCache

private readonly IMemoryCache _memoryCache;
 
        //  private readonly ILogger _logger;
public HomeController(IMemoryCache memoryCache)
 {
    _memoryCache = memoryCache;
           
 }

بررسی وجود حافظه کش

YourModel cache;
bool isExist = _memoryCache.TryGetValue("CacheModel", out cache);
if (!isExist)
    {
                cache = await YourMethode();
 
                var cacheEntryOptions = new MemoryCacheEntryOptions();
                   cacheEntryOptions.SlidingExpiration = TimeSpan.FromSeconds(1800);
                cacheEntryOptions.Priority = CacheItemPriority.Normal;
 
                _memoryCache.Set("CacheModel", cache, cacheEntryOptions);
 
            }

در کد فوق YourMethode نام متدی است که میخواهید فراخوانی شود و YourModel  مدلی است که متد باید برگرداند
SlidingExpiration : مدت زمان ذخیره در کش ۳ ساعت تنظیم شده است
Priority : میزان اهمیت حافظه تا در صورت شرایط بحرانی به ترتیب بتواند حافظه را پاک سازی نماید
 

جهت برقراری ارتباط با نویسنده پست و یا ارسال نظر اطلاعات زیر را وارد نمایید
تصویر کپچا دورآموز
مرتضی سلطانپور

با تشکر از شما بابت مطلب خوبتون. با این روش میشه راحت کش رو بصورت داینامیک طراحی کرد بطوریکه از پنل مدیریت تک تک صفحات قابل کنترل باشند.

پاسخ
سلام . بله می توان از روش کش کردن حافظه برای مشاهده اطلاعاتی که زیاد تغییراتی ندارند استفاده نمایید . در پنل مدیریت باید با تغییر اطلاعات و یا ثبت اطلاعات جدید کش قبلی را حذف و کش جدید ایجاد نمایید
سوالات متداول دورآموز