เพื่อนที่ใช้ซอฟต์แวร์รู้ว่าแถบความคืบหน้าเป็นส่วนสำคัญของซอฟต์แวร์ที่ยอดเยี่ยม
การดำรงอยู่ของมันช่วยให้ผู้ใช้สามารถเข้าใจความคืบหน้าของโปรแกรมในเวลาและยืนยันว่าแอปพลิเคชันทำงานได้ตามปกติ อย่างไรก็ตามดูเหมือนว่าจะไม่มีการควบคุมมาตรฐานที่กล่าวถึงข้างต้นใน ASP ดังนั้นจึงเป็นปัญหาในการควบคุม
แล้วจะใช้แถบความคืบหน้าได้อย่างไร?
ต่อไปนี้เป็นมุมมองของฉัน (สำหรับการอ้างอิงเท่านั้น)
เมื่อเราใช้โปรแกรมการประมวลผล ASP (หมายถึงการเขียนไฟล์หรือฐานข้อมูลปฏิบัติการ) เราจะใช้หน้า (*.asp) เพื่อประมวลผลหรือควบคุมโปรแกรมเหล่านี้จากนั้นข้ามไปที่หน้าจอแสดงผลเมื่อการประมวลผลเสร็จสมบูรณ์ ในเวลานี้เราสามารถแสดงแถบความคืบหน้าผ่านหน้าประมวลผลเหล่านี้ วิธีการคือการวาดตัวเลขที่เหมือนกันร้อย (เช่นสี่เหลี่ยมสี) ตามลำดับตามความคืบหน้าของการประมวลผลโปรแกรมจึงสร้างแถบความคืบหน้า ผลกระทบของมันนั้นคล้ายกับที่ได้รับจากเครื่องมือการเขียนโปรแกรมอื่น ๆ
นี่คือบางแหล่งที่มาฉันหวังว่าพวกเขาจะเป็นแรงบันดาลใจให้คุณ
response.buffer = true
dimlostnum
dimshownum
กระบวนการ Delayshow (DSTEP, DMAX) ใช้เพื่อแสดงจำนวน IMG (ความคืบหน้ามากแค่ไหน)
ในกรณีที่ DMAX แสดงจำนวน (DMAX) ขั้นตอนที่โปรแกรมทั้งหมดจำเป็นต้องดำเนินการเพื่อดำเนินการให้เสร็จสมบูรณ์ทั้งหมด
ในกรณีที่ DSTEP แสดงถึงขั้นตอนกระบวนการปัจจุบันที่ครอบครองส่วนประกอบของกระบวนการทั้งหมดและแสดงในปริมาณ
การมีอยู่ของตัวแปรที่หายไปนั้นเกิดจาก DMAX ที่มีขนาดใหญ่เกินไป (เช่น 10,000) และ DSTEP นั้นเล็กเกินไป (เช่น 1) หากคุณเรียก Delayshow (1,10000) มันเป็นไปไม่ได้ที่จะวาด IMG หนึ่งครั้งในความเป็นจริง
Delayshow (100,10000) ถูกวาดเพียงครั้งเดียวแสดงให้เห็นว่า 1% เสร็จสมบูรณ์เนื่องจาก 100 บัญชีสำหรับ 1% ของ 10,000
subdelayshow (DSTEP, DMAX)
dimtotal // แสดง 100 img
ตัวแปร DimdTemp // การเปลี่ยนผ่าน
ทั้งหมด = 100
dtemp = dstep
dstep = dstep+lostnum
if (dstep*ทั้งหมด)/dmax <1 จากนั้น
// ตัดสินว่าเมื่อสิ่งที่จะดำเนินการไม่ได้มี 1% ของสิ่งที่ต้องดำเนินการอย่าวาด IMG และใช้ตัวแปรที่หายไปเพื่อเก็บจำนวนการประมวลผลที่ไม่มีชื่อทั้งหมดเพื่อให้กระบวนการนี้เรียกว่ากระบวนการนี้
lostnum = lostnum+dtemp
อื่น
forccc = 1tofix ((dstep*รวม)/dmax) // ใช้จำนวนเต็ม
Response.write "<imgsrc =" "../ images/delay1.jpg" ">"
ต่อไป
response.flush // แสดงสิ่งของ (รูปภาพ) ในแคช
// ตัวแปรที่แสดงใช้เพื่อเก็บ IMG ที่ถูกวาด
sholdum = sholdum+fix ((dstep*รวม)/dmax)
LOSSNUM = 0
endif
enddub
// เนื่องจากปัญหาอัลกอริทึมเหตุผลหลักคือจำนวนเงินที่เหลือไม่สามารถดึงได้อย่างสมบูรณ์ 100 ครั้งดังนั้นจึงจำเป็นต้อง
กระบวนการ Showlost () แสดง IMGs ที่ไม่ได้หยุดแงะที่เหลือทั้งหมดเพื่อให้ตระหนักถึงความยาวเท่ากันของแถบความคืบหน้า
subshowlost ()
forccc = 1to (100-shownum)
Response.write ("<imgsrc =" "../ images/delay1.jpg" ">")
ต่อไป
Response.write "<br>"
Response.flush
enddub
โปรดทราบในตอนท้าย
จำเป็นต้องใช้เทคโนโลยีการแคชที่นี่
Response.buffer = true;
Response.flush;
Response.end
โปรดดูความช่วยเหลือของ MSDN สำหรับสิ่งเหล่านี้