การเข้าถึงคอลเลกชัน ASP เพื่อรับ ASP เป็นกระบวนการใช้เวลานานและใช้ทรัพยากรคอมพิวเตอร์ เนื่องจากการดำเนินการนี้รวมถึงการค้นหาคอลเลกชันที่เกี่ยวข้องมันจะช้าลงมากเมื่อเข้าถึงตัวแปรท้องถิ่น ตอนนี้มาดูวิธีปรับปรุงประสิทธิภาพของ ASP
ตัวอย่างเช่นเขียนโค้ดลงในแบบฟอร์มต่อไปนี้เพื่อเพิ่มความเร็วในการประมวลผลสคริปต์เอ็นจิ้น:
การคัดลอกรหัสมีดังนี้:strtitle = request.form ("title")
strfirstName = request.form ("FirstName")
strlastName = request.form ("นามสกุล")
ถ้า len (strtitle) ดังนั้น strtitle = strtitle & ""
ถ้า strfirstName = "" แล้ว strfullName = strtitle & "" & strlastName
elseif len (strfirstname) = 1 จากนั้น
strfullName = strtitle & strfirstname & "." & strlastname
อื่น
strfullName = strtitle & strfirstname & "" & strlastname
สิ้นสุดถ้า
เคล็ดลับ 2: การเข้าถึงคอลเลกชันที่เหมาะสมโดยตรง
หากไม่ได้ใช้ strPage = คำขอ ("หน้า") เพื่อรับพารามิเตอร์เพราะสิ่งนี้จะค้นหาคอลเลกชันทั้งหมดตามลำดับ - แบบสอบถาม, แบบฟอร์ม, คุกกี้, clientcertificate, servervarible จนกว่าจะพบชื่อค่าการจับคู่แรก สิ่งนี้มีประสิทธิภาพน้อยกว่าการเข้าถึงชุดที่เหมาะสมโดยตรงและไม่ปลอดภัยเว้นแต่จะรับประกันได้อย่างแน่นอนว่าค่านี้จะไม่ปรากฏในชุดอื่น
ตัวอย่างเช่นอาจเป็นที่พึงปรารถนาที่จะค้นหาชื่อเว็บเซิร์ฟเวอร์ที่ตอบสนองคำขอของลูกค้าซึ่งสามารถทำได้โดยการค้นหา "server_name" ในการร้องขอการรวบรวม ServerVarables ที่ปรากฏในแต่ละแบบสอบถาม อย่างไรก็ตามหากชุดอื่นยังมีค่าที่ชื่อว่า "Server_name" (ชื่อคีย์เป็นตัวพิมพ์ใหญ่) เมื่อใช้คำขอ ("server_name") ผลลัพธ์จะได้รับผลลัพธ์ที่ไม่ถูกต้อง ในระยะสั้นควรเข้าถึงคอลเลกชันที่เหมาะสมโดยตรงที่สุดเท่าที่จะทำได้
เคล็ดลับที่ 3: ใช้คุณสมบัติการตอบสนองที่เชื่อมต่อกันก่อนการดำเนินการใช้เวลานาน
การใช้ Response.isclientConnected เป็นวิธีที่มีประโยชน์ในการสังเกตว่าผู้ใช้ยังคงเชื่อมต่อกับเซิร์ฟเวอร์และกำลังโหลดหน้าเว็บที่สร้างโดย ASP หรือไม่ หากผู้ใช้ยกเลิกการเชื่อมต่อหรือหยุดการดาวน์โหลดเราไม่จำเป็นต้องเสียทรัพยากรของเซิร์ฟเวอร์อีกต่อไปเพื่อสร้างหน้าเว็บอีกต่อไปเนื่องจากเนื้อหาบัฟเฟอร์จะถูกทิ้งโดย IIS ดังนั้นสำหรับหน้าเว็บที่ต้องใช้เวลามากในการคำนวณหรือใช้ทรัพยากรมากขึ้นมันคุ้มค่าที่จะตรวจสอบในแต่ละขั้นตอนไม่ว่าผู้เข้าชมจะออฟไลน์:
การคัดลอกรหัสมีดังนี้:... รหัสเพื่อสร้างส่วนแรกของหน้า
หากตอบสนอง
Response.flush
อื่น
Response.end
สิ้นสุดถ้า
... รหัสเพื่อสร้างส่วนถัดไปของหน้า
เคล็ดลับ 4: เพิ่มประสิทธิภาพการดำเนินงาน ADO ใน ASP
โดยทั่วไปข้อมูลถือเป็นเนื้อหาจริงของเว็บไซต์ ดังนั้นจึงมีประโยชน์มากในการเพิ่มประสิทธิภาพการดำเนินงาน ADO เพื่อเพิ่มความเร็วในการดำเนินการรหัส ASP:
. เลือกเฉพาะคอลัมน์ที่คุณต้องการ: เมื่อเปิดชุดบันทึก ADO ชื่อตาราง (เช่นเลือก *) ไม่ควรใช้โดยอัตโนมัติเว้นแต่จะจำเป็นต้องใช้คอลัมน์ทั้งหมด การใช้คอลัมน์แยกต่างหากหมายความว่าจำนวนข้อมูลที่ส่งไปหรือดึงข้อมูลจากเซิร์ฟเวอร์จะลดลง แม้ว่าคุณจะต้องใช้คอลัมน์ทั้งหมดการตั้งชื่อแต่ละคอลัมน์แต่ละรายการจะได้รับประสิทธิภาพที่ดีที่สุดเนื่องจากเซิร์ฟเวอร์ไม่ต้องตีความชื่อของคอลัมน์เหล่านั้นอีกต่อไป
ข. ใช้ขั้นตอนที่เก็บไว้ให้มากที่สุด ขั้นตอนที่เก็บไว้เป็นโปรแกรมที่รวบรวมไว้ล่วงหน้าซึ่งมีแผนการดำเนินการที่พร้อมใช้งานดังนั้นพวกเขาจึงดำเนินการได้เร็วกว่าคำสั่ง SQL
ค. ใช้เคอร์เซอร์และโหมดล็อคที่เหมาะสม หากงานทั้งหมดเสร็จสิ้นคือการอ่านข้อมูลจากชุดระเบียนและแสดงบนหน้าจอแล้วจะใช้ชุดเร็กคอร์ดแบบอ่านอย่างเดียวเริ่มต้นเท่านั้น ADO ที่ทำงานน้อยกว่าใช้เพื่อรักษารายละเอียดของระเบียนและล็อค
d. ใช้ตัวแปรวัตถุ วิธีที่แน่นอนในการปรับปรุงประสิทธิภาพเมื่อข้ามชุดบันทึกคือการใช้ตัวแปรวัตถุเพื่อชี้ไปที่สมาชิกในชุด ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:ในขณะที่ไม่ใช่ rsgc.eof
Response.write "ชื่อโครงการ:" & RSGC ("GCMC") & "(รหัสโครงการ:" & RSGC ("GCCODE") & ")"
RSGC.Movenext
ใช้
คุณสามารถใช้การเขียนใหม่ได้ดังนี้เพื่อเพิ่มความเร็วในการดำเนินการ:
การคัดลอกรหัสมีดังนี้:ตั้งค่า GCMC = RSGC ("GCMC")
ตั้งค่า gccode = rsgc ("gccode")
ในขณะที่ไม่ใช่ rsgc.eof response.write "ชื่อโครงการ:" & gcmc & "(รหัสโครงการ:" & gccode & ")" rsgc.movenext
ใช้
รหัสใหม่สร้างการอ้างอิงถึงตัวแปรวัตถุดังนั้นตัวแปรวัตถุสามารถใช้แทนตัวแปรจริงซึ่งหมายความว่าเอ็นจิ้นสคริปต์ทำงานน้อยลงเนื่องจากจำนวนดัชนีในชุดจะน้อยลง
เคล็ดลับ 5: อย่าผสมเอ็นจิ้นสคริปต์
เรารู้ว่าคุณสามารถใช้ทั้ง VBScript และ JScript ในหน้า ASP อย่างไรก็ตามไม่แนะนำให้ใช้ทั้ง JScript และ VBScript ในหน้าเดียวกัน เนื่องจากเซิร์ฟเวอร์ต้องสร้างอินสแตนซ์และพยายามแคชเอ็นจิ้นสคริปต์สองตัว (ไม่ใช่หนึ่ง) สิ่งนี้จะเพิ่มภาระของระบบในระดับหนึ่ง ดังนั้นจากมุมมองของประสิทธิภาพไม่ควรผสมเอ็นจิ้นสคริปต์หลายรายการในหน้าเดียวกัน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุนช่องเทคโนโลยีใหม่ที่ผิด