يقلل هذا البرنامج من قراءات قاعدة البيانات باستخدام وظيفة ASP's FSO. بعد الاختبار، يمكن أن يقلل تحميل الخادم بنسبة 90%. سرعة الوصول إلى الصفحة هي في الأساس نفس سرعة الصفحات الثابتة. انسخ رمز الكود كما يلي:
<%@LANGUAGE=صفحة كود VBSCRIPT=65001%>
<% Response.CodePage=65001%>
<% Response.Charset=UTF-8 %>
<%
'يقلل هذا البرنامج من قراءات قاعدة البيانات باستخدام وظيفة ASP's FSO. بعد الاختبار، يمكن أن يقلل تحميل الخادم بنسبة 90%. سرعة الوصول إلى الصفحة هي في الأساس نفس سرعة الصفحات الثابتة.
'كيفية الاستخدام: ضع الملف على موقع الويب، ثم استخدم التضمين للإشارة إليه في السطر الأول من الملف الذي يحتاج إلى الرجوع إليه.
'======================== المنطقة المعلمة ======================== =====
DirName=cachenew/ 'الدليل الذي يتم حفظ الملفات الثابتة فيه يجب أن يحتوي على / في النهاية. لا حاجة لإنشائه يدويًا، سيقوم البرنامج بإنشائه تلقائيًا.
TimeDelay=30 'الفاصل الزمني للتحديث، الوحدة هي الدقائق، على سبيل المثال، 1440 دقيقة هي يوم واحد. يتم حذف الملفات الثابتة التي تم إنشاؤها بعد هذا الفاصل الزمني.
'======================= المنطقة الرئيسية للبرنامج ========================= ====
foxrax=طلب(foxrax)
إذا foxrax = ثم
FileName=GetStr()&.txt
FileName=DirName&FileName
إذا كان tesfold(DirName)=خطأ، فقم بإنشاء المجلد إذا لم يكن موجودًا
createfold(Server.MapPath(.)&/&DirName)
نهاية إذا
إذا كان ReportFileStatus(Server.MapPath(.)&/&FileName)=صحيح، فحينئذٍ'إذا كان هناك ملف ثابت تم إنشاؤه، فاقرأ الملف مباشرة
تعيين FSO=CreateObject(Scripting.FileSystemObject)
خافت الملفات، LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'تعريف كائن ملف CatchFile
LastCatch=CDate(Files.DateLastModified)
إذا تم تجاوز DateDiff(n,LastCatch,Now())>TimeDelay بعد ذلك
القائمة=getHTTPPage(GetUrl())
ملف الكتابة (اسم الملف)
آخر
القائمة=ReadFile(اسم الملف)
نهاية إذا
تعيين FSO = لا شيء
الاستجابة.الكتابة (قائمة)
الاستجابة. النهاية ()
آخر
القائمة=getHTTPPage(GetUrl())
ملف الكتابة (اسم الملف)
نهاية إذا
نهاية إذا
'========================= وظيفة المنطقة ====================== = =====
"الحصول على عنوان URL للصفحة الحالية."
الدالة GetStr()
"عند حدوث خطأ في الاستئناف التالي."
خافت strTemps
strTemps = strTemps & Request.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Server.URLEncode(strTemps)
وظيفة النهاية
"احصل على عنوان URL للصفحة المخبأة."
الدالة GetUrl()
على خطأ استئناف التالي
خافت strTemp
إذا كان LCase(Request.ServerVariables(HTTPS)) = إيقاف إذن
سترتيمب = http://
آخر
سترتيمب = https://
نهاية إذا
strTemp = strTemp & Request.ServerVariables(SERVER_NAME)
إذا Request.ServerVariables(SERVER_PORT) <> 80 إذن
strTemp = strTemp &: & Request.ServerVariables(SERVER_PORT)
نهاية إذا
strTemp = strTemp & Request.ServerVariables(URL)
إذا كان Trim(Request.QueryString) <> إذن
strTemp = strTemp & ? & Trim(Request.QueryString) & &foxrax=foxrax
آخر
strTemp = strTemp & & foxrax=foxrax
نهاية إذا
GetUrl = strTemp
وظيفة النهاية
"امسك الصفحة."
الدالة getHTTPPage(url)
تعيين Mail1 = Server.CreateObject(CDO.Message)
Mail1.CreateMHTMLBody URL،31
AA=Mail1.HTMLBody
تعيين Mail1 = لا شيء
getHTTPage=AA
'تعيين الاسترداد = Server.CreateObject(Microsoft.Xmlhttp)
'Retrieval.Open GET,url,false,,
"استرجاع.إرسال."
'getHTTPPage = Retrieval.ResponseBody
'تعيين الاسترجاع = لا شيء
وظيفة النهاية
ملف الكتابة الفرعية (ملف المسار)
stm خافتة
تعيين stm=Server.CreateObject(adodb.stream)
stm.Type=2 'adTypeText، بيانات نصية
stm.Mode=3 'adModeReadWrite، القراءة والكتابة، إذا كانت هذه المعلمة 2، سيتم الإبلاغ عن خطأ
stm.Charset=utf-8
stm.Open
قائمة stm.WriteText
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite، الكتابة فوق إذا كان الملف موجودًا
stm. فلوش
stm.إغلاق
تعيين stm=لا شيء
نهاية الفرعية
وظيفة ملف القراءة (ملف المسار)
stm خافتة
تعيين stm=Server.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary، اقرأ البيانات الثنائية
stm.Mode=3 'adModeReadWrite، يمكن استخدام 3 فقط هنا، والبعض الآخر سوف يسبب أخطاء
stm.Open
stm.LoadFromFile Server.MapPath(filePath)
stm.Position=0 'حرك المؤشر مرة أخرى إلى نقطة البداية
stm.Type=2 'بيانات نصية
stm.Charset=utf-8
ملف القراءة = stm.ReadText
stm.إغلاق
تعيين stm=لا شيء
وظيفة النهاية
'تحقق من وجود الملف
تقرير الوظيفة: حالة الملف (اسم الملف)
تعيين fso = server.createobject(scripting.filesystemobject)
إذا كان fso.fileexists(FileName) = صحيحًا إذن
ReportFileStatus=true
آخر
ReportFileStatus=false
نهاية إذا
تعيين fso=لا شيء
وظيفة النهاية
"تحقق من وجود الدليل."
دالة تيسفولد (فونام)
تعيين fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(foname)
إذا كان fs.folderexists (filepathjm) إذن
تيسفولد=صحيح
آخر
تيسفولد=خطأ
نهاية إذا
تعيين خ = لا شيء
وظيفة النهاية
"إنشاء دليل."
طي فرعي (فونام)
تعيين fs=createobject(scripting.filesystemobject)
fs.createfolder(foname)
تعيين خ = لا شيء
النهاية الفرعية
'حذف الملفات
وظيفة del_file(path) 'المسار، يحتوي مسار الملف على اسم الملف
تعيين objfso = server.createobject(scripting.FileSystemObject)
'المسار=Server.MapPath(المسار)
إذا كان objfso.FileExists(path) ثم "إذا كان موجودًا، فاحذفه".
objfso.DeleteFile(path) 'حذف الملف
آخر
'response.write <script language='Javascript'>تنبيه('الملف غير موجود')</script>
نهاية إذا
تعيين objfso = لا شيء
وظيفة النهاية
%>