الميزات الجديدة في Chrome 63

وهناك الكثير غيرها.

اسمي بيت ليب. لنطّلِع على التفاصيل ونتعرّف على الميزات الجديدة لمطوّري البرامج في الإصدار 63 من Chrome.

هل تريد الاطّلاع على القائمة الكاملة بالتغييرات؟ راجِع قائمة تغييرات مستودع مصدر Chromium.

عمليات استيراد الوحدات الديناميكية

يمكنك استيراد وحدات JavaScript بسهولة كبيرة، ولكنّها ثابتة ولا يمكنك استيرادها وفقًا لشروط وقت التشغيل.

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

button.addEventListener('click', event => {
  import('./dialogBox.js')
  .then(dialogBox => {
    dialogBox.open();
  })
  .catch(error => {
    /* Error handling */
  });
});

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

المكرّرات والمولدات غير المتزامنة

قد تكون كتابة الرموز البرمجية التي تنفِّذ أي نوع من التكرار باستخدام دوال async مزعجة. في الواقع، هذا هو الجزء الأساسي من سؤالي المفضل حول ترميز المقابلة.

والآن، باستخدام async generator functions وبروتوكول التكرار غير المتزامن، يصبح استهلاك أو تنفيذ مصادر بيانات البث مبسطة، ويصبح سؤال الترميز الذي أطرحه أسهل بكثير.

async function* getChunkSizes(url) {
  const response = await fetch(url);
  const b = response.body;
  for await (const chunk of magic(b)) {
    yield chunk.length;
  }
}

يمكن استخدام المكرّرات غير المتزامنة في حلقات for-of وكذلك لإنشاء مُكرّرات غير متزامنة مخصّصة لك من خلال مصانع المكررات غير المتزامنة.

سلوك الانتقال الزائد

يُعد التمرير من أكثر الطرق الأساسية للتفاعل مع الصفحة، ولكن قد يكون من الصعب التعامل مع بعض الأنماط. على سبيل المثال، ميزة السحب لإعادة التحميل في المتصفحات، حيث يؤدي التمرير سريعًا للأسفل أعلى الصفحة إلى إعادة تحميل الصفحة مجددًا.

قبل، مع إعادة تحميل الصفحة بالكامل.

بعد ذلك، أعِد تحميل المحتوى فقط.

ففي بعض الحالات، قد ترغب في تجاوز هذا السلوك وتقديم تجربتك الخاصة. هذا ما يفعله تطبيق الويب التقدّمي من Twitter. عند سحب الصفحة للأسفل، بدلاً من إعادة تحميل الصفحة بأكملها، يؤدّي ذلك ببساطة إلى إضافة أيّ تغريدات جديدة إلى العرض الحالي.

يتوافق Chrome 63 الآن مع خاصية CSS overscroll-behavior، ما يسهّل تجاوز سلوك التمرير التلقائي الخاص بالتجاوز في المتصفّح.

يمكنك استخدام هذه الميزة لتنفيذ ما يلي:

وأفضل ما في الأمر أنّ السمة overscroll-behavior ليس لها أي تأثير سلبي في أداء صفحتك.

تغييرات واجهة مستخدم الأذونات

أحب الإشعارات الفورية على الويب ولكنني أشعر بالإحباط حقًا بسبب عدد المواقع الإلكترونية التي تطلب إذنًا عند تحميل الصفحة بدون أي سياق، وأنا لست وحدي.

يتم تجاهل 90% من جميع طلبات الأذونات أو حظرها مؤقتًا.

في الإصدار 59 من Chrome، بدأنا بمعالجة هذه المشكلة من خلال الحظر المؤقت للإذن في حال رفض المستخدم الطلب ثلاث مرات. الآن في m63، سيُجري Chrome لنظام Android مربعات حوار مشروطة لطلبات الأذونات.

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

ومقاييس أخرى

هذه ليست سوى عدد قليل من التغييرات في الإصدار 63 من Chrome للمطورين، بالطبع، هناك الكثير من التغييرات الأخرى.

  • finally متاح الآن على Promise من الحالات ويتم استدعاؤه بعد تنفيذ Promise أو رفضه.
  • وتساعدك واجهة برمجة تطبيقات JavaScript لذاكرة الجهاز الجديدة في فهم قيود الأداء من خلال منحك تلميحات حول إجمالي ذاكرة الوصول العشوائي (RAM) على جهاز المستخدم. يمكنك تخصيص تجربتك في وقت التشغيل، وتقليل التعقيد على الأجهزة ذات التقنية البسيطة، وتوفير تجربة أفضل للمستخدمين وتقليل المشاكل.
  • تتيح لك Intl.PluralRules API إنشاء تطبيقات تفهم عملية جمع لغة معيّنة من خلال الإشارة إلى صيغ الجمع التي تنطبق على رقم ولغة معيّنَين. ويمكنها المساعدة في الأعداد الترتيبية.

احرص على الاشتراك في قناتنا على YouTube، وستتلقّى إشعارًا عبر البريد الإلكتروني عندما ننشر فيديو جديدًا.

اسمي بيت ليب، وبعد طرح الإصدار 64 من Chrome، سأكون على استعداد هنا لإخبارك بالجديد في Chrome!