โปรแกรมนี้ลดการอ่านฐานข้อมูลโดยใช้ฟังก์ชัน FSO ของ ASP หลังการทดสอบสามารถลดภาระเซิร์ฟเวอร์ลงได้ 90% ความเร็วในการเข้าถึงเพจนั้นโดยพื้นฐานแล้วจะเหมือนกับความเร็วของเพจแบบคงที่ คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE=รหัส VBSCRIPT=65001%>
<% การตอบกลับ CodePage=65001%>
<% การตอบกลับ Charset=UTF-8 %>
-
'โปรแกรมนี้ช่วยลดการอ่านฐานข้อมูลโดยใช้ฟังก์ชัน FSO ของ ASP หลังการทดสอบสามารถลดภาระเซิร์ฟเวอร์ลงได้ 90% ความเร็วในการเข้าถึงเพจนั้นโดยพื้นฐานแล้วจะเหมือนกับความเร็วของเพจแบบคงที่
'วิธีใช้: วางไฟล์บนเว็บไซต์ จากนั้นใช้ include เพื่ออ้างอิงในบรรทัดแรกของไฟล์ที่ต้องการอ้างอิง
'======================= พื้นที่พารามิเตอร์======================== =====
DirName=cachenew/ 'ไดเร็กทอรีที่บันทึกไฟล์สแตติกควรมี / ต่อท้าย' ไม่จำเป็นต้องสร้างเอง โปรแกรมจะสร้างให้อัตโนมัติ
TimeDelay=30 'อัปเดตช่วงเวลา หน่วยเป็นนาที เช่น 1440 นาทีคือ 1 วัน ไฟล์สแตติกที่สร้างขึ้นจะถูกลบหลังจากช่วงเวลานี้
'======================พื้นที่โปรแกรมหลัก======================== ====
foxrax=คำขอ(foxrax)
ถ้า foxrax= แล้ว
FileName=GetStr()&.txt
FileName=DirName&ชื่อไฟล์
ถ้า tesfold(DirName)=false ให้สร้างโฟลเดอร์หากไม่มีอยู่
createfold(Server.MapPath(.)&/&DirName)
สิ้นสุดถ้า
ถ้า ReportFileStatus(Server.MapPath(.)&/&FileName)=true แล้ว 'หากมีไฟล์สแตติกที่สร้างขึ้น ให้อ่านไฟล์โดยตรง
ตั้งค่า FSO=CreateObject(Scripting.FileSystemObject)
ไฟล์ Dim, LatCatch
ตั้งค่าไฟล์=FSO.GetFile(Server.MapPath(FileName)) 'กำหนดวัตถุไฟล์ CatchFile
LastCatch=CDate(Files.DateLastModified)
ถ้า DateDiff(n,LastCatch,Now())>TimeDelay แล้ว ' เกิน
รายการ=getHTTPPage(GetUrl())
เขียนไฟล์(ชื่อไฟล์)
อื่น
รายการ=ReadFile(ชื่อไฟล์)
สิ้นสุดถ้า
ตั้งค่า FSO = ไม่มีเลย
ตอบกลับเขียน(รายการ)
การตอบสนองสิ้นสุด()
อื่น
รายการ=getHTTPPage(GetUrl())
เขียนไฟล์(ชื่อไฟล์)
สิ้นสุดถ้า
สิ้นสุดถ้า
'======================== พื้นที่ฟังก์ชัน======================= = =====
'รับ URL ของหน้าปัจจุบัน
ฟังก์ชัน GetStr()
'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป'
Dim strTemps
strTemps = strTemps และคำขอ ServerVariables (HTTP_X_REWRITE_URL)
GetStr = เซิร์ฟเวอร์ URLEncode (strTemps)
ฟังก์ชันสิ้นสุด
'รับ URL หน้าที่แคชไว้'
ฟังก์ชัน GetUrl()
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
Dim strTemp
ถ้า LCase(Request.ServerVariables(HTTPS)) = ปิด จากนั้น
strTemp = http://
อื่น
strTemp = https://
สิ้นสุดถ้า
strTemp = strTemp & คำขอ ServerVariables (SERVER_NAME)
ถ้า Request.ServerVariables(SERVER_PORT) <> 80 แล้ว
strTemp = strTemp & : & คำขอ ServerVariables (SERVER_PORT)
สิ้นสุดถ้า
strTemp = strTemp & คำขอ 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)
'การดึงข้อมูล เปิด GET, url, false ,,
'การเรียกคืนส่ง
'getHTTPPage = การดึงข้อมูล.ResponseBody
'ตั้งค่าการดึงข้อมูล = ไม่มีเลย
ฟังก์ชันสิ้นสุด
SubWriteFile(เส้นทางไฟล์)
stm สลัว
ตั้งค่า stm=Server.CreateObject(adodb.stream)
stm.Type=2 'adTypeText ข้อมูลข้อความ
stm.Mode=3 'adModeReadWrite อ่านและเขียน หากพารามิเตอร์นี้เป็น 2 ข้อผิดพลาดจะถูกรายงาน
stm.Charset=utf-8
stm.เปิด
รายการ stm.WriteText
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, เขียนทับหากมีไฟล์อยู่
stm.ฟลัช
stm.ปิด
ตั้ง stm=ไม่มีอะไร
จบหมวดย่อย
ฟังก์ชั่น ReadFile (filePath)
stm สลัว
ตั้งค่า stm=Server.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary อ่านในข้อมูลไบนารี่
stm.Mode=3 'adModeReadWrite สามารถใช้ที่นี่ได้เพียง 3 รายการเท่านั้น รายการอื่นๆ จะทำให้เกิดข้อผิดพลาด
stm.เปิด
stm.LoadFromFile Server.MapPath (filePath)
stm.Position=0 'เลื่อนตัวชี้กลับไปยังจุดเริ่มต้น
stm.Type=2 'ข้อมูลข้อความ
stm.Charset=utf-8
ReadFile = stm.ReadText
stm.ปิด
ตั้ง stm=ไม่มีอะไร
ฟังก์ชันสิ้นสุด
'ตรวจสอบว่ามีไฟล์อยู่หรือไม่
ฟังก์ชั่น ReportFileStatus (ชื่อไฟล์)
ตั้งค่า fso = server.createobject (scripting.filesystemobject)
ถ้า fso.fileexists(FileName) = true แล้ว
ReportFileStatus=จริง
อื่น
ReportFileStatus=เท็จ
สิ้นสุดถ้า
ตั้งค่า fso=nothing
ฟังก์ชั่นสิ้นสุด
'ตรวจสอบว่ามีไดเร็กทอรีอยู่หรือไม่'
ฟังก์ชั่น tesfold(foname)
ตั้งค่า fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(foname)
ถ้า fs.folderexists(filepathjm) แล้ว
เทสโฟลด์=จริง
อื่น
เทสโฟลด์=เท็จ
สิ้นสุดถ้า
ตั้งค่า fs=ไม่มีอะไร
ฟังก์ชั่นสิ้นสุด
'สร้างไดเร็กทอรี
สร้างย่อย (foname)
ตั้งค่า fs=createobject(scripting.filesystemobject)
fs.createfolder(โฟเนม)
ตั้งค่า fs=ไม่มีอะไร
จบย่อย
'ลบไฟล์
ฟังก์ชั่น del_file(path) 'path เส้นทางของไฟล์ประกอบด้วยชื่อไฟล์
ตั้ง objfso = server.createobject (scripting.FileSystemObject)
'เส้นทาง=Server.MapPath(เส้นทาง)
ถ้า objfso.FileExists(path) ดังนั้น 'ถ้ามีอยู่ ให้ลบทิ้ง'
objfso.DeleteFile(path) 'ลบไฟล์
อื่น
'response.write <script language='Javascript'>alert('ไม่มีไฟล์')</script>
สิ้นสุดถ้า
ตั้งค่า objfso = ไม่มีเลย
ฟังก์ชั่นสิ้นสุด
-