في الواقع، AJAX ليس شيئًا يمكن تحقيقه بمجرد كتابة JS، فلا يزال يتعين عليك أن تتمتع بخبرة برمجة معينة. وإلا، حتى لو كتبته، فإن الفكرة ليست واضحة ولن تعرف من أين تبدأ عندما تريد ذلك التغييرات في المستقبل. لذلك بعد أن تعرفت لفترة وجيزة على البرمجة الموجهة للكائنات، شعرت أنه ليس من السهل حقًا القيام بعمل جيد في AJAX. لماذا ذكرت AJAX عندما كتبت البرنامج التعليمي لترحيل صفحات ASP لأننا نحتاج إلى ذلك ممارسة المزيد حول أهمية الهيكل في عملية البرمجة.
بالإضافة إلى ذلك، لدى العديد من الأصدقاء مشاعر عميقة تجاه الترحيل، لذلك لم يجرؤوا أبدًا على لمسه، فهم إما يستخدمون مكونات كتبها آخرون، أو يقومون بتعديل أشياء الآخرين، خاصة بالنسبة لـ .net، أشعر بعمق أنه إذا كنت تريد التطوير بسرعة مشروع، أعتقد أن .net عبارة عن منصة ممتازة جدًا. نظرًا لأنه يتم التحكم فيه بشكل كبير، لا يمكن للمبتدئين الدخول في فكرة البرمجة ولا يمكنهم العثور على الشعور بالبرمجة على الإطلاق، كما لو كانوا لبنات بناء، في بعض الأحيان لا تزال بحاجة إلى ممارسة أشياء منخفضة المستوى، حتى تتمكن من تحسين قدرتك التقنية الشخصية يمكن تحسينها. لا أريد أن أكون مجمعًا يمكنه استخدام .NET فقط.
حسنًا، هذا هو الكود المصدري لترحيل ASP للجميع، وقد تم التعليق عليه بالتفصيل ويمكن فهمه بشكل عام.
نظرًا لأن هذا برنامج تعليمي، سأبدأ من أبسط برنامج أستخدمه مباشرة لتعريف الصفحة الحالية، لذلك لا أستخدم أساليب المؤشر الأكثر تعقيدًا مثل MoveFirst، وأستخدم أيضًا مربعات التحديد المنسدلة للترحيل. سأنتظر البرنامج التعليمي التالي، وسأكتب طريقة متقدمة أخرى للترحيل، وأعطي طريقة للتقدم بعشر صفحات، والعودة بعشر صفحات، وعرض مجموعة الصفحات العشر الحالية فقط.
على الرغم من أن ASP شيء قديم، لأنه يمكن كتابته باستخدام JS، أشعر أنه عند القيام بالعرض التوضيحي للمشروع، فإن استخدام ASP أكثر ملاءمة من .NET أو JAVA، لأنه لا يحتاج إلى تثبيت بيئة ضخمة، فقط قم بتكوينه إذا كنت بحاجة حقًا إلى تطوير مشروع واسع النطاق، فسأستخدم بالتأكيد .NET أو JAVA، لأن ذلك سيتضمن مشكلات تتعلق بالكفاءة.
انسخ رمز الكود كما يلي:
<%@LANGUAGE=صفحة كود جافا سكريبت=936%>
<%
// تحديد بيان اتصال قاعدة البيانات
var connstring = Provider=Microsoft.Jet.OLEDB.4.0;مصدر البيانات=
+Server.MapPath(database/vote.mdb);
// إنشاء استعلام قاعدة بيانات RS
فار rs = Server.CreateObject(ADODB.Recordset)
// طريقة الاتصال rs
rs.ActiveConnection = connstring
//بيان استعلام rs (الاستعلام بترتيب عكسي لوقت إرسال المستخدم)
rs.Source = حدد * من ترتيب المستخدمين حسب وقت الاستخدام DESC
// تحديد وضع استعلام قاعدة البيانات
rs.CursorType = 3
موقع المؤشر = 3
rs.LockType = 1
// تحديد كمية البيانات المعروضة في كل صفحة
rs.PageSize = 10
// فتح اتصال قاعدة البيانات
رس.فتح ()
// تحديد العدد الإجمالي لسجلات قاعدة البيانات، وإجمالي عدد الصفحات، ومسار URL
عدد var،pagecos،thisUrl
التهم = rs.RecordCount
pagecos = rs.PageCount
thisUrl = Request.ServerVariables(URL)
// نفذ إذا كان المؤشر في الجدول
إذا (!rs.EOF || !rs.BOF){
// نفذ إذا كانت معلمة الصفحة لعنوان url ليست فارغة
إذا(طلب(صفحة).العدد != 0){
// تحديد سلسلة الارتباط الافتراضية، الصفحة الأولى، الصفحة الأخيرة، الصفحة السابقة، الصفحة التالية
// قيمة صفحة عنوان URL (الصفحة الحالية المحددة)، والصفحة الحالية، والعدد الحالي للبيانات المعروضة في كل صفحة
فار defaltStr,firstpage,lastpage,prepage,nextpage,pages,nowPage,nowSize
defaltStr = '<a href='+thisUrl+'?page='
firstpage = defaltStr+'1>الصفحة الرئيسية</a>'
lastpage = defaltStr+pagecos+'>الصفحة الأخيرة</a>'
الصفحات = طلب(صفحة)
//إذا كان في الصفحة الأولى
// الصفحة الرئيسية، الصفحة السابقة ليست رابطًا
إذا (الصفحات <= 1){
rs.AbsolutePage = 1;
الصفحة الأولى = "الصفحة الرئيسية"
الصفحة المسبقة = "الصفحة السابقة"
nextpage = defaltStr+'2>الصفحة التالية</a>'
//إذا كان في الصفحة الأخيرة
// الصفحة الأخيرة، الصفحة التالية ليست رابطًا
}else if(pages >=pagecos){
rs.AbsolutePage = pagecos;
prepage = defaltStr+(pagecos-1)+'>الصفحة السابقة</a>'
الصفحة الأخيرة = "الصفحة الأخيرة"
الصفحة التالية = "الصفحة التالية"
}آخر{
rs.AbsolutePage = pages
prepage = defaltStr+(Number(pages)-1)+'>الصفحة السابقة</a>'
nextpage = defaltStr+(Number(pages)+1)+'>الصفحة التالية</a>'
}
}
nowPage = rs.AbsolutePage
nowSize = rs.PageSize
// إذا كان في الصفحة الأخيرة وكان عدد البيانات المعروضة لا يساوي عدد البيانات المعروضة في كل صفحة
// لأن الصفحة الأخيرة لا يمكن أن تساوي تمامًا كمية البيانات المعروضة في كل صفحة في كل مرة
// لذلك تحتاج إلى تحديد طريقة غير متكافئة
إذا (nowPage >= pagecos && (pagecos*rs.PageSize)%counts != 0){
nowSize = counts%rs.PageSize
}
%>
<عرض الجدول=100% حدود=0 تباعد الخلايا=0 خلية الحشو=0 فئة=معلومات المستخدم>
<تر>
<td محاذاة = المركز>
<!--إظهار الصفحة الرئيسية، الصفحة السابقة-->
<%=الصفحة الأولى%> <%=الصفحة الأولية%>
انتقل إلى <select onchange=location.href='<%=thisUrl%>?page='+this.value>
<%
// يعتمد الترحيل على عرض الحلقة
for(var num=1; num<=pagecos; num++){
إذا (الآنالصفحة == الأعداد){
%>
<قيمة الخيار=<%=num%>selected=selected><%=num%></option>
<%
}آخر{
%>
<قيمة الخيار=<%=num%>><%=num%></option>
<%
}
}
%>
</select> الصفحة
<!--إظهار الصفحة التالية، الصفحة الأخيرة-->
<%=الصفحة التالية%> <%=الصفحة الأخيرة%>
<!--عرض رقم الصفحة الحالية وإجمالي عدد الصفحات وإجمالي عدد السجلات وعدد البيانات المعروضة في كل صفحة-->
إجمالي <%=nowPage%> / <%=pagecos%> الصفحة<%=counts%> / <%=rs.PageSize%> السجلات
</TD>
</tr>
<%
// يتم عرض المحتوى في حلقة
for(var i=1;i<=nowSize;i++){
%>
<تر>
<td><span>عنوان IP الخاص بالمستخدم:</span><%=rs(usip)%></td>
</tr>
<تر>
<td><span>الاقتراح:</span><%=rs(us1)%></td>
</tr>
<تر>
<td><span>وقت التقديم:</span><%=rs(usetime)%></td>
</tr>
<%
// ينتقل مؤشر قاعدة البيانات إلى السجل التالي
rs.MoveNext();
}
%>
</الجدول>
<%
// إذا لم يكن مؤشر قاعدة البيانات موجودًا في عمود قاعدة البيانات
}آخر{
الاستجابة.الكتابة (لا توجد معلومات المستخدم!)
}
// إغلاق اتصال قاعدة البيانات
رس.إغلاق ()
%>