שיפור ביצועי הגלילה באמצעות פונקציות event listener פסיביות

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

איך זה עובד

כשגוללים בדף ויש עיכוב כה גדול שהדף לא מרגיש מקובע לאצבע, זה נקרא תנודות גלילה. במקרים רבים, כשנתקלים בתנועה קטועה בזמן גלילה, הגורם לכך הוא מאזין לאירועי מגע. לרוב, מאזינים לאירועי מגע שימושיים למעקב אחר אינטראקציות של משתמשים וליצור חוויות גלילה בהתאמה אישית, כמו ביטול הגלילה לגמרי כשמבצעים אינטראקציה עם מפה מוטמעת של Google. נכון לעכשיו, הדפדפנים לא יכולים לדעת אם מאזין לאירועי מגע יבטל את הגלילה, ולכן הם תמיד ממתינים לסיום הפעילות של המאזין לפני שהם גוללים בדף. כדי לפתור את הבעיה הזו, אפשר להשתמש ב-passive event listeners שמאפשרים להגדיר דגל בפרמטר options של addEventListener כדי לציין שה-listener לעולם לא יבטל את הגלילה. המידע הזה מאפשר לדפדפנים לגלול בדף באופן מיידי, ולא אחרי שהמאזין מסיים.

מידע נוסף

בבלוג של Chromium יש סקירה כללית על האופן שבו פונקציות passive event listener פועלות:

ממשקי API חדשים שיעזרו למפתחים לשפר את הביצועים של גלילה

במאגר המפרט, שבו מוסבר איך מטמיעים פונקציות event listener פסיביות:

הסבר על פונקציות event listener פסיביות