تجميد الشاشة في وضع "توفير الطاقة"

François Doray
François Doray

تاريخ النشر: 20 كانون الثاني (يناير) 2025

اعتبارًا من الإصدار 133 من Chrome (فبراير 2025)، سيتم تجميد علامات التبويب المؤهَّلة التي تعمل في الخلفية وتستهلك موارد وحدة المعالجة المركزية بشكل كبير عندما يكون وضع "توفير البطارية" مفعَّلاً. يهدف ذلك إلى تقليل استهلاك البطارية للمستخدمين الذين يعتمدون على ميزة "توفير الطاقة" والذين تهمّهم كل نقطة مئوية من عمر البطارية. للحد من الانقطاعات، سيتم تجميد علامات التبويب التي تعمل في الخلفية فقط والتي تستوفي معايير معيّنة وتُظهر استخدامًا مرتفعًا لوحدة المعالجة المركزية.

ما هو توقّف التطبيق عن الاستجابة؟

يؤدي التجميد إلى تعليق تنفيذ المهام على صفحة ويب. يشمل ذلك ما يلي:

  • معالجات الأحداث (مثل الإدخال والشبكة وأدوات الاستشعار)
  • الموقتات
  • أدوات حلّ الوعود

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

يتم إرسال أحداث التجميد والاستئناف عند تجميد صفحة أو استئنافها (اطّلِع على مستندات Page Lifecycle API). تسمح هذه الأحداث للصفحة بإخلاء الموارد غير المستخدَمة أو إرسال إشعار إلى الخادم بأنّه تم إيقاف الصفحة مؤقتًا أو تسجيل المقاييس.

ما هي الصفحات التي يمكن تجميدها؟

سيتم تجميد مجموعات سياق التصفّح. تتألف مجموعة سياق التصفّح عادةً من علامة تبويب واحدة. ومع ذلك، يمكن أن تنتمي عدة علامات تبويب إلى المجموعة نفسها عند استخدام واجهات برمجة تطبيقات مثل window.open().

عند تفعيل وضع "توفير الطاقة"، سيتم تجميد مجموعة سياق التصفّح إذا كانت تستوفي الشروط التالية:

  • تم إخفاء جميع الصفحات ضمن المجموعة وإلغاء الإشعارات عنها لأكثر من خمس دقائق.
  • أي مجموعة فرعية من الإطارات التي لها مصدر واحد ضمن المجموعة هي "مكثفة لوحدة المعالجة المركزية".
  • لا تفعل المجموعة ما يلي:
    • توفير وظيفة مؤتمرات الصوت أو الفيديو (يتم رصدها باستخدام الميكروفون أو الكاميرا أو ميزة التقاط الشاشة/النافذة/علامة التبويب أو RTCPeerConnection مع RTCDataChannel "مفتوح" أو MediaStreamTrack "مباشر")
    • التحكّم في جهاز خارجي (يتم رصده باستخدام Web USB أو Web Bluetooth أو Web HID أو Web Serial)
    • احتفظ بقفل ويب أو اتصال IndexedDB يحظر العمليات خارج المجموعة.

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

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

كيف يمكنني إعداد موقعي الإلكتروني؟

إذا لم يكن موقعك الإلكتروني يتضمّن وظائف تعمل في الخلفية (مثل الإشعارات أو عمليات تحميل الملفات أو إعادة تحميل المحتوى)، من المرجّح ألا يتأثّر بتوقُّفه.

إذا كان موقعك الإلكتروني يتضمّن وظائف تعمل في الخلفية، عليك تقليل استخدام وحدة المعالجة المركزية (CPU) في الخلفية لتجنّب اعتباره من المواقع الإلكترونية التي تستهلك الكثير من وحدة المعالجة المركزية وبالتالي تجميده. في ما يلي بعض النصائح:

ننصحك أيضًا بنقل الوظائف التي تعمل في الخلفية إلى عامل خدمة لكي لا تتأثر بالتجميد. بالإضافة إلى عدم تأثُّره بالتجميد، يحتاج عامل الخدمة إلى موارد أقل من المتصفّح. ننصحك باستخدام:

يمكن للمواقع الإلكترونية إيقاف التجميد من خلال المشاركة في مرحلة تقييم وتجربة BackgroundPageFreezeOptOut. سيتم إيقاف هذه الفترة التجريبية بعد طرح واجهات برمجة تطبيقات جديدة للإبلاغ عن العمل المهم في الخلفية (مثل واجهة برمجة التطبيقات Progress Notification API).

يمكنك التحقّق من أهلية علامة التبويب للتجميد على الرابط chrome://discards. يُرجى العلم أنّه حتى إذا كانت علامة التبويب مؤهَّلة للتجميد، لن يجمدها الإصدار 133 من Chrome إلا إذا كانت تستهلك موارد وحدة المعالجة المركزية بشكل كبير وكان وضع "توفير الطاقة" مفعّلاً.

ما هي الخطوات التالية؟

يحافظ تجميد علامة التبويب في الخلفية على الطاقة، وهو أمر مهم للمستخدمين الذين فعّلوا ميزة "توفير الطاقة".

ويُحسِّن هذا الإجراء أيضًا أداء علامات التبويب في المقدّمة ويساعد في تجنُّب إغلاق علامات التبويب في الخلفية، خاصةً على الأجهزة التي تتضمّن موارد محدودة، وذلك من خلال تقليل استخدام وحدة المعالجة المركزية وإمكانية الوصول إلى الذاكرة. لذلك، سيوسّع Chrome نطاق تجميد علامات التبويب ليشمل المزيد من الحالات (سيتم الإعلان عن التغييرات على الرابط blink-dev@chromium.org). لإجراء ذلك مع الحد الأدنى من التأثير في حالات الاستخدام في الخلفية، ستسمح واجهات برمجة التطبيقات الجديدة، مثل واجهة Progress Notification API، للصفحات بتحديد المهام المهمة التي تعمل في الخلفية ومنع تجميدها.