แนะนำ: การเปรียบเทียบระหว่างเทคโนโลยี ASP และ PHP, CGI, JSP และเทคโนโลยีอื่น ๆ ในปัจจุบันภาษาเว็บแบบไดนามิกที่ใช้กันมากที่สุดสามภาษาคือ ASP (หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่), JSP (หน้า JavaServer) และ PHP (Hypertext Preprocessor) บทนำ ASP ชื่อเต็มหน้าเซิร์ฟเวอร์ที่ใช้งานอยู่เป็นสภาพแวดล้อมการพัฒนาฝั่งเซิร์ฟเวอร์
หลังจากอ่านบทนำจำนวนมากฉันรู้ว่าประสิทธิภาพการดำเนินการของ Set Rs = Conn.execute (SQL) นั้นสูงกว่า Rs.Open SQL, Conn, 1,1 แต่วิธีการดำเนินการของ Set Rs = Conn.execute (SQL) ก็มีข้อบกพร่องมากมาย ก่อนอื่นเลยไม่มีแอตทริบิวต์เพจเช่น Rs.Pagesize, Rs, AbsolutePage และคุณลักษณะอื่น ๆ ด้วยวิธีนี้แม้ว่า set rs = conn.execute (SQL) จะดำเนินการได้เร็วขึ้นด้วยวิธีนี้ แต่ก็ไม่สามารถแยกแยะได้ในวิธีธรรมดา ฉันควรทำอย่างไร? -
ในวันถัดไปฉันตรวจสอบข้อมูลออนไลน์และคิดว่าฉันสามารถพูดถึงข้อมูลที่ต้องการกับอาร์เรย์แล้วแยกแยะอาร์เรย์ได้หรือไม่? ก่อนอื่นฉันนำผลลัพธ์ของชุดคิวรี RS = Conn.execute (SQL) ผ่าน Rs.getRows () และแนบกับอาร์เรย์ ดังนั้นฉันจึงมองหาโพสต์เพจในแต่ละเว็บไซต์ แม้ว่าฉันจะพบโพสต์เพจที่มีประสิทธิภาพมากมาย (รวมถึงขั้นตอนที่เก็บไว้ ฯลฯ ) ฉันพบว่าพวกเขาทั้งหมดจำเป็นต้องดำเนินการผ่าน SQL นั่นคือเมื่อเปลี่ยนหน้าฉันก็ต้องดำเนินการตามคำสั่ง SQL ในเวลานี้ฉันเวียนหัวและการเพิ่มประสิทธิภาพเพียงอย่างเดียวคือคำสั่ง SQL เท่านั้น ฉันไม่มีทางเลือก แต่ต้องทำงานหนักกับตัวเอง! ในที่สุดร่างคร่าวๆของเพจอาเรย์ก็เสร็จสมบูรณ์ รหัสไม่สมบูรณ์มาก ให้ทุกคนเรียนด้วยกัน! รหัสมีดังนี้:
ก่อนอื่นมีหน้าตรวจสอบ index.asp:
| <html xmlns = http: //www.w3.org/1999/xhtml> <head> <meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312 /> <tite> เอกสารชื่อ UNT </title> </head> <body> <form id = name searchform = method รูปแบบ form = post action = search.asp? act = cha> <div class = input> <อินพุต ID = คำหลัก onMouseOver = this.focus () title = ค้นหาบันทึกข้อความของคุณอย่างรวดเร็ว onfocus = this.select () class = ใน maxLength = 35 name = keyword /> <select style = width: 120px; margin-top: -25px name = channelid> <ตัวเลือกค่า = k2> ข้อความ </petion> <ตัวเลือกค่า = k1> เนื้อหาข้อความ </potion> </เลือก> <อินพุต id = search_btn type = submit value = query> </div> </form> </body> </html> search.asp code: <html xmlns = http: //www.w3.org/1999/xhtml> <head> <meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312 /> <tite> เอกสารชื่อ UNT </title> </head> <body> - ถ้า request.QueryString (ACT) = Cha แล้ว search_type = request.form (channelid) คำสำคัญ = request.form (คำหลัก) ถ้า search_type = k1 แล้ว 'ค้นหาตามเนื้อหาของข้อความ sql = select * จาก gbook_rec โดยที่ g_content เช่น '%& คำหลัก &%' elseif search_type = k2 แล้ว 'ถ้า search_type = k2 แล้ว' ค้นหาโดยข้อความ sql = select * จาก gbook_rec โดยที่ g_name เช่น '%& คำหลัก &%' อื่น Response.end สิ้นสุดถ้า ตั้งค่า rs = conn.execute (SQL) ถ้า RS.EOF และ Rs.Bof แล้ว - <div class = การค้นหา> บันทึกที่คุณต้องการไม่พบ! </div> - Response.end อื่น aresults = rs.getrows () 'นำข้อมูลออกมาและนำไปไว้ในแถวอาร์เรย์ แอปพลิเคชัน (data) = aresults ตั้งค่า rs = ไม่มีอะไร conn.close 'ปิดฐานข้อมูล สิ้นสุดถ้า สิ้นสุดถ้า aresults = แอปพลิเคชัน (ข้อมูล) Dim I, Row, Pagesize, Epage, Numb, Pagecount, Fenye numb = ubound (aresults, 2) 1 'จำนวนทั้งหมดของแถวบันทึก PAGESIZE = 2 'จำนวนต่อหน้า ถ้า numb mod pagesize = 0 จากนั้น 'ตัดสินจำนวนหน้าทั้งหมด pagecount = int (numb/pagesize) อื่น pagecount = int (numb/pagesize) 1 สิ้นสุดถ้า Episode = Request.QueryString (หน้า) ถ้า epage = ดังนั้น epage = 1 สำหรับ i = (epage-1)*หน้าไปยัง epage*pagesize-1 ถ้าฉัน> ubound (aresults, 2) หรือฉัน <0 จากนั้นออกจาก - <div class = content> <ul> <li> บันทึก <%= i 1%> </li> <li> ข้อความ: <%= aresults (1, i)%> </li> <li> เนื้อหา: <%= aresults (2, i)%> </li> <li> เวลา: <%= aresults (3, i)%> </li> <li> IP: <%= aresults (5, i)%> </li> </ul> </div> - ต่อไป ถ้ามึน> หน้า fenye = <a href = search.asp? page = 1> โฮมเพจ </a> fenye = fenye & <a href = search.asp? page = & epage-1 & title = & epage-1 &> หน้าก่อนหน้า </a> fenye = fenye & <a href = search.asp? page = & epage 1 & title = & epage 1 &> หน้าสุดท้าย </a> fenye = fenye & <a href = search.asp? page = & pagecount &> หน้าสุดท้าย </a> fenye = fenye & <br> fenye = fenye & จำนวนหน้าทั้งหมด & pagecount &, หน้าปัจจุบัน & epage &, บันทึกทั้งหมดคือ: & numb Response.write Fenye สิ้นสุดถ้า - </body> </html> |
สรุป: ฉันเชื่อว่ารหัสข้างต้นไม่จำเป็นต้องเชื่อมต่อกับฐานข้อมูลยกเว้นการสืบค้นแรกและมีประโยชน์มากสำหรับการประหยัดทรัพยากรเมื่อมีการสืบค้นข้อมูลขนาดใหญ่หรือเมื่อมีคนจำนวนมากเชื่อมต่อ! นอกจากนี้บันทึกอาร์เรย์แบบสอบถามบนวัตถุแอปพลิเคชันและคุณยังสามารถกำหนดสิ่งที่ใครบางคนได้สอบถามตามแอปพลิเคชัน (ข้อมูล) (ชื่อผู้ใช้) อย่างไรก็ตามรหัสนี้เป็นรุ่นแรกและจะมีมากเกินพอที่จะปรับปรุงในอนาคต! ฉันหวังว่าทุกคนจะให้ความสนใจและสนับสนุนมันขอบคุณ!
ดาวน์โหลดรหัสทดสอบ
แชร์: ซอร์สโค้ดห้องแชทง่าย ๆ ฟรี chat.html ต่อไปนี้เป็นเนื้อหาที่อ้างอิง: <html> <head> <title> แชท </title> </head> <frameset rows =*, 100> & &