Ringkasan
---- Sekarang ada banyak artikel yang menggunakan ASP untuk mencapai pagination dinamis. Namun, dalam aplikasi rekayasa aktual, jumlah data asli biasanya sangat besar, dan pemrosesan data asli relatif lambat.
---- Ada dua cara utama untuk memecahkan masalah di atas: satu adalah dengan relatif memperbaiki kondisi kueri, gunakan kondisi kueri yang relatif tetap untuk memproses data asli, menghasilkan kuantitas data kecil pustaka menengah. ke tengah. Meskipun ini akan meningkatkan kinerja program, ini akan mempengaruhi fleksibilitas program, dan server perlu memproses dan memelihara data asli secara teratur. Cara lain adalah menyimpan kueri di sisi server. Meskipun ini tidak dapat meningkatkan kinerja kueri, terminal server dapat merespons dengan cepat ketika penggantian klien. Realisasi cara pertama relatif sederhana.
Metode implementasi
---- Simpan hasil kueri di server dalam array dinamis, yaitu, mendeklarasikan array dinamis dua dimensi selama proses session_onstart. Ketika server menerima aplikasi yang dikirimkan oleh klien, penilaian pertama apakah aplikasi tersebut adalah pertanyaan bersyarat atau perubahan halaman. Dalam array ini, konten halaman pertama dikembalikan ke klien, jika tidak, ia akan mengembalikan halaman yang sesuai langsung dari array.
Implementasi Program:
---- 1. Tentukan dua array -dimensi dan variabel lainnya
| Berikut ini adalah fragmen kode: Sub session_onstart Redup tempdb () Redim Cagar Alam Tempdb (1,2) sesi ("storedarray") = tempdb 'Tentukan array sesi sesi ("ipageCount") = 0 sesi ("ipageno") = 0 ... ... Akhir sub |
---- 2. Hubungi prosedur penyimpanan untuk mengembalikan data
| Berikut ini adalah fragmen kode: Sub getrcordset (strbbmc, strkssj, Strzzsj, strnodecode, strfxzl) Parameter '' adalah nama laporan dan berbagai batasan Pilih case strbbmc Kasus "Formulir Ringkasan Transaksi" strcnn = "penyedia = msdasql; dsn = sqldb; uid = SA; Setel objcnn = server.createobje ("adodb.connection") objcnn.CommandTimeout = 9999999 objcnn.connectiontimeout = 99999999 objcnn.cursorlocation = aduseclient Objcnn.open strcnn '' buka koneksi Atur objrs = server.createObject ("Adodb.recordset") objrs.pagesize = iPageSize objrs.cachesize = iPagesize objrs.open "sszhatmlog '" & strkssj & "', '"" "" '"" "" Adlockreadonly, 1 'Lakukan prosedur penyimpanan kembali ke hasil kueri ... ... Akhir sub |
---- 3. Simpan hasil kueri ke array dinamis
| Berikut ini adalah fragmen kode: Sub Saverecordset () Jika objrs.eof = false maka objrs.movelast sesi ("irowcount") = objrs.rcordcount sesi ("ifieldcount") = objrs.fields.count sesi ("ipageCount") = objrs.pagecount Redim Celeserve Temparray (sesi ("Irowcount"), sesi ("ifieldcount"))) 'Temparray adalah array dinamis dua dimensi, Tentukan ukurannya sesuai dengan ukuran set rekor objrs.movefirst icount = 0 lakukan saat objrs.eof = false icount = icount + 1 untuk i = 1 ke sesi ("IfieldCount") Temparray (icount, i) = objrs.fields.item (I -1) Berikutnya objrs.movenext lingkaran sesi ("StoredArray") = Temparray objrs.close kalau tidak sesi ("ipageCount") = 0 akhiri jika Akhir sub |
---- 4. Tampilkan konten rekaman
| Berikut ini adalah fragmen kode: Sub showrecord () ... ... Localray = session ("StoredArray") isHowTotal = (ipageCurrent -1) * ipageSize + 1 Irowloop = 1 Lakukan mengapa irowloop <= ipagesize dan ishowtotal <= sesi ("irowcount") Response.write ("<ter>") untuk i = 1 ke sesi ("IfieldCount") Response.write ("<td>" & Localray (ishowtotal, i)) selanjutnya Response.write ("</tr>) isHowTotal = isHowTotal + 1 Irowloop = irowloop + 1 loop Response.write ("</able>") Jika ipageCurrent <> 1 dan ipageCurrent <sesi ("IpageCount") Lalu %> <ster> <a href = "db_pag.asp? page = < % = ipageCurrent -1 %> "> halaman sebelumnya </a> <a href = "Db_pag.asp? Page = < % = ipageCurrent + 1 %>"> Halaman terakhir </a> </denter> < % kalau tidak Jika ipageCurrent <> 1 maka %> <ster> <a href = "db_pag.asp? page = < % = IPAGECURRENT -1 %> "> Halaman Sebelumnya </a> </denter> < % akhiri jika Jika ipageCurrent <sesi ("ipageCount") %> <tenter> <a href = "db_pag.asp? page = < % = IpageCurrent + 1 %> "> Halaman nanti </a> </penter> < % akhiri jika akhiri jika Akhir sub |