يعرف الأصدقاء الذين استخدموا البرنامج أن شريط التقدم هو جزء مهم من برنامج ممتاز.
يتيح وجودها للمستخدمين فهم التقدم في تشغيل البرنامج في الوقت المناسب وتأكيد أن التطبيق يعمل بشكل طبيعي. ومع ذلك ، يبدو أنه لا يوجد عناصر تحكم قياسية مذكورة أعلاه في ASP ، لذلك من المزعج أيضًا التحكم.
إذن كيف تنفذ شريط التقدم؟
فيما يلي بعض وجهات نظري (للرجوع إليها فقط)
عندما نستخدم برامج معالجة ASP (بالإشارة إلى كتابة الملفات أو قواعد بيانات التشغيل) ، سنستخدم صفحة (*.asp) لمعالجة هذه البرامج أو التحكم فيها ، ثم القفز إلى صفحة العرض عند اكتمال المعالجة. في هذا الوقت ، يمكننا عرض شريط التقدم من خلال صفحات المعالجة هذه. تتمثل الطريقة في رسم مائة شخص متطابق (مثل المستطيلات الملونة) بالتسلسل وفقًا لتقدم معالجة البرنامج ، وبالتالي تشكيل شريط تقدم. تأثيره يشبه بشكل أساسي تلك التي تحققت مع أدوات البرمجة الأخرى
إليكم بعض المصادر ، وآمل أن يتمكنوا من إلهامك.
استجابة. buffer = صحيح
dimlostnum
Dimshownum
يتم استخدام عملية SELAYSHOW (DSTEP ، DMAX) لعرض مقدار IMG (مقدار التقدم)
حيث يمثل DMAX عدد (DMAX) التي يحتاجها البرنامج بأكمله إلى معالجة لإكمال العملية بأكملها.
حيث تمثل DSTEP خطوات العملية الحالية التي تشغل مكون العملية بأكملها ، ويتم التعبير عنها بكمية.
يحدث وجود المتغير المفقود بسبب كون DMAX كبيرًا جدًا (مثل 10000) و DSTEP صغير جدًا (مثل 1). إذا اتصلت بـ Selayshow (1،10000) ، فمن المستحيل رسم IMG مرة واحدة ، في الواقع
يتم رسم Selayshow (100،10000) مرة واحدة فقط ، مما يشير إلى أن 1 ٪ قد اكتملت ، لأن 100 حسابات 1 ٪ من 10000.
Subdelayshow (DSTEP ، DMAX)
dimtotal // عرض 100 img
dimdtemp // متغير الانتقال
المجموع = 100
dtemp = dStep
dStep = dStep+LostNum
إذا (dStep*المجموع)/dmax <1th
// تحكم على أنه عندما لا يكون للشيء الذي يجب معالجته 1 ٪ من الأشياء التي يجب معالجتها ، لا ترسم IMG واستخدام المتغير المفقود لتخزين العدد الإجمالي للمعالجة التي لا عنوان ، بحيث يتم استدعاء هذه العملية في المرة القادمة.
LostNum = lostnum+dtemp
آخر
forccc = 1tofix ((dStep*total)/dmax) // خذ عددًا صحيحًا
استجابة. write "<imgsrc =" "../ images/delay1.jpg" ">"
التالي
Response.flush // أظهر الأشياء (الصور) في ذاكرة التخزين المؤقت
// يتم استخدام المتغير الموضح لتخزين IMG الذي تم رسمه.
downum = shownum+fix ((DSTEP*total)/dmax)
LostNum = 0
Endif
ينتهي
// نظرًا لمشكلة الخوارزمية ، فإن السبب الرئيسي هو أن المبلغ المتبقي لا يمكن رسمه تمامًا 100 مرة ، لذلك من الضروري أن
تعرض عملية عرض العملية () جميع IMGs غير المتبقية لتحقيق الطول المتساوي لشريط التقدم
subshowlost ()
FORCCC = 1TO (100-Shownum)
Response.write ("<imgsrc =" "../ images/delay1.jpg" ">")
التالي
الرد. "<br>"
استجابة
ينتهي
يرجى ملاحظة في النهاية
تقنية التخزين المؤقت مطلوبة هنا
استجابة. buffer = صواب ؛
استجابة.
استجابة
يرجى الرجوع إلى مساعدة MSDN لهذه