Teman -teman yang telah menggunakan perangkat lunak tahu bahwa bilah kemajuan adalah bagian penting dari perangkat lunak yang sangat baik.
Keberadaannya memungkinkan pengguna untuk secara tepat waktu memahami kemajuan program dan mengkonfirmasi bahwa aplikasi berfungsi secara normal. Namun, tampaknya tidak ada kontrol standar yang disebutkan di atas dalam ASP, sehingga juga merepotkan untuk mengontrol.
Jadi bagaimana cara mengimplementasikan bilah kemajuan?
Berikut ini adalah beberapa pandangan saya (hanya untuk referensi)
Ketika kami menggunakan program pemrosesan ASP (mengacu pada penulisan file atau basis data operasi), kami akan menggunakan halaman (*.asp) untuk memproses atau mengontrol program -program ini, dan kemudian melompat ke halaman tampilan ketika pemrosesan selesai. Pada saat ini, kita dapat menampilkan bilah kemajuan melalui halaman pemrosesan ini. Metode ini adalah untuk menarik seratus angka yang identik (seperti persegi panjang berwarna) secara berurutan sesuai dengan kemajuan pemrosesan program, sehingga membentuk bilah kemajuan. Efeknya pada dasarnya mirip dengan yang dicapai dengan alat pemrograman lainnya
Berikut adalah beberapa sumber, saya harap mereka dapat menginspirasi Anda.
response.buffer = true
dimlostnum
Dimshownum
Proses Delayshow (DStep, Dmax) digunakan untuk menampilkan berapa banyak IMG (berapa banyak kemajuan)
Di mana DMAX mewakili berapa banyak langkah (DMAX) yang perlu diproses oleh seluruh program untuk menyelesaikan seluruh proses.
di mana DSTEP mewakili langkah -langkah proses saat ini yang menempati komponen dari seluruh proses, dan dinyatakan dalam jumlah.
Keberadaan variabel LostNum disebabkan oleh DMAX yang terlalu besar (seperti 10000) dan DStep terlalu kecil (seperti 1). Jika Anda menelepon Delayshow (1.10000) tidak mungkin menggambar IMG sekali
Delayshow (100.10000) hanya ditarik sekali, menunjukkan bahwa 1% selesai, karena 100 menyumbang 1% dari 10000.
Subdelayshow (DStep, Dmax)
DIMTOTAL // Tampilkan 100 IMG
variabel transisi dimdtemp //
Total = 100
dtemp = dStep
DStep = DStep+LostNum
if (dstep*total)/dmax <1then
// menilai bahwa ketika hal yang akan diproses tidak memiliki 1% dari hal -hal yang akan diproses, jangan menggambar IMG dan menggunakan variabel LostNum untuk menyimpan jumlah total pemrosesan tanpa judul, sehingga pada saat proses ini dipanggil.
LostNum = LostNum+dtemp
kalau tidak
forccc = 1tofix ((dstep*total)/dmax) // ambil bilangan bulat
Response.write "<imgsrc =" "../ gambar/delay1.jpg" ">"
Berikutnya
Response.flush // tunjukkan hal -hal (gambar) di cache
// Variabel yang ditampilkan digunakan untuk menyimpan IMG yang telah ditarik.
Tampilan = Tampilan+Perbaiki ((DStep*Total)/Dmax)
LostNum = 0
endif
endsub
// Karena masalah algoritma, alasan utamanya adalah bahwa jumlah yang tersisa tidak dapat sepenuhnya ditarik 100 kali, sehingga perlu
Proses showlost () menampilkan semua IMG yang tidak terputus yang tersisa untuk mewujudkan panjang yang sama dari bilah kemajuan
subshowlost ()
forccc = 1to (100-shownum)
Response.write ("<imgsrc =" "../ gambar/delay1.jpg" ">")
Berikutnya
Response.write "<br>"
Response.flush
endsub
Harap dicatat di akhir
Teknologi caching diperlukan di sini
response.buffer = true;
response.flush;
respons.end
Silakan merujuk ke bantuan MSDN untuk ini