58 items
Measuring CLS in the Loading Pipeline
Code QuizCore Web Vitals & Loading Pipeline
QuizMeasuring CLS with PerformanceObserver
Code QuizCore Web Vitals: LCP, CLS, INP
QuizObserving LCP with PerformanceObserver
Code QuizUnderstanding LCP and CLS
QuizTime to First Byte (TTFB)
Slides / VideoLab vs Field Data
Code Quizp75 Percentile
Code QuizRating Boundaries
Code QuizCLS Thresholds
Code QuizINP Thresholds
Code QuizFID Calculation
Code QuizComputing TTFB
Code QuizMeasuring FCP
Code QuizTotal Blocking Time
Code QuizNavigation Timing
Code QuizPerformanceObserver Setup
Code Quizweb-vitals Library
Code QuizLCP Thresholds
Code QuizLargest Contentful Paint (LCP)
Slides / VideoWhat Core Web Vitals Are
Slides / VideoTools for Measuring Web Vitals
Slides / VideoLab Data vs Field Data (RUM)
Slides / VideoCore Web Vitals: Three Categories
Slides / VideoGood vs Poor Metric Thresholds
Slides / VideoTime to Interactive (TTI)
Slides / VideoLCP Rating Thresholds
QuizINP Good Threshold
QuizWhy the 75th Percentile
QuizCLS Good Threshold
QuizFID Replaced by INP
QuizThe Three Core Web Vitals
QuizLab vs Field Data
QuizWhat LCP Measures
QuizWhat INP Measures
QuizTotal Blocking Time Basics
QuizSpeed Index Basics
QuizWhat CLS Measures
QuizWhy Metrics Are User-Centric
QuizTime to Interactive Basics
QuizInteraction to Next Paint (INP)
FlashcardPercentiles (p75) in Measurement
FlashcardLab Data vs Field Data
FlashcardSpeed Index
FlashcardFirst Contentful Paint (FCP)
FlashcardTime to First Byte (TTFB)
FlashcardWhat Core Web Vitals Are
FlashcardCumulative Layout Shift (CLS)
FlashcardTime to Interactive (TTI)
FlashcardCore Web Vitals Thresholds
FlashcardFirst Input Delay (FID)
FlashcardLargest Contentful Paint (LCP)
FlashcardTotal Blocking Time (TBT)
FlashcardFirst Contentful Paint (FCP)
Slides / VideoInteraction to Next Paint (INP)
Slides / VideoCumulative Layout Shift (CLS)
Slides / VideoFirst Input Delay (FID)
Slides / VideoMeasuring CLS in the Loading Pipeline
Spot the bug in a PerformanceObserver that reports Cumulative Layout Shift.
let clsValue = 0;
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
clsValue += entry.value;
}
console.log('Current CLS:', clsValue);
});
observer.observe({ type: 'layout-shift', buffered: true });This code over-reports CLS. What is the bug and how do you fix it?