ที่จริงแล้ว AJAX ไม่ใช่สิ่งที่สามารถทำได้ง่ายๆ ด้วยการเขียน JS คุณยังคงต้องมีประสบการณ์ด้านการเขียนโปรแกรมอยู่บ้าง ไม่เช่นนั้น แม้ว่าคุณจะเขียนมัน แนวคิดนี้ยังไม่ชัดเจนและคุณจะไม่รู้ว่าจะเริ่มตรงไหนเมื่อคุณต้องการทำ การเปลี่ยนแปลงในอนาคต . ดังนั้นหลังจากที่ฉันได้สัมผัสกับการเขียนโปรแกรมเชิงวัตถุในช่วงสั้น ๆ ฉันรู้สึกว่ามันไม่ง่ายเลยที่จะทำได้ดีใน AJAX ทำไมฉันถึงพูดถึง AJAX เมื่อเขียนบทช่วยสอนการเพจ ASP เพราะเราต้องการ ฝึกฝนเพิ่มเติมเกี่ยวกับความสำคัญของโครงสร้างในกระบวนการเขียนโปรแกรม
นอกจากนี้ เพื่อนหลายคนมีความรู้สึกลึกซึ้งเกี่ยวกับเพจจิ้ง ดังนั้น พวกเขาจึงไม่กล้าแตะต้องมันเลย พวกเขาใช้ส่วนประกอบที่คนอื่นเขียนหรือแก้ไขสิ่งของของผู้อื่น โดยเฉพาะอย่างยิ่งสำหรับ .net ฉันรู้สึกลึกๆ ว่าถ้าคุณต้องการพัฒนาอย่างรวดเร็ว ผมคิดว่า .net เป็นแพลตฟอร์มที่ยอดเยี่ยมมาก เนื่องจากมีการควบคุมอย่างเข้มงวด มือใหม่จึงไม่สามารถเข้าใจแนวคิดของการเขียนโปรแกรมได้และไม่สามารถสัมผัสถึงความรู้สึกของการเขียนโปรแกรมได้เลย ราวกับว่าเป็นการสร้างบล็อค บางครั้งคุณยังต้องฝึกฝนสิ่งที่อยู่ในระดับต่ำเพื่อให้ความสามารถทางเทคนิคส่วนบุคคลของคุณ ปรับปรุงได้ ไม่อยากเป็นแอสเซมเบลอร์ที่ใช้แต่ .NET ได้
เอาล่ะ นี่คือซอร์สโค้ดของเพจ ASP สำหรับทุกคน มีการแสดงความคิดเห็นโดยละเอียดและสามารถเข้าใจได้โดยทั่วไป
เนื่องจากนี่คือบทช่วยสอน ฉันจะเริ่มจากวิธีที่ง่ายที่สุด ฉันใช้ AbsolutePage โดยตรงเพื่อกำหนดหน้าปัจจุบัน ดังนั้นฉันจึงไม่ใช้วิธีการเคอร์เซอร์ที่ซับซ้อนกว่านี้ เช่น MoveFirst และฉันยังใช้กล่องเลือกแบบเลื่อนลงสำหรับการแบ่งหน้าด้วย ฉันจะรอบทเรียนถัดไป ฉันจะเขียนวิธีการแบ่งหน้าขั้นสูงอีกวิธีหนึ่ง โดยให้วิธีการเลื่อนหน้าสิบหน้า ย้อนกลับสิบหน้า และแสดงเฉพาะกลุ่มหน้าสิบหน้าเท่านั้น
แม้ว่า ASP จะเป็นสิ่งที่ล้าสมัยเพราะสามารถเขียนได้โดยใช้ JS แต่ฉันรู้สึกว่าเมื่อทำโครงการ DEMO การใช้ ASP นั้นสะดวกกว่า .NET หรือ JAVA เพราะไม่จำเป็นต้องติดตั้งสภาพแวดล้อมขนาดใหญ่ Simple เพียงแค่กำหนดค่า หากคุณต้องการพัฒนาโครงการขนาดใหญ่จริงๆ ฉันจะใช้ .NET หรือ JAVA อย่างแน่นอน เพราะจะเกี่ยวข้องกับปัญหาด้านประสิทธิภาพ
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE=รหัส JAVASCRIPT=936%>
-
//กำหนดคำสั่งการเชื่อมต่อฐานข้อมูล
var connstring = ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=
+เซิร์ฟเวอร์ MapPath(ฐานข้อมูล/vote.mdb);
//สร้างแบบสอบถามฐานข้อมูล rs
var rs = Server.CreateObject (ADODB.Recordset)
//วิธีการเชื่อมต่อ rs
rs.ActiveConnection = การเชื่อมต่อ
//คำสั่งคำสั่ง rs (แบบสอบถามในลำดับย้อนกลับของเวลาที่ผู้ใช้ส่ง)
rs.Source = เลือก * จากผู้ใช้เรียงลำดับตามเวลาใช้งาน DESC
//กำหนดโหมดการสืบค้นฐานข้อมูล
rs.CursorType = 3
rs.CursorLocation = 3
rs.LockType = 1
//กำหนดจำนวนข้อมูลที่แสดงในแต่ละหน้า
rs.PageSize = 10
//เปิดการเชื่อมต่อฐานข้อมูล
rs.เปิด()
//กำหนดจำนวนบันทึกฐานข้อมูลทั้งหมด จำนวนหน้าทั้งหมด และเส้นทาง URL
จำนวนนับ, pagecos, thisUrl
นับ = rs.RecordCount
pagecos = rs.PageCount
thisUrl = Request.ServerVariables (URL)
//ดำเนินการหากเคอร์เซอร์อยู่ในตาราง
ถ้า(!rs.EOF || !rs.BOF){
//ดำเนินการหากพารามิเตอร์หน้าของ url ไม่ว่างเปล่า
ถ้า (คำขอ (หน้า) นับ! = 0) {
//กำหนดสตริงลิงก์เริ่มต้น หน้าแรก หน้าสุดท้าย หน้าก่อนหน้า หน้าถัดไป
//ค่าหน้าของ URL (หน้าปัจจุบันที่ระบุ), หน้าปัจจุบัน, จำนวนข้อมูลปัจจุบันที่แสดงในแต่ละหน้า
var defaltStr,หน้าแรก,หน้าสุดท้าย,หน้าล่วงหน้า,หน้าถัดไป,หน้า,nowPage,nowSize
defaltStr = '<a href='+thisUrl+'?page='
หน้าแรก = defaltStr+'1>หน้าแรก</a>'
หน้าสุดท้าย = defaltStr+pagecos+'>หน้าสุดท้าย</a>'
หน้า = คำขอ (หน้า)
//ถ้าอยู่ในหน้าแรก
//หน้าแรกหน้าก่อนหน้าไม่ใช่ลิงค์
ถ้า (หน้า <= 1){
rs.หน้าสัมบูรณ์ = 1;
หน้าแรก = 'หน้าแรก'
prepage = 'หน้าก่อนหน้า'
หน้าถัดไป = defaltStr+'2>หน้าถัดไป</a>'
//ถ้าอยู่หน้าสุดท้าย
//หน้าสุดท้ายหน้าถัดไปไม่ใช่ลิงค์
} อื่นถ้า (หน้า >= pagecos){
rs.AbsolutePage = เพจคอส;
prepage = defaltStr+(pagecos-1)+'>หน้าก่อนหน้า</a>'
หน้าสุดท้าย = 'หน้าสุดท้าย'
หน้าถัดไป = 'หน้าถัดไป'
}อื่น{
rs.AbsolutePage = หน้า
prepage = defaltStr+(หมายเลข(หน้า)-1)+'>หน้าก่อนหน้า</a>'
หน้าถัดไป = defaltStr+(หมายเลข(หน้า)+1)+'>หน้าถัดไป</a>'
-
-
nowPage = rs.หน้าสัมบูรณ์
nowSize = rs.PageSize
//หากอยู่ในหน้าสุดท้ายและจำนวนข้อมูลที่แสดงไม่เท่ากับจำนวนข้อมูลที่แสดงในแต่ละหน้า
//เพราะหน้าสุดท้ายไม่สามารถเท่ากับจำนวนข้อมูลที่แสดงในแต่ละหน้าได้ทุกครั้ง
//ดังนั้นคุณต้องกำหนดวิธีการที่ไม่เท่ากัน
if(nowPage >= pagecos && (pagecos*rs.PageSize)%counts != 0){
nowSize = นับ%rs.PageSize
-
-
<ความกว้างของตาราง=เส้นขอบ 100%=0 ระยะห่างของเซลล์=0 เซลล์แพดดิ้ง=0 คลาส=ข้อมูลผู้ใช้>
<tr>
<td align=center>
<!--แสดงหน้าแรก หน้าก่อนหน้า-->
<%=หน้าแรก%> <%=prepage%>
ข้ามไปที่ <select onchange=location.href='<%=thisUrl%>?page='+this.value>
-
//เพจจิ้งอาศัยการแสดงลูป
สำหรับ(var num=1; num<=pagecos; num++){
ถ้า (ตอนนี้หน้า == num) {
-
<ค่าตัวเลือก=<%=num%> เลือก=เลือก><%=num%></option>
-
}อื่น{
-
<ค่าตัวเลือก=<%=num%>><%=num%></option>
-
-
-
-
</เลือก> หน้า
<!--แสดงหน้าถัดไป หน้าสุดท้าย-->
<%=หน้าถัดไป%> <%=หน้าสุดท้าย%>
<!--แสดงเลขหน้าปัจจุบัน จำนวนหน้าทั้งหมด จำนวนบันทึกทั้งหมด และจำนวนข้อมูลที่แสดงในแต่ละหน้า-->
บันทึกทั้งหมด <%=nowPage%> / <%=pagecos%> หน้า<%=counts%> / <%=rs.PageSize%>
</td>
</tr>
-
//เนื้อหาจะแสดงเป็นวง
สำหรับ(var i=1;i<=nowSize;i++){
-
<tr>
<td><span>IP ของผู้ใช้:</span><%=rs(usip)%></td>
</tr>
<tr>
<td><span>คำแนะนำ:</span><%=rs(us1)%></td>
</tr>
<tr>
<td><span>เวลาในการส่ง:</span><%=rs(usetime)%></td>
</tr>
-
//เคอร์เซอร์ฐานข้อมูลเลื่อนไปยังบันทึกถัดไป
rs.MoveNext();
-
-
</ตาราง>
-
//หากเคอร์เซอร์ฐานข้อมูลไม่อยู่ในคอลัมน์ฐานข้อมูล
}อื่น{
Response.Write(ไม่มีข้อมูลผู้ใช้!)
-
//ปิดการเชื่อมต่อฐานข้อมูล
rs.ปิด()
-