sitespeed.io/lib/plugins/html/templates/url/summary/summaryBox.pug

95 lines
5.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mixin getUserTimings(path, name, metric, type)
- isSet = false
if options.browsertime.iterations % 2 === 0 && type === 'median'
td.number(data-title=type) #{metric[type]}
else
each run, index in path
each marks in run.timings.userTimings.marks
if (marks.name === name && Number(marks.startTime).toFixed(0) === Number(metric[type]).toFixed(0) && isSet === false)
- isSet = true
td.number(data-title=type)
a(href='./' + (index+1) + '.html', title='Go to the run with the ' + type + ' ' + name) #{h.time.ms(metric[type])}
mixin getRow(name, object, path, runPath, metric, f)
- const min = get(object, path + '.min')
- const median = get(object, path + '.median')
- const mean = get(object, path + '.mean')
- const max = get(object, path + '.max')
if min || min === 0
tr
td(data-title='metric') #{name}
- let isSet = false
each run, index in runPath
if (Number(min).toFixed(0) === Number(get(run, metric)).toFixed(0) && isSet === false)
- isSet = true
td.number(data-title='min')
a(href='./' + (index+1) + '.html', title='Go to the run with the min ' + name) #{f(min)}
if options.browsertime.iterations % 2 === 0
td #{f(median)}
else
- isSet = false
each run, index in runPath
if (Number(median).toFixed(0) === Number(get(run, metric)).toFixed(0) && isSet === false)
- isSet = true
td.number(data-title='median')
a(href='./' + (index+1) + '.html', title='Go to the run with the median ' + name) #{f(median)}
td.number(data-title='mean') #{f(mean)}
- isSet = false
each run, index in runPath
if (Number(max).toFixed(0) === Number(get(run, metric)).toFixed(0) && isSet === false)
- isSet = true
td.number(data-title='max')
a(href='./' + (index+1) + '.html', title='Go to the run with the max ' + name) #{f(max)}
- btStatistics = h.get(pageInfo.data, 'browsertime.pageSummary.statistics')
if btStatistics
a#browsertime-timing-statistics
h2 Timings Summary
- timingMetrics = ['firstPaint', 'loadEventEnd']
.responsive
table
thead
tr
th Metric
th.number min
th.number median
th.number mean
th.number max
if btStatistics.visualMetrics
tr
td.extraheader(colspan='5') Visual Metrics
each visualMetric, name in btStatistics.visualMetrics
if name !== 'videoRecordingStart'
tr
+getRow(name, pageInfo, 'data.browsertime.pageSummary.statistics.visualMetrics.' + name, pageInfo.data.browsertime.pageSummary.visualMetrics, name, h.time.ms)
if btStatistics.timings && btStatistics.timings.pageTimings
tr
td.extraheader(colspan='5') RUM Metrics
+getRow('TTFB', pageInfo, 'data.browsertime.pageSummary.statistics.timings.pageTimings.backEndTime' , pageInfo.data.browsertime.pageSummary.browserScripts, 'timings.pageTimings.backEndTime', h.time.ms)
+getRow('LCP', pageInfo, 'data.browsertime.pageSummary.statistics.timings.largestContentfulPaint.renderTime' , pageInfo.data.browsertime.pageSummary.browserScripts, 'timings.largestContentfulPaint.renderTime', h.time.ms)
+getRow('FCP', pageInfo, 'data.browsertime.pageSummary.statistics.timings.paintTiming["first-contentful-paint"]', pageInfo.data.browsertime.pageSummary.browserScripts, 'timings.paintTiming["first-contentful-paint"]', h.time.ms)
each timing in timingMetrics
+getRow(timing, pageInfo, 'data.browsertime.pageSummary.statistics.timings.' + timing , pageInfo.data.browsertime.pageSummary.browserScripts, 'timings.' + timing, h.time.ms)
+getRow('CLS', pageInfo, 'data.browsertime.pageSummary.statistics.pageinfo.layoutShift' , pageInfo.data.browsertime.pageSummary.browserScripts, 'pageinfo.layoutShift', h.noop)
if btStatistics.timings && btStatistics.timings.userTimings && btStatistics.timings.userTimings.marks
tr
td.extraheader(colspan='5') User Timing
each userTimings, name in btStatistics.timings.userTimings.marks
tr
td(data-title= 'User Timing') #{name}
+getUserTimings(pageInfo.data.browsertime.pageSummary.browserScripts, name, userTimings, 'min')
+getUserTimings(pageInfo.data.browsertime.pageSummary.browserScripts, name, userTimings, 'median')
td.number(data-title='mean') #{userTimings ? h.time.ms(userTimings.mean): ''}
+getUserTimings(pageInfo.data.browsertime.pageSummary.browserScripts, name, userTimings, 'max')
if btStatistics.cpu && btStatistics.cpu.longTasks
tr
td.extraheader(colspan='5') CPU
+getRow('Total Blocking Time', pageInfo, 'data.browsertime.pageSummary.statistics.cpu.longTasks.totalBlockingTime' , pageInfo.data.browsertime.pageSummary.browserScripts, 'cpu.longTasks.totalBlockingTime', h.time.ms)
+getRow('Max Potential FID', pageInfo, 'data.browsertime.pageSummary.statistics.cpu.longTasks.maxPotentialFid', pageInfo.data.browsertime.pageSummary.browserScripts, 'cpu.longTasks.maxPotentialFid', h.time.ms)
+getRow('CPU long tasks ', pageInfo, 'data.browsertime.pageSummary.statistics.cpu.longTasks.tasks' , pageInfo.data.browsertime.pageSummary.browserScripts, 'cpu.longTasks.tasks', h.noop)
+getRow(' CPU longest task duration ', pageInfo, 'data.browsertime.pageSummary.statistics.cpu.longTasks.durations.max' , pageInfo.data.browsertime.pageSummary.browserScripts, 'cpu.longTasks.durations.max', h.time.ms)