يظهر شريط التقدم كأداة بسيطة توضح للمستخدم عملية التحميل أو التثبيت، لكن ما يبدو واضحًا بصريًا يخفي خلفه آليات حسابية معقدة لا تعمل دائمًا بدقة. الوصول إلى نسبة 99% ثم التوقف اللحظي ليس خطأً برمجيًا في معظم الحالات، بل نتيجة مباشرة لطرق تقدير سرعة المهام، وتحليل الملفات، وتغيّر زمن التنفيذ أثناء العمليات الخلفية. تتعامل الأنظمة الحديثة مع كميات بيانات متفاوتة، وتعيد حساب سرعة القراءة والكتابة بشكل مستمر، مما يجعل التقدير غير ثابت ويظهر للمستخدم وكأنه تجمّد. فهم هذه العملية يساعد في تفسير سبب بطء اللحظات الأخيرة من التحميل، وكيف تختلف تقنيات الحساب من برنامج لآخر، ولماذا تعتمد أغلب الأنظمة على تقدير تقريبي وليس حسابًا زمنيًا دقيقًا.

ملخص
- تقيس أشرطة التقدم أجزاء العمل المكتملة، وليس الوقت الدقيق، لذا قد تكون مضللة.
- غالبًا ما تتوقف التنزيلات عند 99% بسبب إعادة التجميع، أو المجموع الاختباري، أو استرداد الحزمة – يحدث العمل خارج الشاشة.
- أشرطة التقدم المثالية مستحيلة؛ فهي في الأساس تُهدئ المستخدمين، ولا تتوقع أوقات اكتمال دقيقة.
أشرطة التقدم موجودة في كل مكان، لكننا نادرًا ما نفكر فيها. مع ذلك، يكتنفها بعض الغموض. ربما لاحظت أن التنزيلات أو نقل الملفات يتعطل أحيانًا عند 99%. في بعض الأحيان، تقفز أو تتوقف. وأحيانًا تفشل حتى عند 99%. يحدث ذلك لأن أشرطة التقدم دائمًا ما تكون كاذبة، نوعًا ما.
عالم بلا أشرطة تقدم
في الماضي، لم تكن أجهزة الكمبيوتر تحتوي على أي أشرطة تقدم أو مؤشرات. كانت الشاشة تصبح فارغة أو متجمدة أثناء تشغيل البرنامج، ولم تكن لديك أي فكرة عما إذا كان الكمبيوتر قد تعطل أم أن البرنامج لا يزال يعمل.

كانت أجهزة كمبيوتر IBM PC التي تعمل بنظام MS-DOS أو سلسلة Apple II تُظهر شاشات خاملة عند تشغيل العمليات، ولم يكن أحد يعلم بنجاح هذه العمليات إلا عند اكتمال البرنامج. في الواقع، كان الدليل الوحيد على تقدم المهمة هو الأضواء الوامضة والأصوات الطنانة الصادرة من القرص.

في نهاية المطاف، بدأ علماء الحاسوب بالتركيز بشكل أكبر على تجربة المستخدم، فاقترحوا أشرطة تقدم رسومية تمتلئ بمرور الوقت أثناء انتظار المستخدم انتهاء العملية. أدرك العلماء أن دقة هذه الأشرطة لا تُهم. حتى لو كانت غير دقيقة، فقد ساعدت في تخفيف قلق المستخدم، إذ كان بإمكانه رؤية أن الحاسوب يعمل. هذه هي فلسفة أشرطة التقدم هذه منذ البداية، ولا تزال كذلك حتى يومنا هذا.

ما تقيسه أشرطة التقدم فعليًا؟
تقيس بعض أشرطة التقدم الوقت المنقضي فقط، ولكنها غالبًا ما تحسب وحدة عمل مُنجزة بمرور الوقت. على سبيل المثال، عدد العمليات المُنجزة بمرور الوقت، أو عدد أجزاء الملف التي تم تنزيلها بالفعل في عملية تنزيل ملف.
إذا كانت لديك قائمة مهام تحتوي على جميع العمليات أو أجزاء الملف، فسيُظهر شريط التقدم مدى تقدمك في القائمة. لا يُحدّث الشريط باستمرار بالمعلومات الجديدة، لأنه لا يتحرك إلا عند إتمام إحدى هذه المهام.

أشرطة التقدم التي تتراوح من 0% إلى 100% لها اسم رسمي. تُسمى أشرطة “نسبة الإنجاز”، وهي أكثر أنواع مؤشرات التقدم شيوعًا. تقيس هذه الأشرطة عدد “أجزاء” العمل المنجز مقارنةً بإجمالي العمل. لكن تقديرات الوقت المضمنة في أشرطة التقدم هذه نادرًا ما تكون دقيقة. لهذا السبب قد يستغرق شريط التقدم 5 دقائق حتى يمتلئ بنسبة 50% ثم يقفز إلى 99% في ثانية واحدة.

