Algoritme paging adalah masalah yang sangat diperhatikan oleh pengembang Web. Hampir setiap aplikasi yang berhubungan dengan database melibatkan algoritma paging. Banyak orang telah menulis dokumen di bidang ini, dan sepertinya tidak ada yang perlu dibahas tetapi kenyataannya, mari kita ubah Dengan mengubah representasi data, algoritma paging yang lebih baik dapat digunakan. Mari kita lihat apakah kita bisa melakukan yang lebih baik sekarang.
Mari kita bahas dulu beberapa metode yang ada.
Salah satunya adalah paging melalui DataGrid. Metode ini adalah yang paling sederhana, namun tidak efisien dan memerlukan pembacaan semua data di depan data yang diperlukan.
Yang kedua adalah mengisi metode paging DataSet dengan menentukan catatan awal dan nomor catatan DbDataAdapter.Fill. Metode ini juga sederhana, tetapi juga tidak efisien dan memerlukan pembacaan semua data di depan data yang diperlukan.
Yang ketiga adalah memilih catatan yang diperlukan dari tengah tabel melalui beberapa pilihan atas dan beberapa pengurutan; untuk mencegah terulangnya data pada halaman yang berdekatan, perlu menggunakan not in, yang akan menyebabkan data ekor tabel dengan sejumlah besar data yang akan dipilih. Performa database akan sangat berkurang.
Misalkan kita mengubah bentuk presentasi tabel, mengambil contoh presentasi Grid dengan scroll bar dalam aplikasi C/S tradisional, sebenarnya metode ini adalah metode presentasi yang paling cocok untuk tabel database, dan metode presentasi yang umum digunakan; Aplikasi web Metode koneksi nomor halaman 1,2,3... atau metode bilah penelusuran nomor halaman dari tombol halaman sebelumnya dan halaman berikutnya adalah pilihan terakhir, karena teknologi sederhana tidak dapat digunakan untuk mengimplementasikan bilah gulir dalam aplikasi Web. jaringan.
Semua tabel dalam database memiliki kunci utama untuk membedakan catatan yang berbeda dalam tabel; data dalam Grid pada antarmuka pengguna juga secara logis memiliki kunci utama, jika tidak maka data akan menjadi ambigu. Tidak mungkin mengetahui kunci utama dari data yang dibaca; meskipun beberapa aplikasi telah menyiapkannya, mereka mengetahui kunci utama dari data yang dibaca, tetapi sebenarnya mereka tidak menerapkannya pada paging, selama Anda mengetahuinya; kunci utama dari data yang dibaca, Anda dapat melakukan paging dengan sangat mudah.
Algoritme untuk beranda sangat sederhana
pilih ukuran halaman teratas * dari nama tabel urutan berdasarkan kunci utama
Untuk tabel dengan bilah gulir, data akan bergulir secara berurutan halaman demi halaman Bahkan jika Anda menyeret bilah gulir, Anda dapat menggulir halaman demi halaman ke posisi yang dipilih algoritma untuk halaman baru adalah
pilih ukuran halaman teratas * dari nama tabel di mana kunci utama > kunci utama dicatat di akhir halaman sebelumnya diurutkan berdasarkan kunci utama
Jika cache digunakan, semua data hanya perlu diunduh satu kali, dan data baru akan diunduh hanya ketika menggulir ke akhir.
Algoritme ini memerlukan mengetahui kunci utama dari data di Grid dan menerapkan data kunci utama ke paging; untuk beberapa kunci utama dan tabel yang diurutkan, algoritmenya sama, tetapi pernyataannya lebih rumit. Anda tidak hanya dapat memulai dari halaman beranda, tetapi Anda juga dapat memulai dari halaman terakhir dan menggulir ke depan.
Tidak ada masalah dengan kinerja algoritma ini. Tidak peduli seberapa besar tabelnya, catatan di mana posisi yang dipilih adalah sama. Lebih cocok menggunakan metode pemilihan halaman beranda, halaman sebelumnya, halaman berikutnya dan halaman terakhir, dan lebih cocok untuk bilah gulir. Grid tidak cocok untuk penomoran nomor halaman tertentu.
Untuk Grid dengan scroll bar yang menggunakan algoritma ini, silakan lihat demonstrasi kami di www.BizStruct.cn .
Saat mengajukan pertanyaan, harap pertimbangkan dua poin terlebih dahulu, jika tidak, Anda mungkin tidak menyadari keuntungan menggabungkan algoritme ini dengan sistem kami:
Pertama: Mana yang lebih nyaman, formulir aplikasi C/S tradisional atau formulir paging di Web?
Pertama, betapa berbedanya tabel dengan bilah gulir yang kami implementasikan dengan tabel di aplikasi C/S tradisional.
Penjelasan jawabannya:
Beberapa balasan menyatakan bahwa operasi seperti "lompat ke halaman xx" tidak dapat dilaksanakan.
Namun coba kita pikirkan, dalam lingkungan aplikasi C/S, jika ada yang menggunakan metode page jump ini pasti semua orang akan menganggapnya aneh.
Grid dengan scroll bar yang kami terapkan hampir sama cepatnya dengan aplikasi C/S sebelumnya di lingkungan LAN, dan juga sangat cepat di lingkungan WAN.
"Operasi lompat ke halaman XX" aplikasi Web sebenarnya merupakan pilihan terakhir. Jika Grid aplikasi C/S tradisional dapat diimplementasikan, mengapa kita harus menggunakan ini?