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

מה זה TBT?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

איך מודדים TBT

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

כלים לשיעור Lab

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

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

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

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

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

כדי לקבל מידע נוסף על שיפור TBT באופן כללי (בכל אתר), אפשר לעיין במדריכים הבאים בנושא ביצועים: