предисловие
Эта статья не охватилаPerformance
содержимое панели.
Отдельная статья будет опубликована позже.
- Общие команды и отладка
- Черный скрипт коробки:
Blackbox Script
- Встроенные консольные команды
- Удаленная отладка
WebView
1. Полезность Chrome Devtools
- Фронтенд-разработка: предварительный просмотр разработки, удаленная отладка, настройка производительности,
bug
Трассировка, отладка точек останова и т. д. - Back-end разработка: захват сетевых пакетов, разработка и отладка
- тест: сервер
API
Верны ли данные, просмотрите стиль и расположение элементов страницы, анализ производительности загрузки страницы, автоматическое тестирование - Другие: Установите расширения, такие как
AdBlock、Gliffy、Axure
Ждать
2. Разборка панели меню
-
Elements
- элемент дом страницы -
Console
- приставка -
Sources
- Статические ресурсы страницы -
Network
- Интернет -
Performance
- Анализ производительности загрузки устройства -
Application
- информация о приложении,PWA/Storage/Cache/Frames
-
Security
- Анализ безопасности -
Audits
- Аудит, инструменты автоматизированного тестирования
3. Общие команды и отладка
1. Вызовите панель быстрого доступа:cmd + shift + p
существуетDevtools
открыть, типcmd + shift + p
Активируйте его и начните вводить искомую команду в строке или введите"?"
число, чтобы увидеть все доступные команды.
-
...
: открыть файл -
:
: перейти к файлу -
@
: перейти к идентификатору (функции, имени класса и т. д.) -
!
: запустить файл сценария -
>
: открыть функцию меню
1. Монитор производительности:> performance monitor
Монитор производительности будет отображаться вместе с соответствующей информацией, такой как ЦП, размер кучи JS и узлы DOM.
2. Производительность мониторинга FPS в реальном времени:> FPS
Выберите первый элемент
3. Скриншот одного элемента:> screen
выберитеCapture node screenhot
2. DOM
отладка точки останова
Эту опцию можно использовать, когда вы хотите отладить изменения в DOM определенного элемента. Это типы точек останова изменения DOM:
-
Subtree modifications
: когда дочерний узел удаляется или добавляется -
Attributes modifications
: Когда свойство изменено -
Node Removal
: Когда узел удален
Как показано выше:мониторform
этикетка, вinput
Когда поле получает фокус, запускает отладку точки останова
3. Скрипт черного ящика:Blackbox Script
Удалите избыточные точки останова скрипта.
Например третье лицо (Javascript
трассировки стека для фреймворков и библиотек, рекламы и т. д.).
Чтобы избежать этого и сосредоточиться на основном коде, вSources
или откройте файл на вкладке «Сеть», щелкните правой кнопкой мыши и выберитеBlackbox Script
4. Прослушиватель событий:Event Listener Breakpoints
- нажмите
Sources
панель - расширять
Event Listener Breakpoints
- Выберите категорию событий прослушивания, инициируйте событие, чтобы включить точки останова.
5. Местное покрытие:local overrides
Переопределите ресурсы, используемые веб-страницей, нашими собственными локальными ресурсами.
Точно так же используйтеDevTools
Настройки рабочей области сохраняются, локальные папки сопоставляются с сетью, аchrome
Модификация стиля css в функции разработчика будет напрямую изменять локальный файл, страница перезагружается, а используемые ресурсы также являются локальными ресурсами, достигая эффекта сохраняемости.
- Создайте папку для локального добавления альтернативного контента;
- Открыть
Sources > Overrides > Enable local Overrides
, выберите локальную папку - Открыть
Elements
, редактировать стили и автоматически создавать локальные файлы. - вернуть
Sources
, проверьте файл, отредактируйте изменения.
Этот элемент может автоматически изменять ресурсы, кроме асинхронных запросов XHR.Если загруженный файл не отформатирован, вы можете нажать в левом нижнем углу.
6. Расширение:local overrides
моделированиеMock
данные
От: инструменты разработчика Chrome - локальные переопределения
Для интерфейса, который возвращает данные json, вы можете использовать эту функцию, чтобы просто имитировать возвращаемые данные.
Например:
-
api
для:http://www.xxx.com/api/v1/list
-
В корневом каталоге создайте новый файл
www.xxx.com/api/v1/list
,list
Содержимое файла такое же, как и в обычном интерфейсе.
Тип объекта или массива, тем самым перезаписывая исходный запрос интерфейса.
4. Встроенные команды консоли
Функции, которые могут выполнять общие задачи, такие как выборDOM
элементы, запускать события, смотреть события, вDOM
Добавьте и удалите элементы и так далее.
это какChrome
самореализованныйjquery
Расширенное издание.
1. $(selector, [startNode])
: одиночный селектор
document.querySelector
сокращение для
грамматика:
$('a').href;
$('[test-id="logo-img"]').src;
$('#movie_player').click();
Консоль также будет заранее запрашивать соответствующие теги, что очень важно.
Также могут быть запущены события, такие как приостановка воспроизведения:
Эта функция также поддерживает второй параметр, startNode, который указывает «элемент» или узел, из которого следует искать элементы. Значение по умолчанию для этого параметра — документ.
2. ?(选择器,[startNode])
: полный селектор
document.querySelectorAll
Сокращение для , возвращает массив элементов метки
грамматика:
?('.button')
Вы можете использовать цикл для переключения, чтобы выбрать всеили распечатать свойства
Эта функция также поддерживает второй параметр, startNode, который указывает «элемент» или узел, из которого следует искать элементы. Значение по умолчанию для этого параметра — документ.
Применение:
var images = ?('img', document.querySelector('.devsite-header-background'));
for (each in images) {
console.log(images[each].src);
}
3. $x(path, [startNode])
:xpath
Селектор
$x(path)
вернуть и отдатьxpath
Массив элементов DOM, соответствующих выражению.
Например, следующий код возвращает<p>
Все элементы на странице:
$x("//p")
Следующий код возвращает<p>
Включать<a>
Все элементы элемента:
$x("//p[a]")
xpath
Он в основном используется для сканирования, и студенты, работающие с интерфейсом, могут быть с ним незнакомы.
4. getEventListeners(object)
: получить событие привязки указанного объекта.
getEventListeners(object)
Возвращает прослушиватели событий, зарегистрированные для указанного объекта. Возвращаемое значение — это объект, содержащий каждый зарегистрированный тип события (например,click
илиkeydown
) множество. Членами каждого массива являются объекты, описывающие слушателей, зарегистрированных для каждого типа.
Применение:
getEventListeners(document);
Что касается событий, наблюдаемых комиссией по расследованию, этоAPI
Гораздо удобнее.
5. Фантазияconsole
За исключением разных оценокwarn
а такжеerror
из печатиЕсть и другие очень полезные принты.
1. Переменная печать:%s
,%o
,%d
,а также%c
const text = "文本1"
console.log(`打印${text}`)
Помимо стандартногоES6
синтаксис и на самом деле поддерживает четыре вида строкового вывода.
Они есть:
console.log("打印 %s", text)
-
%s
: нить -
%o
: объект -
%d
: число или десятичное число
Есть также специальные%c
, который можно использовать для переопределения стиля вывода.
console.log('%c 文本1', 'font-size:50px; background: ; text-shadow: 10px 10px 10px blue')
Конечно, вы также можете использовать его в сочетании с другими (обратите внимание на порядок заполнителей).
const text = "文本1"
console.log('%c %s', 'font-size:50px; background: ; text-shadow: 10px 10px 10px blue', text)
Вы также можете играть так:
console.log('%c Auth ',
'color: white; background-color: #2274A5',
'Login page rendered');
console.log('%c GraphQL ',
'color: white; background-color: #95B46A',
'Get user details');
console.log('%c Error ',
'color: white; background-color: #D33F49',
'Error getting user details');
2. Советы по печати объектов
Когда нам нужно напечатать несколько объектов, мы часто выводим один за другим. И не может видеть имя объекта, что не очень хорошо для чтения:
Раньше я печатал так:
console.log('hello', hello);
console.log('world', world);
Это, очевидно, немного громоздко и громоздко. На самом деле вывод также поддерживает деструктурирование объекта:
console.log({hello, world});
3. Логическое утверждение печатает:console.assert()
Это полезно, когда вам нужно распечатать журналы при оценке определенных условий.
- Если утверждение ложно, напишите сообщение об ошибке в консоль.
- Если утверждение истинно, ничего не происходит.
грамматика
console.assert(assertion,obj)
Применение
const value = 1001
console.assert(value===1000,"value is not 1000")
4. Дайтеconsole
Группировка:console.group()
Используйте эту функцию, когда вам нужно сгруппировать или вложить детали вместе, чтобы иметь возможность легко читать журналы.
console.group('用户列表');
console.log('name: 张三');
console.log('job: 🐶前端');
// 内层
console.group('地址');
console.log('Street: 123 街');
console.log('City: 北京');
console.log('State: 在职');
console.groupEnd(); // 结束内层
console.groupEnd(); // 结束外层
5. Эффективность выполнения теста:console.time()
нетPerformance API
Точный, но лучше, чем простой в использовании.
let i = 0;
console.time("While loop");
while (i < 1000000) {
i++;
}
console.timeEnd("While loop");
console.time("For loop");
for (i = 0; i < 1000000; i++) {
// For Loop
}
console.timeEnd("For loop");
6. Форма вывода:console.table()
Этот работает для печати объектов массива. . .
let languages = [
{ name: "JavaScript", fileExtension: ".js" },
{ name: "TypeScript", fileExtension: ".ts" },
{ name: "CoffeeScript", fileExtension: ".coffee" }
];
console.table(languages);
7. ПечатьDOM
Узел объекта:console.dir()
Распечатайте все свойства и значения свойств этого объекта.console.dir()
а такжеconsole.log()
Разница в эффекте не очевидна. Если используется для печати строки, вывод точно такой же.
console.log("Why,hello!");
console.dir("Why,hello!");
Когда объект только выводится, это другое (log
распознается как строковый вывод,dir
Распечатайте объект напрямую. ).
Единственное существенное отличие — печать.dom
На объекте:
console.log(document)
console.dir(document)
Один печатает обычную этикетку, другойDOM
объект дерево.
6. Удаленная отладкаWebView
использоватьChrome
Инструменты разработчика являются роднымиAndroid
Отладка в приложенииWebView
.
-
настроить
WebViews
для отладки.существует
WebView
Вызов статического метода в классеsetWebContentsDebuggingEnabled
.if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); }
-
телефон открыт
usb
Отладить, подключить компьютер. -
существует
Chrome
В адресной строке введите:Chrome://inspect
App
открыть вWebView
час,chrome
будет отслеживать и отображать вашу страницу.
4. Нажмите под страницейinspect
, вы можете увидеть это на своем телефоне в режиме реального времениWebView
Статус отображения страницы — вверх. (В первый раз, когда вы используете его, может быть белый экран, это потому, что вам нужно перейти кhttps://chrome-devtools-frontend.appspot.com
Скачайте файл оттуда)
Кромеinspect
теги иFocus tab
:
- он сработает автоматически
Android
То же действие на устройстве
в других приложенияхWebView
Также возможно, например, это игра в приложении, которое также использует веб-страницу:
7. ОтладкаNode.js
Для получения дополнительной информации вы можете проверить эту статью от сообщества Alibaba Cloud:
Ps: Это относится к моему слепому пятну знаний, поэтому я не буду его перемещать.Руководство по устранению неполадок приложений Node.js — правильное включение Chrome DevTools
использованная литература
❤️ После прочтения трех вещей
Если вы найдете этот контент вдохновляющим, я хотел бы пригласить вас сделать мне три небольших одолжения:
- Сайт, пусть люди могут видеть этот контент (коллекция не хвала, все играет в Rogue -_-)
- Обратите внимание на паблик «Учитель фронтенд-убеждения», и время от времени делитесь оригинальными знаниями.
- Также смотрите другие статьи
- 120 строк кода для реализации полного интерактивного компонента загрузки с помощью перетаскивания.
- 160 строк кода для создания динамичных и крутых визуальных диаграмм - Таблица лидеров
- «Король библиотеки визуализации данных» D3.js Быстрое начало работы с приложением Vue
- Руководство "True® Full Stack Road" для веб-интерфейсной разработки
- «Практика Vue» 5 минут на плагин Vue CLI
- Вооружите свой интерфейсный проект «Практикой Vue»
- «Intermediate and Advanced Front-End Interview» JavaScript Рукописный код Invincible Cheats
- «Узнайте из исходного кода» ответы на вопросы Vue, которые интервьюеры не знают
- JS-операция «Узнать из исходного кода» в исходном коде Vue
- Правильная позиция для обновления vue-cli3 в проекте "Vue Practice"
- Почему вы до сих пор не можете понять цепочку областей видимости JavaScript?
Может прийти ко мнеGitHub
Получите исходные файлы всех статей в блоге:
Руководство по убеждению:GitHub.com/Roger-Hi RO/…