เมื่อเขียนโปรแกรม ASP เพื่อปรับปรุงประสิทธิภาพของโปรแกรม ASP และลดการเชื่อมต่อและการสืบค้นไปยังฐานข้อมูลเทคโนโลยีการแคชมักใช้เพื่อแคชข้อมูลบางอย่างที่ต้องอ่านจากฐานข้อมูล ถัดไปช่องทางเทคโนโลยีใหม่ที่ผิดจะพาคุณไปดู!
ตัวอย่าง:
รหัสโปรแกรม:
การคัดลอกรหัสมีดังนี้:Dim Rs, arr
Rs.Open Conn, SQL, 1,1
arr = rs.getrows ()
Application.lock ()
แอปพลิเคชัน ("แคช") = arr
applicatoin.unlock ()
ใน VBScript อาร์เรย์สามารถเก็บไว้ในวัตถุแอปพลิเคชัน แต่ถ้าภาษา ASP ถูกเลือกเป็น JScript มันจะไม่ดีเล็กน้อย เมื่อเราใช้แอปพลิเคชันเพื่อจัดเก็บอาร์เรย์ข้อผิดพลาดต่อไปนี้จะเกิดขึ้น:
อ้าง:
แอปพลิเคชันวัตถุ, ASP 0197 (0x80004005)
ไม่อนุญาตให้ใช้วัตถุ
ไม่สามารถเพิ่มวัตถุด้วยพฤติกรรมแบบจำลองอพาร์ทเมนท์ลงในวัตถุที่แท้จริงของแอปพลิเคชัน
เหตุผลเฉพาะสามารถพบได้ในฐานความรู้ของ Microsoft ดังนี้:
อ้าง:
อาร์เรย์ JScript ถือเป็นส่วนประกอบ "อพาร์ทเมนท์" เฉพาะส่วนประกอบของส่วนประกอบ (COM) ส่วนประกอบที่รวม Marshaler Threaded (FTM) ฟรีสามารถกำหนดให้กับขอบเขตแอปพลิเคชันภายในหน้าเซิร์ฟเวอร์ข้อมูลอินเทอร์เน็ต (IIS) 5.0 ASP เนื่องจากส่วนประกอบ "อพาร์ทเมนท์" ไม่สามารถรวม FTM (ไม่อนุญาตให้ตัวชี้โดยตรงถูกส่งผ่านไปยังลูกค้าของมันซึ่งแตกต่างจากวัตถุ "ทั้งสองกับ FTM") อาร์เรย์ JScript ไม่รวม FTM ดังนั้นอาร์เรย์ JScript จึงไม่สามารถกำหนดขอบเขตแอปพลิเคชันจากหน้า ASP ได้
คำอธิบายข้างต้นอ้างจาก: PRB: ข้อผิดพลาดเมื่อคุณเก็บอาร์เรย์ JScript ในขอบเขตแอปพลิเคชันใน IIS 5.0
ดังนั้นเพื่อแก้ปัญหานี้ฉันค้นหาการประชุมครั้งใหญ่ใน Google และในที่สุดก็พบบทความ "ข้อสรุปบางอย่างเกี่ยวกับแคชสำหรับวัตถุแอปพลิเคชันและ StaticObjects" ในการแก้ปัญหานี้วิธีการคือการใช้แอปพลิเคชัน StaticObject เพื่อจัดเก็บสคริปต์วัตถุวัตถุประสงค์จากนั้นใช้สคริปต์วัตถุวัตถุประสงค์เพื่อจัดเก็บข้อมูลที่ต้องแคช
ขึ้นอยู่กับสิ่งนี้คลาสสำหรับการดำเนินการแคชถูกเขียนขึ้นเพื่อใช้งานใส่, รับ, ลบและล้างวิธีการ ก่อนใช้งานคุณต้องเพิ่มวัตถุใน global.asa:
รหัสโปรแกรม:
<object id = "xbscache" runat = "เซิร์ฟเวอร์" scope = "แอปพลิเคชัน" โปรแกรม = "scripting.dictionary"> </object>
การใช้งานชั้นเรียนมีดังนี้:
การคัดลอกรหัสมีดังนี้:<script language = "jscript" runat = "เซิร์ฟเวอร์">
-
ชื่อเรื่อง: คลาสปฏิบัติการแคช
คำอธิบาย: แคชระบบปฏิบัติการ
@Copyright: ลิขสิทธิ์ (c) 2007
@author: xujiwei
@website: http://www.xujiwei.cn/
@Version: 1.0
@Time: 2007-06-29 12:03:45
-
var xbscache = {
รับ: ฟังก์ชั่น (คีย์) {
return application.staticObjects ("xbscache"). รายการ ("แคช."+คีย์);
-
ใส่: ฟังก์ชั่น (คีย์, ข้อมูล) {
Application.lock ();
application.staticObjects ("xbscache"). รายการ ("แคช"+คีย์) = ข้อมูล;
application.unlock ();
-
ลบ: ฟังก์ชั่น (คีย์) {
Application.lock ();
application.staticObjects ("xbscache") ลบ ("แคช."+คีย์);
application.unlock ();
-
ล้าง: ฟังก์ชั่น () {
Application.lock ();
application.staticObjects ("xbscache"). removeAll ();
application.unlock ();
-
-
</script>
ด้วยวิธีนี้การใช้แคชเมื่อใช้ JScript ใน ASP เสร็จสมบูรณ์ ฉันหวังว่าเนื้อหาที่รวบรวมโดยบรรณาธิการของช่องทางเทคโนโลยีข้อผิดพลาดใหม่สามารถให้ความช่วยเหลือแก่คุณได้