זמן החסימה הכולל (TBT)

מהו TBT?

המדד 'זמן חסימה כולל' (TBT) מודד את משך הזמן הכולל אחרי המהירות שבה נטען רכיב התוכן הראשון (FCP), שבו ה-thread הראשי נחסם למשך מספיק זמן כדי למנוע תגובות לקלט.

כברירת מחדל, Lighthouse מפסיק לעקוב אחרי זמן הטעינה של הדף אחרי זמן הטעינה עד לאינטראקטיביות (TTI), כמו גם כלים אחרים של Lab למדידת זמן הטעינה של דפים. איך זמן הטעינה המשוער קשור לזמן הטעינה בפועל?

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

אם המשימה ארוכה מספיק (יותר מ-50 אלפיות השנייה), סביר להניח שהמשתמש יבחין בעיכוב ויראה את הדף איטי או שבור.

זמן החסימה של משימה ארוכה מסוימת הוא משך הזמן שלה מעבר ל-50 אלפיות השנייה. זמן החסימה הכולל של דף הוא הסכום של זמן החסימה של כל משימה ארוכה שמתרחשת אחרי הצגת התוכן הראשוני (FCP) במסגרת הזמן שנמדד (בדרך כלל TTI בכלים למדידת זמן הטעינה של דפים, או זמן המעקב הכולל בכלים אחרים).

לדוגמה, התרשים הבא מציג את הליבה הראשית של הדפדפן במהלך טעינת הדף:

ציר זמן של משימות בשרשור הראשי
ציר זמן של משימות ב-thread הראשי.

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

ציר זמן של משימות בשרשור הראשי שבו מוצג משך החסימה
אותן משימות, עם סימון זמני חסימה.

לכן, בזמן הכולל של הפעלת המשימות בשרשור הראשי עומד על 560 אלפיות השנייה, רק 345 אלפיות השנייה מתוך הזמן הזה נחשבות לזמן חסימה.

משך המשימה (באלפיות שנייה) זמן החסימה של המשימה (אלפיות השנייה)
משימה ראשונה 250 200
משימה שנייה 90 40
משימה שלוש 35 0
משימה רביעית 30 0
משימה חמש 155 105
זמן החסימה הכולל 345 אלפיות השנייה

מה הקשר בין TBT לבין INP?

שיטת TBT מקדמה את INP והיא שימושית כאינדיקציה לבעיות INP, במיוחד בסביבת שיעור ה-INP שבה קשה יותר למדוד INP. עם זאת, TBT יכול לסמן בעיות פוטנציאליות שאולי לא יהיו בעיות אצל המשתמשים – אם הם לא יתנהלו אינטראקציה באותו זמן. היא גם יכולה להחמיץ בעיות שנגרמות מאינטראקציות בזמן מדידה בסביבה של שיעור ה-Lab. אנחנו ממליצים למדוד את INP בשטח כמדד של בעיות הרספונסיביות בפועל שחווים המשתמשים. המדד TBT עשוי לשמש כמדד חלופי סביר ל-INP ב-Lab, אבל הוא לא תחליף ל-INP בפני עצמו.

מה הקשר בין TBT לבין 'דברים שאפשר לעשות' (TTD)?

זמן הצפייה הממוצע נמדד לאורך תקופת זמן. בכלים מסוימים של Lab שמודדים באופן מסורתי את טעינות הדפים, כולל Lighthouse, זמן הטעינה המשוער של הדף נמדד עד זמן הטעינה המשוער של תוכן הדף, כי הוא עוזר למדוד את מידת חוסר האינטראקטיביות של דף לפני שהוא הופך לאינטראקטיבי באופן מהימן. עם זאת, ניתן להמשיך למדוד את ה-TBT גם אחרי טעינת הדף, כך שגם אחרי מעבר ל-TTI, למשל במצב Lighthouse Timespan.

לפי מדד TTI, דף נחשב 'אינטראקטיבי באופן מהימן' אם לא היו בו משימות ארוכות בשרשור הראשי במשך חמש שניות לפחות. כלומר, שלוש משימות של 51 אלפיות השנייה שמפוזרות על פני 10 שניות יכולות לדחות את זמן הטעינה הראשוני באותה מידה כמו משימה אחת באורך 10 שניות – אבל שני התרחישים האלה ייראו שונים מאוד למשתמש שמנסה ליצור אינטראקציה עם הדף.

במקרה הראשון, ל-3 משימות של 51 אלפיות שנייה יהיה TBT של 3 אלפיות שנייה. לעומת זאת, משימה אחת באורך 10 שניות תהיה עם TBT של 9,950 אלפיות השנייה. ערך TBT גדול יותר במקרה השני מציין את כמות החוויה הגרועה יותר.

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

איך מודדים TBT

TBT הוא מדד שצריך למדוד בשיעור ה-Lab. הדרך הטובה ביותר למדוד את המדד TBT היא לבצע בדיקת ביצועים של Lighthouse באתר. פרטים נוספים זמינים במסמכי התיעוד של Lighthouse בנושא TBT.

ניתן למדוד TBT בשטח, אך אנו לא ממליצים על כך, מכיוון שאינטראקציה של משתמש עשויה להשפיע על ערך הבסיס של הדף בדרכים שיגרמו להבדלים רבים בדוחות. במקום זאת, אם אתם רוצים לבדוק מעבר לאינטראקציה יחידה של INP, מומלץ להשתמש ב-Long Animations Frame API החדש יותר.

כלים לשיעור Lab

מהו ציון TBT טוב?

כדי לספק חוויית משתמש טובה, מומלץ שזמן החסימה הכולל יהיה קצר מ-200 אלפיות השנייה כאשר הוא נבדק בחומרה ממוצעת לנייד.

במאמר איך מערכת Lighthouse קובעת את הציון של זמן הטעינה של הדף מוסבר איך זמן הטעינה של הדף משפיע על ציון הביצועים של Lighthouse.

איך משפרים את TBT

באופן כללי, מומלץ לבצע אופטימיזציה לפי INP במקום לפי TBT, כי מומלץ להשתמש ב-TBT כמדד עקיף ל-INP במעבדה (בדרך כלל אי אפשר למדוד את ה-INP בצורה מדויקת). לכן, כדי לשפר את הביצועים של מודעות ה-TBT, כדאי לעיין בהנחיות שלנו בנושא אופטימיזציה של INP.

אם אתם רוצים לבדוק במיוחד את TBT, תוכלו להריץ ביקורת ביצועים של Lighthouse ולשים לב לכל הזדמנות ספציפית שהבדיקה מציעה.

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