предисловие
Эта статья не охватила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
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')
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:
Руководство по устранению неполадок приложений 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/…