عند كتابة برامج ASP ، من أجل تحسين كفاءة برامج ASP وتقليل الاتصالات والاستعلامات في قاعدة البيانات ، عادةً ما تستخدم تقنية التخزين المؤقت لتخزين بعض البيانات التي تحتاج إلى قراءتها من قاعدة البيانات. بعد ذلك ، ستأخذك قناة التكنولوجيا الجديدة الخاطئة لإلقاء نظرة!
مثال:
رمز البرنامج:
نسخة الكود كما يلي:DIM RS ، ARR
Rs.Open Conn ، SQL ، 1،1
arr = rs.getRows ()
application.lock ()
التطبيق ("ذاكرة التخزين المؤقت") = arr
applinatoin.unlock ()
في VBScript ، يمكن تخزين المصفوفات في كائنات التطبيق ، ولكن إذا تم تحديد لغة ASP على أنها JScript ، فستكون سيئة بعض الشيء. عندما نستخدم التطبيق لتخزين صفيف ، سيحدث الخطأ التالي:
يقتبس:
كائن التطبيق ، ASP 0197 (0x80004005)
استخدام الكائن غير المسموح به
لا يمكن إضافة كائن مع سلوك نموذج الشقة إلى كائن التطبيق الجوهري.
يمكن العثور على الأسباب المحددة في قاعدة معرفة Microsoft على النحو التالي:
يقتبس:
تعتبر صفائف JScript مكونات "شقة" كوم. يمكن تعيين مكونات كائن المكون فقط (COM) التي تجمع بين مارشالر المترابط المجاني (FTM) لنطاق التطبيق ضمن صفحة خادم معلومات الإنترنت (IIS) 5.0 ASP. نظرًا لأن مكون "الشقة" لا يمكنه تجميع FTM (لا يمكن أن يسمح بنقل مؤشر مباشر إلى عملائه ، على عكس كائن "مع FTM") ، لا تجمع صفائف JScript FTM. لذلك ، لا يمكن تعيين صفائف JScript إلى نطاق التطبيق من صفحة ASP.
يتم نقل الوصف أعلاه من: PRB: خطأ عند تخزين صفيف JScript في نطاق التطبيق في IIS 5.0
لذلك ، من أجل حل هذه المشكلة ، بحثت عن اجتماع كبير في Google وأخيراً وجدت مقالًا "بعض الاستنتاجات حول ذاكرة التخزين المؤقت لكائنات التطبيق و staticoBjects". لحل هذه المشكلة ، تتمثل الطريقة في استخدام Application.StaticObject لتخزين كائن البرمجة النصية.
بناءً على ذلك ، تتم كتابة فئة لعملية ذاكرة التخزين المؤقت لتنفيذ الأساليب ، والحصول عليها ، وإزالتها. قبل استخدامه ، تحتاج إلى إضافة كائن في Global.asa:
رمز البرنامج:
<كائن معرف = "xbscache" runat = "server" scope = "application" program = "scripting.dictionary"> </object>
تنفيذ الفصل على النحو التالي:
نسخة الكود كما يلي:<script language = "jscript" runat = "server">
/**
العنوان: فئة تشغيل ذاكرة التخزين المؤقت
الوصف: ذاكرة التخزين المؤقت لنظام التشغيل
copyright: حقوق الطبع والنشر (C) 2007
Author: Xujiwei
website: http://www.xujiwei.cn/
version: 1.0
@الوقت: 2007-06-29 12:03:45
**/
var xbscache = {
الحصول على: وظيفة (مفتاح) {
return Application.StaticObjects ("XBSCache"). البند ("ذاكرة التخزين المؤقت."+مفتاح) ؛
} ،
وضع: وظيفة (مفتاح ، بيانات) {
application.lock () ؛
Application.StaticObjects ("XBSCache"). العنصر ("ذاكرة التخزين المؤقت."+مفتاح) = البيانات ؛
application.unlock () ؛
} ،
إزالة: وظيفة (مفتاح) {
application.lock () ؛
application.StaticObjects ("XBSCache"). إزالة ("Cache."+مفتاح) ؛
application.unlock () ؛
} ،
واضح: وظيفة () {
application.lock () ؛
application.StaticObjects ("xbscache"). removeall () ؛
application.unlock () ؛
}
}
</script>
وبهذه الطريقة ، يتم الانتهاء من تطبيق ذاكرة التخزين المؤقت عند استخدام JScript في ASP. آمل أن يوفر لك المحتوى الذي جمعه محرر Error the Error New Technology Cannel المساعدة.