1. ASP caching คืออะไร/เหตุใดจึงควรแคช เมื่อเว็บไซต์ของคุณถูกสร้างขึ้นโดยใช้เทคโนโลยี ASP คุณอาจรู้สึกถึงความสะดวกสบายที่ได้รับจากเทคโนโลยีหน้าเว็บไดนามิกของ ASP เช่นเดียวกับอิสระในการแก้ไขและการควบคุม http ฟรี อย่างไรก็ตาม เมื่อจำนวนการเข้าชมเพิ่มขึ้น คุณจะพบว่าความเร็วในการเข้าถึงไซต์ของคุณช้าลงเรื่อยๆ และ IIS จะรีสตาร์ทบ่อยขึ้นเรื่อยๆ ถัดไป คุณต้องต้องการปรับ asp ให้เหมาะสม เช่น การแทนที่ฐานข้อมูลด้วยประสิทธิภาพที่ดีขึ้น การสร้างดัชนี การเขียนขั้นตอนการจัดเก็บ เป็นต้น มาตรการบางอย่างเหล่านี้ไม่ต้องการแรงกดดันด้านต้นทุนที่เพิ่มขึ้น ในขณะที่มาตรการอื่นๆ ต้องการแรงกดดันด้านต้นทุนที่มีนัยสำคัญ (เช่น การเข้าถึง SQL แบบคลัสเตอร์) และผลที่ได้ก็อาจไม่แน่นอนเสมอไป
เมื่อต้องเผชิญกับแรงกดดันในการเข้าถึงเว็บ ฉันคิดว่าวิธีที่ประหยัดที่สุดคือการใช้เทคโนโลยีเพิ่มประสิทธิภาพแคชเพื่อบรรเทาความกดดันในการให้บริการเว็บ
การเข้าชมเว็บที่เพิ่มขึ้นมักหมายถึงการเติบโตอย่างรวดเร็วของความต้องการทรัพยากรต่อไปนี้:
1. การเพิ่มขึ้นของการรับส่งข้อมูลการ์ดเครือข่ายต้องใช้ CPU มากขึ้นเพื่อประมวลผลการรับส่งข้อมูลเครือข่ายและเธรด I/O เครือข่าย
2. ความจำเป็นในการเปิด/ปิดการเชื่อมต่อฐานข้อมูลบ่อยขึ้น (หากใช้เทคโนโลยีฐานข้อมูล - โดยปกติ ASP จะใช้ฐานข้อมูลเป็นที่จัดเก็บข้อมูล) จำนวนสิ่งที่ใช้ทรัพยากรอย่างจริงจัง และการหยุดชะงักที่เกิดจากธุรกรรมที่แข่งขันกันเพื่อแย่งชิงทรัพยากรจะเพิ่มเครือข่าย I/ O หรือปริมาณการใช้ CPU
3. หากใช้เซสชัน IIS จะใช้หน่วยความจำมากขึ้นเพื่อรักษาสถานะ และการใช้หน่วยความจำอาจทำให้หน่วยความจำกายภาพไม่เพียงพอ ทำให้เกิดการแลกเปลี่ยนบ่อยครั้งระหว่างหน่วยความจำกายภาพและหน่วยความจำเสริม ทำให้การเรียกใช้โค้ดหยุดชั่วคราวและการตอบสนองของเว็บถูกบล็อก .
4. เนื่องจากขาดการตอบสนองในการเข้าถึงอย่างทันท่วงที จะทำให้การเข้าถึงหน้าเว็บล้มเหลว ทำให้ผู้ใช้รีเฟรช ส่งผลให้ความต้องการทรัพยากร เช่น CPU และหน่วยความจำรุนแรงขึ้น
ในความเป็นจริง เมื่อพิจารณาถึงเว็บแอปพลิเคชันทั่วไป หลายครั้งที่การเรียกใช้โค้ดแบบไดนามิกนั้นไม่จำเป็น
2. การจำแนกประเภทของแคช ASP สามารถสรุปได้โดยไม่ได้รับอนุญาต ASP แคชสามารถแบ่งออกเป็นสองประเภท:
1. การแคชไฟล์ สิ่งที่เรียกว่าการแคชไฟล์นั้นขึ้นอยู่กับการตัดสินใจเชิงตรรกะว่าการดำเนินการเฉพาะของ ASP บางตัวจะไม่เปลี่ยนแปลงอย่างมีนัยสำคัญภายในระยะเวลาหนึ่ง ดังนั้น เนื้อหาจะถูกจัดเก็บในรูปแบบของ HTML แบบคงที่ จากนั้น เทคโนโลยีการเปลี่ยนเส้นทางเว็บใช้เพื่อให้ลูกค้าสามารถเข้าถึงไฟล์คงที่แบบ end-to-end เพื่อลดความต้องการ CPU, ทรัพยากรฐานข้อมูล ฯลฯ มีแอปพลิเคชันดังกล่าวอยู่มากมาย ตัวอย่างเช่น ฟอรัมหลายแห่งจะสร้างโพสต์ทั้งหมดใหม่เป็นไฟล์คงที่เมื่อตอบกลับโพสต์ จากนั้นจึงเปลี่ยนเส้นทาง เช่น ฟอรัม donews.com นอกจากนี้ยังมีผลข้างเคียง (ประโยชน์) ของการคงที่ - สามารถจัดทำดัชนีได้อย่างง่ายดายโดยเครื่องมือค้นหาเช่น Google ระบบข่าวประชาสัมพันธ์บางระบบได้นำเทคโนโลยีนี้ไปใช้
2. การแคชไฟล์ส่วนที่เรียกว่าการแคชไฟล์นั้นขึ้นอยู่กับการตัดสินใจเชิงตรรกะด้วย ส่วนหนึ่งของข้อมูล (โดยปกติจะได้รับจากการสืบค้นฐานข้อมูลความจุขนาดใหญ่ที่ใช้ทรัพยากร) จะไม่เปลี่ยนแปลงภายในระยะเวลาหนึ่ง ดังนั้น เราสามารถจัดเก็บข้อมูลเหล่านี้ไว้ในรูปแบบไฟล์ได้ เมื่อจำเป็น สามารถรับข้อมูลได้โดยการอ่านไฟล์ เพื่อหลีกเลี่ยงการเพิ่มภาระให้กับฐานข้อมูล ตัวอย่างเช่น เรามักจะเก็บข้อมูลบางอย่างในรูปแบบ XML แล้วจึงนำไปใช้ นี่คือวิธีการจัดการฟอรัม CSDN
3. แคชหน่วยความจำหลัก นอกจากนี้ คุณยังสามารถพิจารณาแคชในหน่วยความจำ การจัดเก็บเนื้อหาที่ต้องการการตอบสนองอย่างทันท่วงทีในหน่วยความจำ และเมื่อจำเป็นต้องเข้าถึง เนื้อหาก็จะถูกถ่ายโอนจากที่จัดเก็บข้อมูลที่รวดเร็วทันที หากข้อกำหนดในการเข้าถึงจำนวนมากมุ่งเน้นไปที่เพจเล็กๆ สองสามหน้า หรือหากหน่วยความจำหลักมีขนาดใหญ่เพียงพอ ฉันคิดว่าการใช้การแคชหน่วยความจำหลักสามารถปรับปรุงประสิทธิภาพการเข้าถึงเว็บได้อย่างมาก
3. วิธีการใช้/ใช้แคช หากต้องการใช้แคช คุณต้องพิจารณาประเด็นต่อไปนี้:
1. หน้าใดจะไม่เปลี่ยนแปลงในช่วงเวลาอันสั้น?
วิเคราะห์ไซต์ของคุณเองมีหน้าดังกล่าวมากมาย ตัวอย่างเช่น เว็บไซต์มักจะมีคอลัมน์ข่าวสารและข้อมูล โดยปกติผู้ดูแลเว็บไซต์จะโพสต์คอลัมน์เหล่านี้ในช่วงเวลาหนึ่งของวัน และหน้าต่างๆ จะไม่ค่อยมีการเปลี่ยนแปลงหลังจากนั้น หน้าเหล่านี้เหมาะสำหรับการแคชไฟล์แบบคงที่ อันที่จริง นี่คือสิ่งที่เรียกว่าระบบข่าวประชาสัมพันธ์ทำ ดังนั้นคุณจึงสามารถอ้างอิงแนวคิดของระบบเหล่านี้เพื่อแปลงเพจ ASP แบบไดนามิกดั้งเดิมของคุณได้
2. เพจเหล่านั้นถูกสร้างขึ้นโดยใช้ตรรกะเดียวกันสำหรับผู้เข้าชมทั้งหมด (นั่นคือ ผู้เข้าชมจะไม่แยกแยะ)
นอกเหนือจากคอลัมน์ เช่น ข่าวสารและข้อมูลที่ผู้เยี่ยมชมทุกคนเห็นอินเทอร์เฟซเดียวกันแล้ว โดยทั่วไปแล้ว แอปพลิเคชันที่ใช้ทรัพยากร เช่น ฟอรัม ยังได้รับการออกแบบเพื่อสร้างตรรกะแบบครบวงจร (โพสต์เดียวกันจะถูกดูเหมือนกันโดยคนสามคนและคนสามคนสำหรับ) หน้าแอปพลิเคชันดังกล่าวเราก็สามารถทำได้โดยใช้แคชแบบคงที่ คุณยังสามารถพิจารณาแยกส่วนข้อมูลและใช้เทคโนโลยีการเขียนสคริปต์เพื่อประมวลผลเกินกว่าความสามารถในการประมวลผลของเซิร์ฟเวอร์ ซึ่งก็คือเบราว์เซอร์ไคลเอ็นต์
3. ต้นทุนและกำไรจากการใช้แคช
สิ่งสำคัญคือ "พื้นที่สำหรับเวลา (ตอบสนอง)" ใช้เทคโนโลยีแคชเพื่อประมวลผลเนื้อหาล่วงหน้าซึ่งจำเป็นบ่อยครั้งในอนาคต เพื่อปรับปรุงการตอบสนองของเว็บเซิร์ฟเวอร์ และที่สำคัญกว่านั้น ชนะใจผู้เยี่ยมชม
ราคาคือความต้องการพื้นที่เว็บเพิ่มขึ้น และในขณะเดียวกัน ผลกระทบในการเข้าถึงก็อาจได้รับผลกระทบ
แต่ฉันคิดว่าการแคชที่เหมาะสมมีข้อดีมากกว่าข้อเสีย
4. ตำแหน่งเหล่านั้นไม่เหมาะสำหรับการแคชหน้าการสืบค้นแบบไดนามิก เนื้อหาการสืบค้นของทุกคนแตกต่างกัน ดังนั้นผลลัพธ์ที่แสดงจึงแตกต่างกัน ดังนั้นจึงเป็นไปไม่ได้ที่จะแคชผลลัพธ์การสืบค้น ดังนั้น การแคชจึงซับซ้อนกว่าและอัตราการใช้งานแคชต่ำ ทำให้เกิดปัญหาในการจัดการ ค่าใช้จ่ายสูง (สมมติว่าคุณแคชคีย์เวิร์ดที่สืบค้น 1,000 รายการ ดังนั้นการจัดการความสอดคล้องระหว่างคีย์เวิร์ดเหล่านี้และแคชก็ลำบากเช่นกัน)
4. การวิเคราะห์ตัวอย่าง สมมติว่าเค้าโครงดั้งเดิมของฟอรัมข้อเสนอแนะเป็นดังนี้:
ภายใต้ไดเร็กทอรีราก:
หน้าแรกของ default.asp มักจะเน้น คำแนะนำ ฯลฯ
listBorad.asp ไฟล์นี้แสดงรายการชื่อและการแนะนำของคอลัมน์ทั้งหมด หากมีพารามิเตอร์ MainBID หมายความว่าจะต้องแสดงรายการคอลัมน์ภายใต้ส่วนนี้
listThread.asp หากไฟล์นี้ไม่มีพารามิเตอร์ใดๆ แสดงว่าแสดงรายการโพสต์ทั้งหมด และหากมี MainBID แสดงว่าแสดงรายการโพสต์ทั้งหมดในบล็อกหนึ่งๆ หากมีการดำเนินการ subBID หมายความว่ารายการโพสต์ในคอลัมน์เฉพาะ หากมีการนำพารามิเตอร์ของเพจ หัวข้อต่างๆ จะแสดงอยู่ในเพจ
ViewThread.asp แสดงรายการเนื้อหาของโพสต์ เราถือว่าโพสต์นั้นแสดงเป็นความคิดเห็น และความคิดเห็นใดๆ จะแสดงอยู่ที่ส่วนท้าย พารามิเตอร์ ID คือโพสต์ที่จะแสดง
Reply.asp ตอบกลับบางโพสต์และมีพารามิเตอร์ Id เพื่อตอบกลับบางโพสต์ ส่วนที่เหลือจะไม่ได้รับการพิจารณาในขณะนี้
จากที่กล่าวมาข้างต้น เราจะเห็นว่าหากทำทุกอย่างโดยใช้ ASP/PHP ดั้งเดิม การดำเนินการกับไฟล์ ASP เกือบทุกไฟล์จำเป็นต้องมีการดำเนินการฐานข้อมูล การสืบค้นบ่อยครั้ง และการสืบค้นแบบหลายตาราง คุณต้องทราบว่าการสืบค้นฐานข้อมูลในที่สุดจะส่งผลให้ประสิทธิภาพและความเร็วในการตอบสนองลดลง ซึ่งจะส่งผลต่อการเรียกดูที่ช้าของผู้เยี่ยมชมและไม่เอื้อต่อคุณภาพของเว็บ สิ่งที่สำคัญกว่านั้นคือสำหรับคนสองคน A และ B หากพวกเขาเข้าถึง ViewThread.asp และที่คล้ายกัน หาก ID เหมือนกัน หลายครั้งที่พวกเขาจะเห็นเนื้อหาเดียวกัน (โค้ด HTML ที่เบราว์เซอร์ได้รับเกือบจะเป็น เหมือนกัน) แต่สำหรับ "เนื้อหาเดียวกัน" นี้ เซิร์ฟเวอร์จำเป็นต้องเปิดการเชื่อมต่อฐานข้อมูล การสืบค้น บันทึกการอ่าน การแสดงผล ปิดบันทึก และการเชื่อมต่อฐานข้อมูล - - - หากมีคนเข้าถึงการดำเนินการต่อไปนี้ที่ใช้ทรัพยากรเซิร์ฟเวอร์มากขึ้น ผลลัพธ์สุดท้ายก็คือคนเหล่านี้ใช้ทรัพยากรเซิร์ฟเวอร์มากขึ้น ในความเป็นจริง ความพยายามซ้ำๆ เหล่านี้สำหรับ "เนื้อหาเดียวกัน" สามารถหลีกเลี่ยงได้โดยใช้เทคโนโลยีแคชเพื่อการปรับให้เหมาะสม ตัวอย่างเช่น:
หลังจากส่งเนื้อหาใน Reply.asp เราจะเรียกใช้ฟังก์ชันคงที่ทันทีและจัดเก็บเนื้อหาโพสต์ทั้งหมดเป็นไฟล์ html แบบคงที่ เช่น viewThread_xxxx.htm ภายใต้สถานการณ์ปกติ เมื่อเข้าถึง viewThread.asp?ID=xxxx ระบบจะเปลี่ยนเส้นทางโดยอัตโนมัติ ไปยังไฟล์สแตติกที่สอดคล้องกัน viewThreadxxxx.htm ด้วยวิธีนี้ เมื่อโพสต์ไม่มีการเผยแพร่ล่าสุด โพสต์นั้นจะเป็นเนื้อหาคงที่ที่มอบให้กับผู้ดูเสมอ เมื่อมีการส่งใหม่ โพสต์นั้นจะได้รับการอัปเดตเป็นไฟล์คงที่ ด้วยวิธีนี้ การดำเนินการฐานข้อมูลจำนวนมากจะถูกบันทึก และการตอบสนองจะดีขึ้นอย่างมาก
listBorad.asp ยังสามารถนำไปใช้แบบคงที่ได้ เราสามารถวิเคราะห์พารามิเตอร์ที่อาจมี ตั้งชื่อไฟล์แคชเป็น listBoard_xx.htm และอัปเดต listBoard_xxx.htm เมื่อเพิ่มคอลัมน์ใหม่ listThread.asp จะคล้ายกัน ยกเว้นว่าเนื่องจากมีพารามิเตอร์มากกว่า จึงจะมีไฟล์แคชจำนวนมาก หากคุณต้องการแคช listThread.asp? subBID=xxx&page=2 ไฟล์คงที่ที่เกี่ยวข้องคือ listThread_xxx_p2.htm เช่นเดียวกับ default.asp
แล้วจะบอกว่าจะอัพเดตเมื่อไร? เมื่อไหร่จะอัพเดตครับ?
เมื่อพูดถึง listThread.asp? subBID=xxx&page=2 เราจะแยก subID และเพจเมื่อดำเนินการ listThread.asp จากนั้นตรวจสอบว่ามี listThread_xxx_p2.htm อยู่หรือไม่ หากไม่มี ให้เรียกใช้ฟังก์ชันการสร้างแบบคงที่เพื่อสร้างไฟล์ และสุดท้ายเปลี่ยนเส้นทาง ที่นี่ไฟล์คงที่ โปรดทราบว่าการไม่มีที่นี่หมายความว่ามีเนื้อหาใหม่ที่จำเป็นต้องได้รับการอัปเดต
แล้วจะทำให้ไฟล์ไม่มีอยู่ได้อย่างไร? ลบ. เมื่อเราเผยแพร่โพสต์ใหม่ ลบโพสต์ หรือย้ายโพสต์ เราสามารถลบไฟล์คงที่ทั้งหมด เช่น listThread_xxx_p2.htm สิ่งนี้จะบอกคุณเมื่อต้องแคช
ตอนนี้มีคำถามเหลืออยู่หนึ่งข้อ จะสร้างไฟล์สแตติกได้อย่างไร?
เราทราบว่า "เนื้อหาเดียวกัน" ที่เรากล่าวถึงก่อนหน้านี้ เราสามารถสร้างสำเนาของ default.asp, listThread.asp ฯลฯ ก่อนการแปลงชื่อ default_d.asp, listThread_2.asp และในไดเร็กทอรีเดียวกัน (ตามทฤษฎี listThtrad.asp?subID=123 จะเหมือนกับ LISTtHREAD_D.ASP ? ผลลัพธ์การเข้าถึงของ SUBID=123 จะเป็นเนื้อหาเดียวกัน) ดังนั้นในตรรกะที่ต้องการสร้างไฟล์สแตติก เราเรียกสำเนาก่อนการแปลงผ่านการร้องขอการเข้าถึงเว็บ รับโค้ด html และจัดเก็บเป็นไฟล์สแตติก คำขอทางเว็บนี้จริงๆ แล้วเทียบเท่ากับเซิร์ฟเวอร์ที่กำลังดู HTML ซึ่งจะถูกส่งออกก่อนที่เบราว์เซอร์จริงจะเข้าถึงเนื้อหาแบบคงที่ จากนั้นส่งคืนรหัสเหล่านี้และจัดเก็บเป็นไฟล์แบบคงที่โดยใช้ฟังก์ชันการทำงานของไฟล์ ด้วยวิธีนี้ไฟล์แคชจะถูกสร้างขึ้นต่อหน้าผู้ดูจริง
วิธีแก้ปัญหาดังกล่าวแทบจะไม่แตะต้องเค้าโครงดั้งเดิมเลย และแทบจะไม่เคยทำให้เกิดข้อผิดพลาดเช่น 404 เลยเนื่องจากการดัดแปลง ประการที่สอง ไฟล์คงที่จะช่วยให้เว็บไซต์ของคุณจัดทำดัชนีโดยเครื่องมือค้นหาเช่น Google ได้อย่างง่ายดาย ทำไมไม่?
สุดท้ายนี้ การแจ้งเตือนผ่านการเข้าถึงเว็บในสภาพแวดล้อมการเขียนโปรแกรม ASP หลายคนใช้คอมโพเนนต์ xmlHTTP ในการเข้าถึง ซึ่งจะทำให้เกิดปัญหามากมาย xmlhttp เองจะแคชทรัพยากรที่ร้องขอ ทำให้เนื้อหาที่เราร้องขอผ่านส่วนประกอบนี้ไม่ใช่เนื้อหาล่าสุด ทำให้เกิดความสับสนเชิงตรรกะ ดังนั้น คุณควรเลือกอ็อบเจ็กต์ xml Server http หรือคอมโพเนนต์ winhttp เพื่อใช้ทรัพยากรคำขอเว็บ
การใช้เทคโนโลยีแคชใน ASP สามารถปรับปรุงประสิทธิภาพเว็บไซต์ของคุณได้อย่างมาก อันที่จริง วิธีการนำไปใช้งานเหล่านี้ทำได้ง่ายมาก ซึ่งจะอธิบายวิธีการทำงานของแคชบนเซิร์ฟเวอร์ และวิธีที่คุณสามารถใช้วิธีที่เรียกว่าเทคโนโลยีการเชื่อมต่อ ADO
ก่อนที่จะแนะนำเทคโนโลยีเหล่านี้ เรามาอธิบายว่าเทคโนโลยีแคช ASP คืออะไรกันแน่
จริงๆ แล้วสิ่งที่เรียกว่าแคชคือการเปิดพื้นที่ในหน่วยความจำเพื่อบันทึกข้อมูล คุณไม่จำเป็นต้องเข้าถึงข้อมูลที่คุณบันทึกไว้ในฮาร์ดดิสก์บ่อยครั้ง คุณสามารถหลีกเลี่ยงได้ ความทุกข์ทรมานจากการดูฮาร์ดดิสก์ที่ไม่ดีเต็ม ฉันทรมานกับการอ่านข้อมูล เมื่อคุณดำเนินการสืบค้นและใส่ผลลัพธ์การสืบค้นลงในแคช คุณจะสามารถเข้าถึงข้อมูลซ้ำ ๆ ได้อย่างรวดเร็ว และถ้าคุณไม่ใส่ข้อมูลลงในแคช เมื่อคุณดำเนินการค้นหาอีกครั้ง เซิร์ฟเวอร์จะใช้เวลากระบวนการในการรับและเรียงลำดับจากฐานข้อมูล
เมื่อข้อมูลถูกเก็บไว้ในแคช เวลาที่ใช้ในการสืบค้นอีกครั้งจะเป็นเวลาในการแสดงข้อมูลเป็นหลัก
กล่าวอีกนัยหนึ่ง เราไม่ควรใส่ข้อมูลที่จำเป็นต้องเปลี่ยนแปลงบ่อยครั้งในแคชของเซิร์ฟเวอร์ เราควรใส่ข้อมูลที่เปลี่ยนแปลงน้อยลงแต่จำเป็นต้องเข้าถึงบ่อยครั้งในแคช
ตอนนี้เราจะหารือเกี่ยวกับวิธีที่ ASP ใช้เทคโนโลยีแคชบนฝั่งเซิร์ฟเวอร์ และจากนั้นเราจะหารือเกี่ยวกับวิธีที่ ASP ใช้เทคโนโลยีแคชในฝั่งไคลเอ็นต์
เมื่อคุณมีข้อมูลจำนวนมาก (คงที่ ซึ่งเปลี่ยนแปลงน้อยกว่า) ที่ต้องแสดงต่อไคลเอ็นต์ คุณสามารถพิจารณาใช้เทคโนโลยีการแคชฝั่งเซิร์ฟเวอร์ได้ เทคโนโลยีนี้เหมาะอย่างยิ่งสำหรับเว็บไซต์ที่มีรูปแบบการแสดงผลที่สม่ำเสมอ (555 มันไม่ง่ายที่จะใช้กับเว็บไซต์ที่ไม่ใช่กระแสหลัก)
ในความเป็นจริง วิธีการนำไปใช้นั้นง่ายมาก คุณจะต้องดูตัวอย่างง่ายๆ ด้านล่างนี้เท่านั้นจึงจะเข้าใจ
นี่คือโปรแกรมตัวอย่างสำหรับแสดงหมวดหมู่หนังสือ
ไฟล์ DisplayBooks.ASP:
< %@ LANGUAGE=จาวาเอส
สคริปต์ % >
<html>
<ร่างกาย>
<แบบฟอร์มวิธีการ=โพสต์>
การจำแนกประเภทหนังสือ; < %= getBooksListBox() % >
<p>
< ประเภทอินพุต = ส่ง >
-
ฟังก์ชั่น getBooksListBox()
-
BooksListBox = แอปพลิเคชัน ("BooksListBox")
ถ้า (BooksListBox != null) ส่งคืน BooksListBox;
crlf = String.fromCharCode (13, 10)
BooksListBox = “< เลือกชื่อ=หนังสือ>” + crlf;
SQL = “เลือก * จากหนังสือหรือตามชื่อ”;
cnnBooks = Server.CreateObject("ADODB.Connection");
cnnBooks.Open("หนังสือ", "ผู้ดูแลระบบ", "");
rstBooks = cnnBooks.Execute (SQL);
fldBookName = rstBooks("ชื่อหนังสือ");
ในขณะที่ (!rstBooks.EOF){
BooksListBox = BooksListBox + ” < ตัวเลือก>” +
fldBookName + "" + crlf;
rstBooks.MoveNext();
-
BooksListBox = BooksListBox + ""
Application("BooksListBox") = BooksListBox
กลับ BooksListBox;
-
-
มันง่ายมาก จริงๆ แล้ว มันใช้เทคโนโลยี Application ที่ง่ายมาก และความแตกต่างมีเพียงประโยคเดียวเท่านั้น:
Application("BooksListBox") = BooksListBox
คุณสามารถตรวจสอบได้และคุณจะพบว่าจำนวนคำขอบนเซิร์ฟเวอร์จะลดลงอย่างมาก สถานการณ์นี้เหมาะอย่างยิ่งสำหรับเนื้อหาเว็บไซต์ที่ไม่ได้อัปเดตบ่อยนัก เช่น คุณอัปเดตเพียงวันละครั้งเท่านั้น (หรือเป็นเวลานาน)
ต่อไป เราจะหารือเกี่ยวกับเทคโนโลยีแคชฝั่งไคลเอ็นต์ เทคโนโลยีนี้เรียกอีกอย่างว่าเทคโนโลยีการเชื่อมต่อ ADO แบบตัดการเชื่อมต่อ (ระดับการแปลต่ำเกินไป ทำไมจึงฟังดูน่าอึดอัดใจ) เทคโนโลยีนี้ใช้เพื่อบันทึกข้อมูลส่วนบุคคลของผู้ใช้เป็นหลัก เช่น รหัสผ่านผู้ใช้ ชื่อรหัส ฯลฯ ส่วนใหญ่จะใช้คุณสมบัติบางอย่างของ ADO ขณะเดียวกันก็ยังตอบคำถามที่ชาวเน็ตบางคนพูดถึงว่าสามารถใช้ออบเจ็กต์ ADO ใน Applocation ได้หรือไม่ คำอธิบายไม่ชัดเจน ให้โค้ดพูด:
ไฟล์ GLOBAL.ASA:
< !–ประเภทเมตาดาต้า =”TypeLib” FILE =”C:Program FilesCommon
ไฟล์ระบบadomsado15.dll”–>
< ภาษาสคริปต์=VBScript RUNAT=”เซิร์ฟเวอร์” >
Application_OnStart ย่อย
SQL = “เลือกชื่อผู้ใช้, รหัสผ่านจาก UserInfo”
cnnUsers = “DSN=ผู้ใช้”
ตั้งค่า rsUsers = Server.CreateObject("ADODB.Recordset")
'โปรดทราบว่าสองประโยคต่อไปนี้ใช้ในการใช้เทคโนโลยี ADO ที่เรียกว่าการตัดการเชื่อมต่อที่มีอยู่
rsCustomers.CursorLocation = adUseClient
rsCustomers.Open SQL, cnnAdvWorks, adOpenStatic, AdLockReadOnly
' ตัดการเชื่อมต่อ RecordSet จากฐานข้อมูล
rsCustomers.ActiveConnection = ไม่มีเลย
ตั้งค่าแอปพลิเคชัน ("rsCustomers") = rsCustomers
จบหมวดย่อย
FileUsers.ASP
-
'วิธีการโคลนช่วยให้ผู้ใช้แต่ละคนมีคอลเลกชัน RecordSet ของตัวเอง
ตั้งค่า yourUsers = Application("rsUsers").Clone
ตั้งชื่อผู้ใช้ = yourUsers("ชื่อผู้ใช้")
ตั้งรหัสผ่าน = yourUsers("รหัสผ่าน")
ทำจนกว่า yourUsers.EOF
-
ชื่อผู้ใช้: < %= ชื่อผู้ใช้ % > รหัสผ่านผู้ใช้: < %= รหัสผ่าน % >
-
yourUsers.MoveNext
วนซ้ำ
-