cache : همون طور که ميدونيد کش کردن يعني اطلاعاتي را به طور موقت در حافظه که عموما حافظه موقت نام ميدن .اين کار باعث ميشه که هزينه هاي همچون مراجه به سرور و باز خواني از آن کم بشه ولي خوب از نظرف صرف حافظه هزينه بر است.
اکثر ما برنامه نويسها فکر ميکنيم که کش کردن و استفاده از آن الزامي نيست.البتهخ درسته الزامي نيست اما اگر بدونمي 2-3 و در بعضي مواقع تا 10 برابر پرفورمنس رو بالا ميبره.
البته به شرط درست استفاده کردن.
به طور کلي کش کردن به دوس دسته تقسيم ميشه.
Output Caching , Data Caching
out put : اخرين صفحه اي که رندر شده را براي کلاينت بعدي در کش نگه ميدارد و آن را تحويل کلاينت بعدي که در خواست همان صفحه را دارد ميدهد.
(منظورم المانهاي html است)
Data : اطلاعاتي مثل ديتاست را نگه داري ميکند.البته به صورت خودکار درون بر روي صفحات وب اعمال ميشود.تقريبا شبيه application state است
اما خيلي براي Server Friendly تر ميباشد چون وقتي حجم آن بالا رفت به طور خود به خود آن را خالي مي کند
fragment cache(Output Cache مربوط به):
به جاي آنکه html را بر روي تمامي صفحات کش کند آن را براي قسمتي کش مي کند.
Data source caching(مربوط به Data caching) : کشي است که در داخل datasource control هايي مثل
sqldatasource,objectdatasource,Xmldatasource
درست ميشود.از نظر فني شبيه datacaching است اما نياز به به دست گيري صريح آن و نيست
(not Explicity)
نکته : شايد asp.net منابع ثابتي مثل عکس را نتواند کش کند اما نگران نباشيد چون IIS به خوبي اين کار را به صورت خود کار انجام مي دهد
براي کش کردن 2 راه وجود دارد:
راه اول :
در رويداد لود صفحه کد زير را وارد کنيد

lbl1.text=datetime.now.tolongtimestring()

و حال در صفحه aspxخود اين تگ را اضافه کنيد

<%@ outputcache duration="20" varyByParam="None" %>


صفحه را اجرا کنيد.در بار اول ساعت فعلي را ميبينيد.دوباره آن را باز سازي کنيد.شگفت انگيزه نه؟ به مدت 20 ثانيه ساعت اوليه رو نشون ميده!
حتما متوجه شدين Duration مقدار زماني که Asp.net اين صفحه رو در کش نگه داري ميکنه است

ادامش باشه برای بعد ببینیم اصلا به درد کسی خورده یا نه
ممنون از توجهتون