חדש ב-Chrome 72

בגרסה 72 של Chrome הוספנו תמיכה באפשרויות הבאות:

ויש עוד הרבה!

קוראים לי Pete LePage. נצלול פנימה ונראה מה חדש למפתחים בגרסה 72 של Chrome.

יומן שינויים

זוהי רק רשימה חלקית של השינויים העיקריים. בקישורים שבהמשך מפורטים שינויים נוספים ב-Chrome 72.

שדות של כיתות ציבוריות

השפה הראשונה שלי הייתה Java, ולמידת JavaScript הייתה לי קצת מאתגרת. איך יצרתי כיתה? או ירושה? מה קורה עם מאפיינים ושיטות ציבוריים ופרטיים? רבים מהעדכונים האחרונים ל-JavaScript שמקלים מאוד על תכנות מונחת-אובייקטים.

עכשיו אפשר ליצור כיתות שפועלות כמו שציפיתי, עם קונסטרוקטורים, פונקציות getter ו-setter, שיטות סטטיות ומאפיינים ציבוריים.

הודות ל-V8 7.2, שמגיע עם Chrome 72, עכשיו אפשר להצהיר על שדות של כיתות ציבוריות ישירות בהגדרת הכיתה, ולחסוך את הצורך לעשות זאת ב-constructor.

class Counter {
  _value = 0;
  get value() {
    return this._value;
  }
  increment() {
    this._value++;
  }
}

const counter = new Counter();
console.log(counter.value);
// → 0
counter.increment();
console.log(counter.value);
// → 1

אנחנו עובדים על תמיכה בשדות פרטיים של כיתות.

פרטים נוספים זמינים במאמר של Mathias בנושא שדות של כיתות.

User Activation API

זוכרים את הימים שבהם אתרים יכלו להשמיע אודיו באופן אוטומטי ברגע שהדף נטען? אתם ממהרים ללחוץ על מקש ההשתקה או לברר איזו כרטיסייה זו הייתה ולסגור אותה. לכן, כדי שממשקי API מסוימים יפעלו, צריך להפעיל אותם באמצעות תנועת משתמש. לצערנו, הדפדפנים מטפלים בהפעלה בדרכים שונות.

User activation API לפני ואחרי שהמשתמש יצר אינטראקציה עם הדף.

ב-Chrome 72 הושקתה גרסה 2 של User Activation, שמפשטת את הפעלת המשתמשים בכל ממשקי ה-API המוגנים. הוא מבוסס על מפרט חדש שמטרתו לסטנדרטיזציה של אופן הפעולה של ההפעלה בכל הדפדפנים.

יש מאפיין userActivation חדש גם ב-navigator וגם ב-MessageEvent, שיש לו שני מאפיינים: hasBeenActive ו-isActive:

  • השדה hasBeenActive מציין אם בחלון המשויך הייתה פעם הפעלה של משתמש במהלך מחזור החיים שלו.
  • isActive מציין אם בחלון המשויך יש כרגע הפעלת משתמש במחזור החיים שלו.

פרטים נוספים זמינים במאמר איך לשמור על עקביות בהפעלת משתמשים בממשקי API שונים

התאמה של רשימות של פריטים למקום באמצעות Intl.format

אני אוהב את ממשקי ה-API של Intl, הם מאוד מועילים ללוקליזציה של תוכן לשפות אחרות. ב-Chrome 72 יש שיטה חדשה של .format() שמקלה על היצירה של רשימות. בדומה לממשקי API אחרים של Intl, הוא מעביר את הנטל למנוע JavaScript, בלי להקריב את הביצועים.

מפעילים אותו עם הלוקאל הרצוי, ואז קוראים ל-format, והוא ישתמש במילים ובתחביר הנכונים. הוא יכול להוסיף מילות קישור – כך יתווסף המקבילה המקומית של ו (ואם תשימו לב, יש פסיק אוקספורד יפהפה). אפשר להשתמש בו כדי לבצע פעולות חיבור (disjunctions) – להוסיף את המקבילה המקומית של או. אם תספקו כמה אפשרויות נוספות, תוכלו לעשות הרבה יותר.

const opts = {type: 'disjunction'};
const lf = new Intl.ListFormat('fr', opts);
lf.format(['chien', 'chat', 'oiseau']);
// → 'chien, chat ou oiseau'
lf.format(['chien', 'chat', 'oiseau', 'lapin']);
// → 'chien, chat, oiseau ou lapin'

פרטים נוספים זמינים בפוסט Intl.ListFormat API.

ועוד.

אלה רק כמה מהשינויים ב-Chrome 72 למפתחים, כמובן שיש עוד הרבה.

  • ב-Chrome 72, ההתנהגות של Cache.addAll() השתנתה כדי להתאים טוב יותר למפרט. בעבר, אם היו רשומות כפולות באותה קריאה, בקשות מאוחרות יותר היו מחליפות פשוט את הראשונה. כדי לעמוד בדרישות המפרט, אם יש רשומות כפולות, המערכת תדחה אותן עם InvalidStateError.
  • בקשות לסמלי ICO מטופלות עכשיו על ידי ה-service worker, כל עוד כתובת ה-URL של הבקשה נמצאת באותו מקור כמו ה-service worker.

להרשמה

רוצים להתעדכן בסרטונים שלנו? הירשמו לערוץ YouTube של מפתחי Chrome ותקבלו התראה באימייל בכל פעם שנעלה סרטון חדש.

קוראים לי פיט לייפיג', ואחרי שגרסת Chrome 73 תפורסם, אספר לכם מה חדש ב-Chrome.