يدعم Asp.net ثلاثة أنواع من ذاكرة التخزين المؤقت.
أريد أن أكتب نظرة عامة تقنية سريعة، ولكنها قد تكون أكثر من اللازم. الغرض من النظرة العامة الفنية هو وصف النقاط الفنية بأسرع وأبسط طريقة، وهي أيضًا الطريقة الأكثر فعالية لنشر المعرفة كما آمل.
1. ذاكرة التخزين المؤقت للصفحة/التحكم
2. ذاكرة التخزين المؤقت على مستوى التطبيق
3. ذاكرة التخزين المؤقت للعميل المتصفح
من منظور التنفيذ، يتم تخزين ذاكرة التخزين المؤقت للصفحة/التحكم وذاكرة التخزين المؤقت على مستوى التطبيق في ذاكرة الخادم عندما تصبح الذاكرة ضيقة، قد يتم حذف هذه المحتويات مسبقًا قبل أن تصبح غير صالحة. (تحدد خصائص ذاكرة التخزين المؤقت إمكانية حذف هذه المحتويات بثقة). يتم تخزين ذاكرة التخزين المؤقت لعميل المتصفح في ذاكرة التخزين المؤقت لمتصفح العميل، على سبيل المثال، يعمل المجلد المؤقت لـ IE كذاكرة تخزين مؤقت. في كل مرة يطلب فيها المستخدم صفحة، سيقوم المتصفح أولاً بالبحث في ذاكرة التخزين المؤقت لمعرفة ما إذا كان هناك محتوى ذاكرة تخزين مؤقت يلبي المتطلبات ولم تنتهي صلاحيته، وإذا كان الأمر كذلك، فسوف يقرأه مباشرة من ذاكرة التخزين المؤقت ويتخطى نقل الشبكة.
يوضح ما يلي طريقة الكتابة المحددة في Asp.net:
1. يمكن الإعلان عن ذاكرة التخزين المؤقت للصفحة/التحكم في ملف aspx أو ascx أو يمكن الإعلان عنها في الكود الموجود خلفها.
<%@ OutputCache Duration = "#of Seconds"
Location = "أي | عميل | المصب | الخادم | لا شيء |
ServerAndClient "
Shared = "True | False"
VaryByControl = "controlname"
VaryByCustom = "browser | سلسلة مخصصة"
VaryByHeader = "رؤوس"
VaryByParam ="parametername"
CacheProfile = "اسم ملف تعريف ذاكرة التخزين المؤقت | ''"
NoStore = "true | false"
SqlDependency = "زوج اسم قاعدة البيانات/الجدول | CommandNotification"
%>
المعلمات الرئيسية هي:
المدة: وقت تفعيل ذاكرة التخزين المؤقت، وحدة الثواني
المشتركة: إنها صالح فقط لعناصر التحكم عندما يمكن تطبيق عنصر التحكم على صفحات متعددة في نفس الوقت، فهل يمكن لصفحات متعددة مشاركة ذاكرة التخزين المؤقت هذه دون أن تحتفظ كل صفحة بذاكرة التخزين المؤقت الخاصة بها لعنصر التحكم هذا؟
VaryByControl: تتغير ذاكرة التخزين المؤقت باستخدام معرف عنصر التحكم
VaryByCustom: يتم تحديد المتغير هنا ويجب تنفيذه في Global.ascx:
سلسلة التجاوز العامة GetVaryByCustomString (
سياق HttpContext،
سلسلة مخصصة
)
. بيان المعلمة المخصصة هي المتغير المعلن في OutPutcache. يتم تمثيل محتويات ذاكرة التخزين المؤقت المختلفة عن طريق إرجاع قيم سلسلة مختلفة لمعلمات مخصصة مختلفة في هذه الوظيفة.
تقوم VaryByHeader وVaryByParam وCacheProfile أيضًا بتعيين إصدارات مختلفة من ذاكرة التخزين المؤقت.
يعني NoStore أنه لا يُسمح بكتابة محتويات ذاكرة التخزين المؤقت على أجهزة تخزين أخرى غير الذاكرة، وهذا متطلب للمحتوى ذي الأمان العالي نسبيًا.
يرتبط SqlDependency بقاعدة البيانات.
2. لا يمكن الحصول على ذاكرة التخزين المؤقت على مستوى التطبيق
إلا في الكود الموجود خلفه، وتتمثل خصائصه في أنه يمكنه تنفيذ أي منطق ذاكرة تخزين مؤقت يحتاجه.
يمكن الحصول عليها من خلال Page.Cache، واسم الفئة هو System.Web.Caching.Cache
3. لا يمكن الحصول على ذاكرة التخزين المؤقت لعميل المتصفح
إلا من خلال codebehind ويمكن تحديدها من خلال Response.Cache، وهو كائن HttpCachePolicy.
بالإضافة إلى ذلك: يمكنك تحديد TimeSpan كوقت للتخزين المؤقت، دون تحويله إلى ثوانٍ في كل مرة.
public TimeSpan(ticks long);
public TimeSpan(inthours,
int Minutes, int ثواني public TimeSpan(int أيام, int ساعات, int دقائق, int ثواني
);
، int ميلي ثانية)؛
إذا كنت تريد أن تحتفظ ذاكرة التخزين المؤقت بساعة واحدة ودقيقة واحدة وثانية واحدة، فيمكنك استخدام
TimeSpan(1,1,1) الجديد
مباشرةًبدلاً من حساب
ساعة واحدة ودقيقة واحدة وثانية واحدة = 3600
أولاً.+60+1=3661 ثانية، ثم قم بنقل أدخل 3661 كفترة الصلاحية.
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html