ذخیره خروجی صفحات asp.net در حافظه سرور

kohyar

New Member
سلام دوستان
امروز می خوام عملیات Caching رو در Asp.net توضیح بدم
اولش باید خدمتتون بگم که هر صفحه در وب سایت های asp.net بصورت پیش فرض در هر بار فراخوانی می بایست یک بار کامپایل بشه و خروجی اطلاعات به کاربر نمایش داده بشه. ولیکن مشکل اینجاست که زمان کامپایل شدن صفحه به زمان نمایش اطلاعات اضافه میشه.
در صورتیکه تعداد مراجعات سایت شما زیاد باشه شما می تونید از خصوصیت caching استفاده کنید و خروجی html هر صفحه رو مدت زمانی در حافظه سرور نگه دارید تا در فراخوانی های بعدی کامپایل مجدد انجام نشود و فقط خروجی صفحه فراخوانی شده رو از حافظه سرور بخونید و به کاربر نمایش بدهید
برای شروع این پروژه ابتدا یک سایت جدید ایجاد کنید و یک لیبل روی یک فرم بگذارید و در کد پس زمینه فرم در Page_Load کد نمایش ساعت را بگذارید
PHP:
 Lbltime.Text = System.DateTime.Now.ToString();
تا اینجا وقتی سایت رو اجراء می کنید در هر بار رفرش صفحه ساعت جاری سیستم با نشان دادن ثانیه نمایش داده می شود. حال می خواهیم کاری کنیم که هر یک دقیقه (60 ثانبه) محتویات لیبل که نشان دهنده زمان جاری سیستم هستش نمایش داده بشه.
در فایل Web.config کد زیر رو اضافه می کنیم
PHP:
<caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="AppCache1" enabled="true" duration="60"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
یادتون باشه که کد زیر رو در تگ <system.web> اضافه کنید
تا اینجا شما پروفایل رو با مدت زمان رفرض 60 ثانیه تعریف کردید
حال باید در بالای کد اچ تی ام ال تمامی صفحاتی که قراره خروجی Html شون تو حافظه سرور ذخیره بشه و هر 60 ثانیه کامپایل بشه، کد زیر رو اضافه کنید
PHP:
<%@ outputcache cacheprofile="AppCache1" varybyparam="none" %>
نمونه پروژه رو هم رو سایت گذاشتم می تونید از اونجا دانلود کنید
http://netsazeh.com/Project/SavePageInMemory.rar
موفق و موید باشید.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا