รหัสโปรแกรม
-
โดย xilou, www.chinacms.org, 20090115
'อัปเดตล่าสุด: 20090115
'บันทึกการแก้ไข: ไม่มี'
CONST CACHEPREFIX = "CACHE_" 'คำนำหน้าแคช ไม่สามารถเว้นว่างได้
'
' 1. รูปแบบแคชคือ Application(CACHEPREFIX & key) = array("cache key", "cache time", "cache content", "cache description", "expiration time")
'2 คีย์แคชไม่คำนึงถึงขนาดตัวพิมพ์
'เพิ่มแคชโดยไม่ตรวจสอบว่ามีแคชอยู่หรือไม่ หากมี จะเทียบเท่ากับการอัพเดตแคช
'varAry: พารามิเตอร์ รูปแบบคือ: array("cache key", "cache time", "cache content", "cache description")
'คีย์แคช: รูปแบบเดียวกับแอปพลิเคชัน ()
'เวลาแคช: หน่วยวินาที อาจเป็นตัวเลขติดลบ ระบุการหมดอายุทันที สามารถว่างเปล่า ว่างเปล่า หรือไม่ใช่ตัวเลข ค่าเริ่มต้นคือ 20 นาทีหมดอายุ
'เนื้อหาแคช: ข้อมูลแคช ไม่รองรับการแคชออบเจ็กต์
'คำอธิบายแคช: คำอธิบายแคช'
ฟังก์ชั่น AddCache(varAry)
ดิม ซี,อารี(4)
ถ้าไม่ใช่ IsArray(varAry) แล้ว
Response.Write "ข้อผิดพลาด: ข้อผิดพลาดของพารามิเตอร์ AddCache (varAry) พารามิเตอร์ไม่ใช่อาร์เรย์"
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
ถ้า UBound(varAry) <> 3 แล้ว
Response.Write "ข้อผิดพลาด: ข้อผิดพลาดของพารามิเตอร์ AddCache (varAry) ข้อผิดพลาดเกี่ยวกับความยาวอาร์เรย์"
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
ถ้า varAry(0) = "" แล้ว
Response.Write "ข้อผิดพลาด: ข้อผิดพลาด AddCache(varAry) คีย์ไม่สามารถเว้นว่างได้"
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
ถ้า varAry(1) = "" หรือ Not IsNumeric(varAry(1)) ดังนั้น varAry(1) = 1200
แอพลิเคชันล็อค()
แอปพลิเคชัน (CACHEPREFIX & varAry(0)) = array(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
แอปพลิเคชันปลดล็อค()
ฟังก์ชันสิ้นสุด
'ตรวจสอบว่ามีแคชอยู่หรือไม่ ให้คืนค่า True หากมีอยู่ หรือไม่เช่นนั้นให้คืนค่า False
'คีย์: คีย์แคช
ฟังก์ชั่น CheckCache (คีย์)
ดิม เค
สำหรับแต่ละ k ในแอปพลิเคชันเนื้อหา
ถ้า LCase(k) = LCase(CACHEPREFIX & key) จากนั้น CheckCache = True : ออกจากฟังก์ชัน
ต่อไป
CheckCache = เท็จ
ฟังก์ชันสิ้นสุด
'รับแคช'
'ส่งคืนอาร์เรย์ในรูปแบบ: array("cache key", "cache time", "cache content", "cache description", "expiration time" ไม่ว่าจะหมดอายุแล้วหรือไม่ True|False)
'หากไม่มีอยู่จะเกิดข้อผิดพลาด ดังนั้นโปรดตรวจสอบกับ CheckCache(key) ก่อนที่จะรับมัน
ฟังก์ชัน GetCache(คีย์)
แอป Dim isExp
app = แอปพลิเคชัน (CACHEPREFIX & คีย์)
isExp = เท็จ
ถ้า DateDiff("s",Now(),app(4)) <= 0 ดังนั้น isExp = True
GetCache = อาร์เรย์(แอป(0),แอป(1),แอป(2),แอป(3),แอป(4),isExp)
ฟังก์ชันสิ้นสุด
'ล้างแคช'
ฟังก์ชั่น RemoveCache (คีย์)
แอพลิเคชันล็อค()
Application.Contents.Remove (CACHEPREFIX & คีย์)
แอปพลิเคชันปลดล็อค()
ฟังก์ชันสิ้นสุด
'อัพเดตแคช หากไม่มีแคช จะเกิดข้อผิดพลาด ดังนั้นโปรดตรวจสอบกับ CheckCache(key) ก่อนทำการอัพเดต
'พารามิเตอร์ varAry: รูปแบบคือ: array("cache key", "cache time", "cache content", "cache description")
'คีย์แคช: รูปแบบเดียวกับแอปพลิเคชัน ()
'เวลาแคช: หน่วยวินาที อาจเป็นตัวเลขติดลบ ระบุการหมดอายุทันที สามารถว่างเปล่า ว่างเปล่า หรือไม่ใช่ตัวเลข ค่าเริ่มต้นคือ 20 นาทีหมดอายุ
'เนื้อหาแคช: ข้อมูลแคช ไม่รองรับการแคชออบเจ็กต์
'คำอธิบายแคช: คำอธิบายแคช'
'หมายเหตุ: หากคุณไม่ได้อัพเดตค่า varAry ไว้ ให้ตั้งค่าเป็น null
' เช่น UpdateCache(array("key",null,"content",null)) ซึ่งหมายความว่าเวลาหมดอายุและคำอธิบายจะไม่ได้รับการอัปเดต
ฟังก์ชั่น UpdateCache (varAry)
แอพติ่มซำ
แอป = GetCache (varAry (0))
ถ้าไม่ใช่ IsNull(varAry(1)) ดังนั้น app(1) = varAry(1)
ถ้าไม่ใช่ IsNull(varAry(2)) ดังนั้น app(2) = varAry(2)
ถ้าไม่ใช่ IsNull(varAry(3)) ดังนั้น app(3) = varAry(3)
หาก app(1) = "" หรือ Not IsNumeric(app(1)) ดังนั้น app(1) = 1200
แอพลิเคชันล็อค()
แอปพลิเคชัน (CACHEPREFIX & แอป (0)) = อาร์เรย์ (แอป (0), แอป (1), แอป (2), แอป (3), DateAdd ("s", แอป (1), ตอนนี้ ()))
แอปพลิเคชันปลดล็อค()
ฟังก์ชันสิ้นสุด
'www.downcodes.com'
'พิมพ์แคชสำหรับการดีบัก
ฟังก์ชั่น PrintCache(คีย์)
แอพ Dim ฉัน
ถ้า CheckCache(คีย์) แล้ว
แอป = GetCache (คีย์)
Response.เขียน "<pre>{"&chr(10)
Response.Write chr (32) & "ชื่อแคช" & chr (32) & quot; & chr (32) & CACHEPREFIX & แอป (0) & chr (10)
การตอบสนองเขียน chr (32) & "คีย์แคช" & chr (32) & quot; & chr (32) & แอป (0) & chr (10)
การตอบสนองเขียน chr (32) & "เวลาแคช" & chr (32) & quot; & chr (32) & แอป (1) & chr (10)
การตอบสนองเขียน chr (32) & "เวลาหมดอายุ" & chr (32) & quot; & chr (32) & แอป (4) & chr (10)
Response.Write chr(32) & "ถึงกำหนด?" & chr(32) & ; & ; & chr(32) & app(5) & chr(10)
Response.Write chr(32) & "คำอธิบายแคช" & chr(32) & quot; & chr(32) & app(3) & chr(10)
'เนื้อหา
Response.Write chr(32) & "เนื้อหาแคช" & chr(32) & quot; & chr(32)
t = VarType (แอป (2))
ถ้า InStr(",0,1,2,3,4,5,6,7,8,11,",","&t&",") > 0 แล้ว
ตอบกลับแอปเขียน(2)
อื่น
Response.Write TypeName (แอป (2))
สิ้นสุดถ้า
การตอบสนองเขียน ch (10)
ตอบกลับเขียน "}</pre>"&chr(10)
อื่น
การตอบสนองเขียน "ไม่มีแคช"
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
' ----------
สาธิตย่อย br (str)
การตอบสนองเขียน str & "<br />" & vbcrlf
จบหมวดย่อย
'ลบแคช "xilou"
'AddCache Array("xilou","",array("data content"),"คำอธิบายแคช")
br CheckCache("xilou")
พิมพ์แคช "xilou"
แอพติ่มซำ
ถ้า CheckCache("xilou") แล้ว
app = GetCache("xilou") 'รับ
อาร์เรย์ UpdateCache (แอป (0), null, "testsfsfsf", null) 'อัปเดต
อื่น
เพิ่มอาร์เรย์แคช("xilou", "เนื้อหา", "คำอธิบาย")
สิ้นสุดถ้า
'ดิม เค
'สำหรับแต่ละ k ในแอปพลิเคชันเนื้อหา
'br เค
'ต่อไป
-