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