Rumah > Artikel > hujung hadapan web > Paging memaparkan versi kelajuan super_Pertukaran pengalaman
Seperti yang kita semua tahu, asp sendiri menyediakan fungsi paging Namun, jika jumlah data adalah besar dan paging dipaparkan, anda perlu menunggu lama setiap kali anda menukar halaman itu . Jadi mengapa mengambil masa yang lama untuk menukar halaman? Malah, setiap kali halaman ditukar, latar belakang mendapatkan semula data daripada pangkalan data Akibatnya, jumlah data adalah besar dan kelajuan secara semula jadi perlahan. Kita dapat melihat bahawa ia telah melakukan banyak tugas berulang. Hanya satu pengambilan data sudah memadai, kerana data tersebut belum dimanipulasi, dan hasilnya akan sama tidak kira berapa kali ia diambil. Matlamat kami adalah untuk mengurangkan bilangan carian berulang kepada minimum, 1 atau 2 kali. Kaedahnya ialah: simpan data yang diperoleh semula (contohnya, anda boleh mendapatkan semula data yang anda inginkan di latar belakang selepas berjaya melog masuk, simpan data yang diperoleh semula sebagai tatasusunan ke dalam sesi, dan kemudian lompat ke halaman yang anda mahu memaparkan data), Sudah tentu, pembolehubah sesi boleh digunakan untuk menyimpannya (nampaknya ia tidak boleh disimpan menggunakan kuki), tetapi saya tahu hadnya Jika jumlah data terlalu besar sehingga pembolehubah sesi melimpah, maka tiada apa yang boleh saya lakukan. Tanpa berlengah lagi, mari jelaskan cara menyimpan data?
Pertama sekali, anda perlu membaca data daripada pangkalan data Adalah disyorkan untuk menggunakan prosedur tersimpan untuk membaca
Set cmd = Server.CreateObject("ADODB.Command")
Dengan cmd
. ActiveConnection=conn
.CommandType =&H0004 'Prosedur Kedai
.CommandText="guestbookpro"
Tamat Dengan
Dim resultRS, resultArray
Tetapkan resultRS = cmd.Execute(, Null>) resultArray = resultRS.GetRows()
End If
Set resultRS = Nothing
Set cmd = Nothing
session("arr")=resultArray
Haha , data telah dibaca, seterusnya Tiba masanya untuk memaparkan data dalam halaman. .
halaman----Halaman semasa
daripada halaman----Kedudukan rakaman permulaan halaman
halaman atas-----Kedudukan rakaman akhir halaman
saiz halaman----The bilangan rekod yang dipaparkan pada setiap halaman
n---Jumlah rekod
yushu-----Bilangan rekod pada halaman terakhir
resultArray=session("arr")
n= UBound(resultArray,2)+1
pagesize=5
'response.write "
alert('"&n&"')"
" yushu =n saiz halaman mod
jika yushu= 0 maka
totalpage=fix(n/pagesize)
else
totalpage=fix(n/pagesize)+1
End If
If request ("halaman")="" Kemudian
halaman=1
Lain
halaman=Int(permintaan("halaman"))
Tamat jika
Jika halaman>jumlah halaman Kemudian
halaman =1
Tamatkan Jika
Jika halamanhalaman=totalpage Tamatkan Jika
frompage=(halaman-1)*saiz halaman
topage=frompage+pagesize-1
jika yushu=0 maka
frompage=(page-1)*pagesize
topage=frompage+pagesize-1
lain
frompage=(page-1)* saiz halaman
topage=frompage+pagesize- 1
If page=totalpage Maka
frompage=(page-1)*pagesize
topage=frompage+yushu-1
Tamat jika
tamat Jika
Sesuatu yang tidak kena , sila berikan saya nasihat anda
Alamat demo: http://fishbone31.w3.zccn.net
Tapak web saya menyegarkan keseluruhan halaman kerana halaman sebelumnya dan seterusnya dimuat semula dan bukannya membaca halaman data [body asp], jadi kelajuannya tidak sesuai.
Akaun dan kata laluan kedua-duanya adalah ujian