Показаны сообщения с ярлыком DevTools. Показать все сообщения
Показаны сообщения с ярлыком DevTools. Показать все сообщения

16 июн. 2025 г.

Debug CLS: List DOM elements, their coordinates, and area changes for every layout shift

(new PerformanceObserver((list) => {

    const entries = list.getEntriesByType('layout-shift');

    entries.forEach((/*LayoutShift*/entry) => {

        console.log(entry);

        const /*Array<LayoutShiftAttribution>*/sources = entry.sources || [];

        const changes = [];

        for (const source of sources) {

            const { currentRect: cr, previousRect: pr, node } = source;

            const dx = cr.x - pr.x;

            const dy = cr.y - pr.y;

            const ds = cr.width * cr.height - pr.width * pr.height;

            changes.push({dx, dy, ds, node});

        }

        if (changes.length) {

            console.table(changes);

        }

    });

})).observe({ type: 'layout-shift', buffered: true });


26 мая 2021 г.

Network Filter expressions in Chrome DevTools


KeywordExample
cookie-domain:cookie-domain:.google.com
cookie-name:
cookie-path:cookie-path:/images
cookie-value:
domain:domain:*.com domain:example.com
has-response-header:has-response-header:Access-Control-Allow-Origin
is:is:from-cache is:service-worker-intercepted
larger-than:larger-than:10k
method:method:POST
mime-type:mime-type:application/json
mixed-content:
priority:priority:Highest
resource-type:resource-type:image resource-type:other
scheme:scheme:https
set-cookie-domain:set-cookie-domain:.google.com
set-cookie-name:set-cookie-name:__utma
set-cookie-value:set-cookie-value:abc123
status-code:status-code:204
url:url:data:

To invert the rule, i.e. leave URLs that do not match, prepend it with minus sign, e.g. -is:from-cache means "all resources loaded not from cache".

Any other text leaves only URLs with that text somewhere in it (in path, query, etc.)

Examples:

  • larger-than:10k resource-type:image -domain:*.net
    "all images not from *.net larger than 10 kilobytes"
  • is:from-cache resource-type:script
    "cached scripts"

3 авг. 2020 г.

Tools for performance analysis in Node.js

  • node-tick-processor easy-to-install processor for the v8 profiler log
  • node-gcstats exposes stats about V8 GC after it has been executed
  • 0x single-command flamegraph profiling
  • autocannon HTTP/1.1 benchmarking tool written in node, with support for HTTP pipelining and HTTPS
  • k6.io open source load testing tool and SaaS for engineering teams
  • why-did-you-render monkey patches React to notify you about avoidable re-renders (works with React Native as well)

10 апр. 2020 г.

16 апр. 2019 г.

V8 Runtime Call Stats on Timeline

  1. Go to chrome://flags/#enable-devtools-experiments
  2. Enable DevTools experiments
  3. Restart Chrome
  4. Open DevTools - Settings - Experiments
  5. Hit Shift 6 times
  6. Check the option called Timeline: V8 Runtime Call Stats on Timeline
  7. Close then re-open DevTools

13 нояб. 2018 г.

Chrome DevTools tips and tricks


  • $0 в консоли - ссылка на на текущий выбранный элемент в панели элементов (Elements)
  • $_ в консоли - ссылка на последний вычисленный в консоли результат
  • Ctrl-click (Cmd-click в MacOS) по правилу CSS в панели элементов - Chrome DevTools откроет определение этого стиля в панели Sources
  • Ctrl-Shift-P (Cmd-Shift-P в MacOS) - быстрый поиск команд
  • Chrome умеет делать скриншоты: Ctrl-Shift-P - набрать screenshot - есть команды Capture screenshot, Capture node screenshot, Capture full size screenshot
  • Поиск в панели элементов (Ctrl-F) можно вести по строке, CSS-селектору или XPath
  • Ctrl-Shift-O - навигация по списку имён в текущем файле (классы, функции и т.п.)
  • Ctrl-O (Cmd-O, Cmd-P) в панели Sources - универсальная навигация: по списку всех загруженных файлов, по номерам строк в текущем файле, по символам в текущем файле, по командам DevTools
  • Alt-click в MacOS (Alt- или Ctrl-Alt-click в Windows) по треугольнику слева от элемента в панели элементов - развернуть элемент и все вложенные в него элементы
  • Ctrl-Shift-D - изменение docking mode (расположения) DevTools - сбоку, снизу или в отдельном окне
  • Выделение мышкой с нажатой Alt в панелях Elements и Sources - выделение вертикального блока (Esc - вернуться к обычному одиночному курсору)
  • Если навести мышку на селектор в стилях в панели элементов и подождать - Chrome подсветит на странице все элементы с таким селектором
  • В контекстном меню для каждого запроса в панели Network есть пункты Copy as fetch, Copy as cURL - в буфер будет скопирована команда JavaScript или команда curl с правильными параметрами
  • В контекстном меню для каждого запроса в панели Network есть возможность заблокировать загрузку данного ресурса
  • Ctrl-Shift-F (Cmd-Alt-F) в консоли - поиск строки сразу во всех доступных файлах
  • copy(object) в консоли копирует переданный объект как строку в буфер обмена
  • queryObjects(Array) в консоли покажет все объекты, созданные конструктором Array