אלה השינויים הבולטים בגרסה 124 של Chrome:
- יש שני ממשקי API חדשים שמאפשרים להשתמש ב-Declarative Shadow DOM מ-JavaScript.
- אפשר להשתמש בסטרימינג ב-Web Sockets.
- הצגת המעברים משתפרת מעט.
- ויש עוד הרבה.
רוצה לקבל את כל הפרטים? הערות המוצר של Chrome 124
שימוש ב-Declarative Shadow DOM ב-JavaScript
יש שני ממשקי API חדשים שמאפשרים להשתמש ב-Declarative Shadow DOM מ-JavaScript.
setHTMLUnsafe()
דומה ל-innerHTML
ומאפשר להגדיר את ה-HTML הפנימי של רכיב מסוים למחרוזת שצוינה. האפשרות הזו שימושית כשיש לכם קוד HTML שכולל Declarative Shadow DOM, כמו זה.
<my-custom-element>
<template shadowrootmode="open">
<style>
:host {
display: block;
color: yellow;
}
</style>
Hello, <slot></slot>
</template>
</my-custom-element>
אם משתמשים רק ב-innerHTML
, הדפדפן לא ינתח אותו כראוי ולא יהיה DOM בצל. אבל עם setHTMLUnsafe()
, ה-DOM בצל נוצר והרכיב מנותח כצפוי.
const section = document.createElement("section");
section.setHTMLUnsafe(`<my-custom-element>...</my-custom-element>`);
ה-API השני הוא parseHTMLUnsafe()
, והוא פועל באופן דומה ל-DOMParser.parseFromString()
.
שני ממשקי ה-API האלה לא בטוחים, כלומר הם לא מבצעים סינון של הקלט. לכן חשוב לוודא שהאוכל שלהם בטוח. בגרסה הקרובה צפויה להופיע גרסה עם סניטיזציה של הקלט.
נוסף על כך, כבר יש תמיכה בשני ממשקי ה-API האלה בגרסה העדכנית ביותר של Firefox ו-Safari.
WebSocket Stream API
WebSockets הם דרך מצוינת לשלוח נתונים הלוך ושוב בין הדפדפן של המשתמש לשרת, בלי להסתמך על סקרים. זה שימושי מאוד באפליקציות צ'אט, שבהן רוצים לטפל במידע ברגע שהוא מגיע.
אבל מה קורה אם הנתונים מגיעים מהר יותר ממה שאתם יכולים לטפל בהם?
זה נקרא לחץ חזרה, והוא עלול לגרום לכאבי ראש רציניים. לצערנו, ב-WebSocket API אין דרך נוחה להתמודד עם לחץ חוזר.
WebSocket Stream API מאפשר לכם להשתמש ביכולות של סטרימינג ושל שקעי אינטרנט, כך שתוכלו להפעיל לחץ חוזר ללא עלות נוספת.
מתחילים ביצירת WebSocketStream
חדש ומעבירים לו את כתובת ה-URL של שרת ה-WebSocket.
const wss = new WebSocketStream(WSS_URL);
const {readable, writable} = await wss.opened;
const reader = readable.getReader();
const writer = writable.getWriter();
while (true) {
const {value, done} = await reader.read();
if (done) {
break;
}
const result = await process(value);
await writer.write(result);
}
לאחר מכן, ממתינים לפתיחתו של החיבור, וכתוצאה מכך מתקבלים ReadableStream
ו-WritableStream
. קריאה ל-method ReadableStream.getReader()
מחזירה ReadableStreamDefaultReader
, שממנו אפשר read()
נתונים עד שהזרם מסתיים.
כדי לכתוב נתונים, צריך להפעיל את השיטה WritableStream.getWriter()
, שמחזירה WritableStreamDefaultWriter
, שאפשר להעביר אליו נתונים באמצעות write()
.
הצגת השיפורים במעברים
אני שמח על התכונות של מעבר בין תצוגות, ויש שתי תכונות חדשות ב-Chrome 124 שנועדו להקל על מעבר בין תצוגות.
האירוע pageswap
מופעל באובייקט החלון של המסמך כשפעולת ניווט מחליפה את המסמך במסמך חדש.
document.addEventListener("pageswap", event => {
if (!event.viewTransition) {
return;
}
});
וגם חסימה של עיבוד מסמכים, שמאפשרת לחסום את העיבוד של מסמך עד לניתוח התוכן הקריטי, וכך להבטיח צביעה ראשונית עקבית בכל הדפדפנים.
ועוד.
כמובן שיש עוד הרבה.
disallowReturnToOpener
מציין לדפדפן שלא להציג לחצן בחלון התמונה בתוך התמונה שמאפשר למשתמש לחזור לכרטיסייה שדרכה נפתחה התמונה.קונטיינרים של גלילה ניתנים למיקוד במקלדת: אנחנו משפרים את הנגישות. אנחנו הופכים את הקונטיינרים של הגלילה לניתנים למיקוד באמצעות ניווט עם רצפי התמקדות.
התקנה אוניברסלית מאפשרת למשתמשים להתקין כל דף, גם כאלה שלא עומדים בקריטריונים הנוכחיים של אפליקציות PWA.
קריאה נוספת
הרשימה הזו כוללת רק כמה נקודות עיקריות. בקישורים הבאים מפורטים שינויים נוספים בגרסה 124 של Chrome.
- נתוני הגרסה של Chrome 124
- מה חדש בכלי הפיתוח ל-Chrome (גרסה 124)
- עדכונים ב-ChromeStatus.com לגבי Chrome 124
- רשימת השינויים במאגר המקור של Chromium
- לוח הזמנים של הגרסאות החדשות של Chrome
להרשמה
כדי להתעדכן, כדאי להירשם לערוץ YouTube למפתחי Chrome, ותקבלו התראה באימייל בכל פעם שנעלה סרטון חדש.
קוראים לי פיט לייפ (Pete LePage), ואחרי שגרסת Chrome 125 תפורסם, נעדכן אתכם כאן לגבי מה שחדש ב-Chrome.