برای اضافه كردن يك شی درون cache از روش های مختلفی استفاده می گردد . يكی از روش های موجود نسبت دهی داده مورد نظر به يك نام و ذخيره آن در شی cache است ( نظير كار با اشياء Session و Application ) . با توجه به اين كه در اين روش نمی توان برای شی cache شده يك مدت زمان خاص را مشخص نمود ، استفاده از اين روش كمتر توصيه شده است .

 Cache(“KeyName”) = objectToCache

يكی ديگر از روش های درج داده درون شی cache ، استفاده از متد Insert است . متد فوق دارای چهار نسخه خاص است . در جدول زير ، گرامر يكی از نسخه های فوق كه جزئيات بيش تری از كار را با بكارگيری پنچ پارامتر مشخص می نمايد، نشان داده شده است .

Cache.Insert(key, item, dependencies, absoluteExpiration, slidingExpiration)

در جدول زير عملكرد هر يك از پارامترهای متد Insert توضيح داده شده است .

پارامتر عملكرد
Key  نام در نظر گرفته شده برای آيتم Cache شده را مشخص می نمايد. بدين ترتيب ، امكان دستيابی به آيتم Cache شده بر اساس نام فراهم  گردد.
Item  شی واقعی كه قصد caching آن را داريم ، مشخص می نمايد .
dependencies يك شی CacheDependency كه به شما اجازه می دهد يك وابستگی برای آيتم مورد نظر در cache را ايجاد نمائيد .
در صورتی كه قصد تعريف يك آيتم وابسته را نداريم ، مقدار اين پارامتر می بايست  null در نظر گرفته شود .
absoluteExpiration  يك شی DataTime كه  زمان و تاريخ خارج كردن آيتم cache شده  از cache را مشخص می نمايد .
slidingExpiration  يك شی TimeSpan كه مدت زمان انتظار بين درخواست های متوالی در صورت عدم استفاده از داده cache شده جهت خروج از cache را مشخص می نمايد .
به عنوان مثال ، در صورتی كه اين مقدار 20 دقيقه در نظر گرفته شود و در مدت زمان فوق هيچگونه درخواستی برای داده فوق دريافت نگردد ،‌ ASP.NET آن را از حافظه خارج خواهد كرد .

جدول 1 : پارامترهای متد Insert

معمولا” از تمامی پارامترهای فوق در يك زمان استفاده نمی گردد . به عنوان مثال ، Cache dependencies يك ابزار خاص است كه به كمك آن می توان وابستگی يك آيتم cache شده به ساير منابع تاثيرگذار را مشخص نمود .
در صورتی كه قصد استفاده از يك absolute expiration را داشته باشيم ، می بايست مقدار پارامتر slidingExpiration معادل TimeSpan.Zero در نظر گرفته شود.

 Cache.Insert(“MyItem”, obj, Nothing,DateTime.Now.AddMinutes(60), TimeSpan.Zero)

در صورتی كه مطمئن باشيم اطلاعات موجود در يك آيتم cache شده در يك بازه زمانی خاص معتبر باقی می ماند ( نظير يك گزارش هواشناسی ) ، استفاده از absolute expiration توصيه می گردد . در صورتی كه داده ذخيره شده در cache همواره معتبر باشد ( نظير كاتولوگ يك محصول ) ، استفاده از Sliding expiration  توصيه می گردد . به عنوان يك سياست مطلوب در خصوص بكارگيری  Sliding expiration  ، می توان مقدار پارامتر absoluteExpiration را به DateTime.Max  نسبت داد .

Cache.Insert(“MyItem”, obj, Nothing,DateTime.MaxValue, TimeSpan.FromMinutes(10))

يك مثال كاربردی
در برنامه زير يك سيستم caching داده ساده پياده سازی شده است . در اين مثال يك آيتم  با نام TestItem كه تاريخ و زمان جاری را در خود نگهداری می نمايد به مدت 30 ثانيه cache می گردد . پس از postback صفحه ، در صورتی كه تاريخ اعتبار آيتم ذخيره شده در cache به اتمام نرسيده باشد ، مقدار آن از cache بازيابی و در خروجی نمايش داده می شود . پس از اتمام تاريخ اعتبار آيتم ذخيره شده در cache ، مجددا” و بر اساس داده جديد ( تاريخ جديد سيستم ) آيتم مورد نظر ايجاد و  جهت استفاده آتی در cache  ذخيره می گردد .

دسته بندی : افزایش درآمد سایت