قد يعرف البرنامج مقدار العمل المعلق، لكنه لا يستطيع التنبؤ مسبقًا بالمدة التي ستستغرقها كل وحدة عمل. أولًا، عملية المعالجة ليست موحدة أبدًا. عمليات الملفات الكبيرة المفردة أبسط وأسرع، لكن العمليات التي تتضمن الكثير من الملفات الصغيرة تصبح معقدة وتستغرق وقتًا أطول. أيضًا، لا تأخذ هذه العمليات في الاعتبار مكونات الحاسوب المادية، التي تختلف اختلافًا كبيرًا. هذان السببان هما السبب الرئيسي في عدم تحميل شريط التقدم بسلاسة في أغلب الأحيان.
لماذا تتوقف عمليات التنزيل أحيانًا عند 99%؟
السبب الذي يجعل عمليات التنزيل تتوقف أحيانًا عند 99% أو 100% هو أيضًا سبب عدم تحميل أشرطة التقدم بسلاسة. اسمحوا لي أن أشرح. عند تنزيل أي شيء من الإنترنت، لا يتم تنزيله كوحدة واحدة، بل يتم تقسيمه إلى أجزاء أو حزم يتم إرسالها واحدة تلو الأخرى، ثم يقوم جهازك بجمعها معًا في ملف واحد.

يكون نقل الحزم متوقعًا نسبيًا عندما يكون اتصالك مستقرًا، لكن تسلسل إعادة التجميع النهائي ليس كذلك. يجب على الكمبيوتر التحقق من عدم فقدان أي حزم أثناء النقل، وفي حال وجود حزم مفقودة، يجب استعادتها. في بعض الأحيان، يُجري مدير التنزيل عملية تحقق من المجموع الاختباري للتأكد من عدم تعرض التنزيل للعبث أو التلف.
يحدث كل هذا عند هذه النسبة المئوية الأخيرة. لذا، حتى لو بدا أن التنزيل قد توقف، فإن الكمبيوتر لا يزال يعمل في الخلفية، ولكن لا يوجد أي مؤشر على ذلك في شريط التقدم.
ما الذي يجعل أشرطة التقدم الدقيقة صعبة؟
لإنشاء شريط تحميل دقيق يتقدم بسلاسة من 0% إلى 100%، يجب على البرنامج حساب مقدار العمل المطلوب بدقة والتنبؤ بالوقت الذي سيستغرقه. عند تنزيل أو نسخ ملف ذي حجم معروف بسرعة نقل مستقرة، يكون الأمر سهلًا إلى حد ما. ومع ذلك، يكاد يكون من المستحيل القيام بذلك في العمليات الأكثر تعقيدًا التي تتضمن ملفات وأنواعًا متعددة من الملفات.
على سبيل المثال، تعتمد عمليات تثبيت البرامج بشكل كبير على بيئة الحوسبة الخاصة بك. يجب أن يعرف شريط التحميل الدقيق مسبقًا تكوين أجهزتك الخاصة واستخدام الموارد للبرامج الأخرى التي تعمل بالتوازي أو في الخلفية. قد يحتوي نظامك أو لا يحتوي على تبعيات البرامج الخاصة باللعبة أو التطبيق الذي تحاول تثبيته، ويجب أن يأخذ شريط التقدم ذلك في الاعتبار.

حتى بعد كل ذلك، يجب تغذية واجهة مستخدم التحميل بإشارات التقدم باستمرار لتحديث التقدم الدقيق آنيًا. لهذا السبب، لا توجد أشرطة تقدم مثالية، وربما لن توجد أبدًا. وظيفتها هي تخفيف قلقك وطمأنتك، لذا طالما أنها تُشير إلى أن العمل جارٍ، فهذا كافٍ لمعظم المطورين.
في المرة القادمة التي يتجمد فيها شريط التقدم عند 99% أو 100%، يمكنك الاطمئنان إلى أن الكمبيوتر لا يزال يعمل بجد حتى لو أشار شريط التحميل إلى عكس ذلك. قد يكون الانتظار لبضع ثوانٍ أو دقائق إضافية فكرة جيدة بدلًا من إلغاء العملية بأكملها.
فهم الطريقة التي تُحسب بها نسب التقدم يوضّح أن ظهور 99% لا يعني وجود مشكلة، بل يشير غالبًا إلى معالجة بيانات أعقد من المراحل السابقة. تعتمد كثير من أنظمة التشغيل والبرامج على تقديرات متغيرة تتأثر بسرعة القطع، حجم الملفات، طبيعة المهمة، وأحيانًا بطء عمليات الفحص الأمني. كل هذه العوامل تجعل الثواني الأخيرة تظهر بشكل أبطأ من بقية المراحل. إدراك هذه الآلية يزيل اللبس ويوضح أن توقف شريط التقدم عند 99% جزء طبيعي من عمل الأنظمة وليس خللًا تقنيًا.

