แนะนำ: การวิเคราะห์สั้น ๆ ของการอัปโหลดและส่วนประกอบของ ASP โดยไม่ต้องใส่ส่วนประกอบลงในฐานข้อมูล ต่อไปนี้เป็นเนื้อหาที่อ้างอิง: %response.buffer = true server.scripttimeout = 9999999 ในข้อผิดพลาดกลับมาทำงานต่อไป %ถัดไป>
เป็นเวลา 7 ปีแล้วที่ ASP ได้รับการปล่อยตัวและเทคโนโลยี ASP นั้นค่อนข้างเติบโต ตั้งแต่ Microsoft เปิดตัว ASP.NET จึงค่อยๆหยุดอัปเดตเวอร์ชัน ASP แต่เนื่องจากมีหลายคนที่ยังคงคุ้นเคยกับการใช้ ASP เพื่อพัฒนาเว็บไซต์อีกครั้งฉันจะใช้ตัวอย่างง่ายๆเพื่อแสดงวิธีการใช้แคชใน ASP
พูดง่ายๆคือหลักการพื้นฐานของการใช้แคชคือการจัดเก็บข้อมูลที่จำเป็นบ่อยครั้งและมีราคาแพงในหน่วยความจำในช่วงระยะเวลาหนึ่งเพื่อให้ข้อมูลนี้สามารถเข้าถึงได้โดยตรงทั่วโลก ตัวอย่างเช่นข้อมูลบางอย่างจำเป็นต้องสอบถามจากหลายตารางในฐานข้อมูลและเกือบทุกหน้าเรียกข้อมูลนี้
การใช้งานที่ดีที่สุดในกรณีนี้คือแคชส่วนนี้ของข้อมูล การใช้งานอย่างง่ายใน ASP คือการห่อหุ้มรูปแบบนิพจน์ขั้นสุดท้ายของข้อมูลนี้ (เช่นสตรีม HTML) ในสตริงและจัดเก็บไว้ในแอปพลิเคชันวัตถุในตัว ASP (บทความนี้ส่วนใหญ่จะกล่าวถึงแคชแบบไดนามิกและแอปพลิเคชัน ASP แบบง่ายจะถูกละเว้น) ข้อดีของสิ่งนี้คือ HTML นี้สามารถเรียกได้ทั่วโลกทั่วทั้งเว็บไซต์และแอปพลิเคชันอยู่ในหน่วยความจำดังนั้นจึงไม่จำเป็นต้องสอบถามฐานข้อมูลอีกต่อไปซึ่งเพิ่มความเร็วในการตอบสนองและบันทึกการโหลดเซิร์ฟเวอร์ แน่นอนว่านี่คือค่าใช้จ่ายของหน่วยความจำและเป็นตัวอย่างทั่วไปของการแลกเปลี่ยนพื้นที่สำหรับเวลา
แม้ว่าจะมีประโยชน์มากมายในการใช้วิธีนี้เมื่อพบแหล่งข้อมูลที่เปลี่ยนแปลงบ่อยครั้ง (ฐานข้อมูล) วิธีนี้อาจไม่สามารถใช้งานได้อีกต่อไปเนื่องจากวัตถุแอปพลิเคชัน ASP มีข้อเสียซึ่งก็คือพวกเขาไม่สามารถเปลี่ยนแปลงได้โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงแหล่งข้อมูลหรือควบคุมช่วงการรีเฟรช ดังนั้นนักพัฒนาจำเป็นต้องตั้งโปรแกรมเพื่อใช้แคชแบบไดนามิก แน่นอนเมื่อการเขียนโปรแกรมคุณสามารถอัปเดตแอปพลิเคชันหนึ่งครั้งเมื่อการดำเนินการทั้งหมดมีการเปลี่ยนแปลงในแหล่งข้อมูล (ฐานข้อมูล) สิ่งนี้ทำให้แหล่งข้อมูล (ฐานข้อมูล) สอดคล้องกัน สิ่งนี้จะต้องมีปัญหาเพิ่มเติมในการพิจารณาในการเขียนโปรแกรมและจะพลาดรายละเอียดได้อย่างง่ายดาย ดังนั้นฉันไม่แนะนำวิธีนี้ยกเว้นสถานการณ์เฉพาะ
ฉันคิดว่าวิธีที่ดีที่สุดใน ASP คือการใช้การเขียนโปรแกรมเพื่อรีเฟรชแคชเป็นประจำซึ่งหมายถึงการตั้งค่าเวลาหมดอายุสำหรับการจัดเก็บในแอปพลิเคชัน แน่นอนวัตถุแอปพลิเคชันไม่มีคุณสมบัติหมดอายุดังกล่าวใน ASP สิ่งนี้จะต้องดำเนินการโดยใช้โปรแกรม
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: default.asp <%@language = vbscript%> <%ตัวเลือกชัดเจน%> <%response.buffer = true%> <!-#รวมไฟล์ = conn.asp-> <!-#รวมไฟล์ = getCache.asp-> <html> <head> <title> การสาธิตแคช ASP </title> <meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312> </head> <body> <H4> รีเฟรชแคชทุก 10 วินาที: </h4> - Response.flush Gethtmlstream Response.write htmlstream - </body> </html> |
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: getCache.asp - const cache_default_interval = 30 & apos; รีเฟรชแคชทุก 30 วินาที สลัว htmlstream สลัว isExpires isExpires = cacheexpires ฟังก์ชั่น cacheexpires สลัว strlastupdate dim result strLaStUpdate = แอปพลิเคชัน (lastUpDate) ถ้า (strLaStUpdate =) หรือ (cache_default_interval <datediff (s, strlastupdate ตอนนี้)) จากนั้น ผลลัพธ์ = จริง SetLastUpDatetime อื่น ผลลัพธ์ = เท็จ สิ้นสุดถ้า cacheexpires = ผลลัพธ์ ฟังก์ชันสิ้นสุด Sub SetLastUpDatetime application.lock แอปพลิเคชัน (LastUpDate) = CSTR (ตอนนี้ ()) application.unlock สิ้นสุดย่อย ย่อย gethtmlstream ถ้า isExpires แล้ว Updatehtmlstream สิ้นสุดถ้า htmlstream = แอปพลิเคชัน (cache_htmlstream) สิ้นสุดย่อย |
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: sub updatehtmlstream สลัว d d = fetchhtmlstream application.lock แอปพลิเคชัน (cache_htmlstream) = d application.unlock สิ้นสุดย่อย ฟังก์ชั่น fetchhtmlstream Dim Rs, Strsql, Strhtml ตั้งค่า rs = createObject (adodb.recordset) strsql = เลือก categoryId, categoryName จากหมวดหมู่ Rs.Open strsql, strconn, appenwardonly, adlockreadonly strhtml = strhtml & <select name = slt_search> ในขณะที่ (ไม่ใช่ Rs.EOF) strhtml = strhtml & <petion> strhtml = strhtml & rs.fields (หมวดหมู่) strhtml = strhtml & </petion> rs.movenext ใช้ strhtml = strhtml & </select> Rs.close ตั้งค่า rs = ไม่มีอะไร fetchhtmlstream = strhtml ฟังก์ชันสิ้นสุด - |
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: conn.asp <!-metadata name = Microsoft Activex Data Object 2.5 Library Type = TypElib UUID = {00000205-0000-0010-8000-00AA006D2EA4}-> - สลัว strconn strConn = ผู้ให้บริการ = sqloledb.1; การรักษาความปลอดภัยแบบรวม = sspi; ข้อมูลความปลอดภัยคงที่ = false; แคตตาล็อกเริ่มต้น = Northwind - |
แบ่งปัน: วิธีใช้ ASP เพื่อแสดงภาพ GIF ของฐานข้อมูลการเข้าถึง เขียน: 1: อ่านไฟล์อิมเมจ GIF ลงในหน่วยความจำ (ตัวแปร STRTEMP) 2: เขียนไปยังฐานข้อมูล ต่อไปนี้เป็นเนื้อหาที่ยกมา: dim bintmp () เป็น byte dim conn เป็น adodb.conn