แนะนำ: คำอธิบายโดยละเอียดของวัตถุเซสชันของ ASP 1. แอตทริบิวต์ 1. SessionID คุณสมบัติ SessionID ส่งคืนข้อมูลประจำตัวเซสชันของผู้ใช้ เมื่อสร้างเซสชันเซิร์ฟเวอร์จะสร้างตัวตนแยกต่างหากสำหรับแต่ละเซสชัน ตัวระบุเซสชันจะถูกส่งกลับเป็นชนิดข้อมูลที่ยาว ในหลายกรณี SessionID สามารถใช้สำหรับสถิติการลงทะเบียนหน้าเว็บ 2. คุณสมบัติการหมดเวลาหมดเวลาเป็นเซสซี่ของแอปพลิเคชันในไม่กี่นาที
เมื่อใช้โปรแกรม ASP สำหรับการออกแบบเว็บเพจส่วนใหญ่เป็นเพราะคุณจำเป็นต้องเข้าถึงฐานข้อมูลแล้วแสดงข้อมูลไปยังหน้า หากมีข้อมูลจำนวนมากความเร็วในการเข้าถึงของหน้าจะช้าลง เพื่อแก้ปัญหานี้คุณสามารถใช้เทคนิคต่อไปนี้เพื่อปรับปรุงความเร็วในการเข้าถึงของหน้าหนึ่งในเคล็ดลับ: ปรับปรุงประสิทธิภาพของการใช้คอลเลกชันคำขอ
การเข้าถึงคอลเลกชัน ASP เพื่อแยกค่าเป็นกระบวนการใช้ทรัพยากรที่ใช้เวลานานและคอมพิวเตอร์ เนื่องจากการดำเนินการนี้มีชุดการค้นหาชุดที่เกี่ยวข้องจึงช้ากว่าการเข้าถึงตัวแปรท้องถิ่นมาก ดังนั้นหากคุณตั้งใจจะใช้ค่าจากการรวบรวมคำขอหลายครั้งในหน้าคุณควรพิจารณาจัดเก็บเป็นตัวแปรท้องถิ่น
ตัวอย่างเช่นเขียนโค้ดลงในแบบฟอร์มต่อไปนี้เพื่อเพิ่มความเร็วในการประมวลผลสคริปต์เอ็นจิ้น:
| strtitle = request.form (ชื่อ) strfirstName = request.form (FirstName) strlastName = request.form (นามสกุล) iflen (strtitle) thstrtitle = strtitle & ifstrfirstName = thstrfullName = strtitle && strlastName elseiflen (strfirstname) = 1 จากนั้น strfullName = strtitle & strfirstname &. & strlastname อื่น strfullName = strtitle & strfirstname && strlastName endif |
เคล็ดลับ 2: การเข้าถึงคอลเลกชันที่เหมาะสมโดยตรง
หากไม่ได้ใช้ strPage = คำขอ (หน้า) เพื่อรับพารามิเตอร์เนื่องจากสิ่งนี้จะค้นหาคอลเลกชันทั้งหมดตามลำดับ - แบบสอบถาม, แบบฟอร์ม, คุกกี้, clientcertificate, servervarible จนกว่าจะพบชื่อค่าการจับคู่แรก สิ่งนี้มีประสิทธิภาพน้อยกว่าการเข้าถึงชุดที่เหมาะสมโดยตรงและไม่ปลอดภัยเว้นแต่จะรับประกันได้อย่างแน่นอนว่าค่านี้จะไม่ปรากฏในชุดอื่น
ตัวอย่างเช่นอาจเป็นที่พึงปรารถนาที่จะค้นหาชื่อเว็บเซิร์ฟเวอร์ที่ตอบสนองคำขอของลูกค้าซึ่งสามารถทำได้โดยการค้นหา server_name ใน collection.servervarables คอลเลกชันที่ปรากฏในแต่ละแบบสอบถาม อย่างไรก็ตามหากชุดอื่นยังมีค่าที่มีชื่อว่า Server_name (ชื่อคีย์เป็นตัวพิมพ์ใหญ่) เมื่อใช้คำขอ (server_name) ผลลัพธ์ที่ไม่ถูกต้องจะได้รับ ในระยะสั้นควรเข้าถึงคอลเลกชันที่เหมาะสมโดยตรงที่สุดเท่าที่จะทำได้
เคล็ดลับที่ 3: ใช้คุณสมบัติการตอบสนองที่เชื่อมต่อกันก่อนการดำเนินการใช้เวลานาน
การใช้ Response.isclientConnected เป็นวิธีที่มีประโยชน์ในการสังเกตว่าผู้ใช้ยังคงเชื่อมต่อกับเซิร์ฟเวอร์และกำลังโหลดหน้าเว็บที่สร้างโดย ASP หรือไม่ หากผู้ใช้ยกเลิกการเชื่อมต่อหรือหยุดการดาวน์โหลดเราไม่จำเป็นต้องเสียทรัพยากรของเซิร์ฟเวอร์อีกต่อไปเพื่อสร้างหน้าเว็บอีกต่อไปเนื่องจากเนื้อหาบัฟเฟอร์จะถูกทิ้งโดย IIS ดังนั้นสำหรับหน้าเว็บที่ต้องใช้เวลามากในการคำนวณหรือใช้ทรัพยากรมากขึ้นมันคุ้มค่าที่จะตรวจสอบในแต่ละขั้นตอนไม่ว่าผู้เข้าชมจะออฟไลน์:
... codetocreate ส่วนแรกของหน้า ifresponse.isclientconnectedthen Response.flush อื่น Response.end endif ... codetocreatenextpartofpage |
เคล็ดลับ 4: เพิ่มประสิทธิภาพการดำเนินงาน ADO ใน ASP
โดยทั่วไปข้อมูลถือเป็นเนื้อหาจริงของเว็บไซต์ ดังนั้นจึงมีประโยชน์มากในการเพิ่มประสิทธิภาพการดำเนินงาน ADO เพื่อเพิ่มความเร็วในการดำเนินการรหัส ASP:
. เลือกเฉพาะคอลัมน์ที่คุณต้องการ: เมื่อเปิดชุดบันทึก ADO ชื่อตาราง (เช่นเลือก*) ไม่ควรใช้โดยอัตโนมัติเว้นแต่จะต้องได้รับคอลัมน์ทั้งหมด การใช้คอลัมน์แยกต่างหากหมายความว่าจำนวนข้อมูลที่ส่งไปหรือดึงข้อมูลจากเซิร์ฟเวอร์จะลดลง แม้ว่าคุณจะต้องใช้คอลัมน์ทั้งหมดการตั้งชื่อแต่ละคอลัมน์แต่ละรายการจะได้รับประสิทธิภาพที่ดีที่สุดเนื่องจากเซิร์ฟเวอร์ไม่ต้องตีความชื่อของคอลัมน์เหล่านั้นอีกต่อไป
ข. ใช้ขั้นตอนที่เก็บไว้ให้มากที่สุด ขั้นตอนที่เก็บไว้เป็นโปรแกรมที่รวบรวมไว้ล่วงหน้าซึ่งมีแผนการดำเนินการที่พร้อมใช้งานดังนั้นพวกเขาจึงดำเนินการได้เร็วกว่าคำสั่ง SQL
ค. ใช้เคอร์เซอร์และโหมดล็อคที่เหมาะสม หากงานทั้งหมดเสร็จสิ้นคือการอ่านข้อมูลจากชุดระเบียนและแสดงบนหน้าจอแล้วจะใช้ชุดเร็กคอร์ดแบบอ่านอย่างเดียวเริ่มต้นเท่านั้น ADO ที่ทำงานน้อยกว่าใช้เพื่อรักษารายละเอียดของระเบียนและล็อค
d. ใช้ตัวแปรวัตถุ วิธีที่แน่นอนในการปรับปรุงประสิทธิภาพเมื่อข้ามชุดบันทึกคือการใช้ตัวแปรวัตถุเพื่อชี้ไปที่สมาชิกในชุด ตัวอย่างเช่น:
whilenotrsgc.eof Response.Write ชื่อโครงการ: & RSGC (GCMC) & (รหัสโครงการ: & RSGC (GCCODE) &) RSGC.Movenext ใช้ |
คุณสามารถใช้การเขียนใหม่ได้ดังนี้เพื่อเพิ่มความเร็วในการดำเนินการ:
setGCMC = RSGC (GCMC) setGCCODE = RSGC (GCCODE) whilenotrsgc.eofresponse.write ชื่อโครงการ: & gcmc & (รหัสโครงการ: & gccode &) RSGC.Movenext ใช้ |
รหัสใหม่สร้างการอ้างอิงถึงตัวแปรวัตถุดังนั้นตัวแปรวัตถุสามารถใช้แทนตัวแปรจริงซึ่งหมายความว่าเอ็นจิ้นสคริปต์ทำงานน้อยลงเนื่องจากจำนวนดัชนีในชุดจะน้อยลง
เคล็ดลับ 5: อย่าผสมเอ็นจิ้นสคริปต์
เรารู้ว่าคุณสามารถใช้ทั้ง VBScript และ JScript ในหน้า ASP อย่างไรก็ตามไม่แนะนำให้ใช้ทั้ง JScript และ VBScript ในหน้าเดียวกัน เนื่องจากเซิร์ฟเวอร์ต้องสร้างอินสแตนซ์และพยายามแคชเอ็นจิ้นสคริปต์สองตัว (ไม่ใช่หนึ่ง) สิ่งนี้จะเพิ่มภาระของระบบในระดับหนึ่ง ดังนั้นจากมุมมองของประสิทธิภาพไม่ควรผสมเอ็นจิ้นสคริปต์หลายรายการในหน้าเดียวกัน
คุณสามารถลองได้ วิธีการข้างต้นสามารถปรับปรุงความเร็วในการเปิดของหน้า ASP ได้อย่างมีประสิทธิภาพ
แบ่งปัน: การตีความวิธีการใช้ตัวแปรวัตถุเซสชันอย่างถูกต้องใน ASP ทุกคนที่ใช้ ASP รู้ว่าวัตถุเซสชันจะเก็บข้อมูลที่จำเป็นสำหรับเซสชันผู้ใช้ที่เฉพาะเจาะจงและเมื่อผู้ใช้กระโดดระหว่างหน้าแอปพลิเคชันตัวแปรที่เก็บไว้ในวัตถุเซสชันจะไม่ถูกล้างและตัวแปรเหล่านี้จะปรากฏขึ้นเสมอเมื่อผู้ใช้เข้าถึงหน้าในแอปพลิเคชัน มันสามารถลดความซับซ้อนของโปรแกรมและปรับปรุงประสิทธิภาพการเขียนโปรแกรม แต่ก็มีข้อบกพร่องมากมาย