חדש בגרסה 124 של Chrome

אלה השיפורים בגרסה 124 של Chrome:

רוצים להגיע לסיכום? כדאי לקרוא את נתוני הגרסה של Chrome 124.

שימוש ב-DOM של צל מוצהר ב-JavaScript

יש שני ממשקי API חדשים שמאפשרים להשתמש ב-DOM של הצל המוצהר מ-JavaScript.

setHTMLUnsafe() דומה ל-innerHTML, ומאפשר להגדיר את ה-HTML הפנימי של רכיב למחרוזת שצוינה. זה עוזר כשיש HTML שכולל 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!

ממשק API של WebSocket Stream

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;
  }
});

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

ופעולות נוספות.

כמובן שיש עוד המון אפשרויות.

קריאה נוספת

המאמר הזה מתייחס רק לחלק מההדגשות העיקריות. בקישורים הבאים תוכלו למצוא שינויים נוספים ב-Chrome 124.

להרשמה

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

שמי פיט לפרג', וברגע ש-Chrome 125 יושק, נהיה כאן כדי לספר לכם מה חדש ב-Chrome!