- ב-Chrome 63 אפשר לייבא מודולים של JavaScript באופן דינמי.
- השאלה האהובה עליי בנושא תכנות של ריאיונות הופכת למשימה קדומה עם איטרטורים וגנרטורים אסינכרוניים.
- בעזרת מאפיין ה-CSS
overscroll-behavior
אפשר לשנות את התנהגות הגלילה של גלישה נוספת המוגדרת כברירת מחדל בדפדפן. - בנוסף, שינינו את האופן שבו משתמשים מתבקשים להציג בקשות הרשאה
ויש עוד עוד המון!
שמי Pete LePage. בואו נראה מה חדש למפתחים ב-Chrome 63.
רוצה לקבל את רשימת השינויים המלאה? כדאי לעיין ברשימת השינויים במאגרי המקור ב-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
, וגם כדי ליצור איטרטורים אסינכרוניים בהתאמה אישית דרך מפעלים של איטרטור אסינכרוני.
התנהגות של גלילת יתר
גלילה היא אחת מהדרכים הבסיסיות ביותר לאינטראקציה עם הדף, אבל לפעמים קשה להתמודד עם דפוסים מסוימים. לדוגמה, התכונה משיכה לרענון של הדפדפן, שבה החלקה למטה מהחלק העליון של הדף, גורמת לטעינה קשיחה מחדש.
לפני כן, ברענון הדף המלא.
לאחר מכן, צריך לרענן רק את התוכן.
במקרים מסוימים, כדאי לשנות את ההתנהגות הזו ולספק חוויה משלכם. זה מה שאפליקציית Progressive Web App של Twitter עושה זאת: כשמושכים למטה את הדף, במקום לטעון מחדש את כל הדף, היא פשוט מוסיפה ציוצים חדשים לתצוגה הנוכחית.
ב-Chrome 63 יש עכשיו תמיכה במאפיין overscroll-behavior
ב-CSS, וכך קל לשנות את התנהגות הגלילה של אפשרויות נוספות בדפדפן המוגדרת כברירת מחדל.
אפשר להשתמש בו כדי:
- ביטול שרשור הגלילה
- השבתה או התאמה אישית של פעולת המשיכה לרענון
- השבתת האפקטים של פסי הגומי ב-iOS
- הוספת ניווטים בהחלקה
- ועוד...
היתרון הכי חשוב הוא שלoverscroll-behavior
אין השפעה שלילית על ביצועי הדף!
שינויים בממשק המשתמש של ההרשאות
אני אוהב התראות באינטרנט, אבל אני מתוסכל מאוד מכמות האתרים שמבקשים הרשאה במהלך טעינת דף, ללא הקשר כלשהו - ואני לא לבד.
המערכת מתעלמת מ-90% מכל הבקשות להרשאות, או שהן נחסמות באופן זמני.
ב-Chrome 59 התחלנו לטפל בבעיה על ידי חסימה זמנית של הרשאה, אם המשתמש סגר את הבקשה שלוש פעמים. עכשיו ב-m63, Chrome ל-Android יציג תיבות דו-שיח מודאליות לבקשות הרשאה.
חשוב לזכור: מדובר לא רק בהתראות, אלא בכל בקשות ההרשאה. אם תבקשו הרשאה בזמן המתאים ובהקשר הרלוונטי, גילינו שהסבירות שמשתמשים יקבלו הרשאה גדולה פי שניים וחצי!
ועוד!
אלה רק כמה מהשינויים שב-Chrome 63 למפתחים, כמובן, ויש עוד הרבה יותר.
- הפקודה
finally
זמינה עכשיו במכונות שלPromise
ומופעלת אחרי מילוי או דחייה שלPromise
. - ה-Device Memory JavaScript API החדש מאפשר לכם להבין את אילוצי הביצועים, באמצעות רמזים לגבי נפח ה-RAM הכולל במכשיר של המשתמש. תוכלו להתאים את חוויית השימוש בזמן הריצה, וכך להפחית את המורכבות במכשירים פחות מתקדמים ולספק למשתמשים חוויה טובה יותר עם פחות תסכולים.
- באמצעות
Intl.PluralRules
API אפשר ליצור אפליקציות שמבינות את אופן הרבים של שפה נתונה, על ידי ציון צורת הרבים שמתאימה למספר נתון ולשפה מסוימת. הוא יכול לעזור עם מספרים סידוריים.
הקפידו להירשם כמנויים לערוץ YouTube שלנו, ולקבל התראה באימייל בכל פעם שסרטון חדש יושק.
אני פיט לה פייג', וברגע שגרסת Chrome 64 תושק, אני אהיה כאן כדי לספר לכם מה חדש ב-Chrome!