Как открыть отладку в браузере

Отладка JavaScript программы в браузере. Инструменты Разработчика

В ходе разработки JavaScript программы большое значение имеет умение её отлаживать, так как в процессе работы кода часто возникают ошибки, которые нужно найти и исправить. В рамках браузеров есть Инструменты Разработчика, которые предоставляют набор инструментов для отладки программы. В данной статье освещаются основные этапы отладки кода, используя инструменты разработчика браузера.

В каждом современном браузере есть свои инструменты, и хотя они могут отличаться интерфейсом или некоторыми специфическими возможностями, основной функционал для отладки программы у них схожий. Поэтому понимание процесса отладки в рамках даже одного браузера позволит сформировать общее представление об отладке в других браузерах. Полную документацию по Инструментам Разработчика для браузера Firefox можно найти в документации MDN, а для браузера Chrome (на английском) в документации Chrome DevTools.

Поэтапный процесс отладки программы

Скачать архив с исходным кодом для его отладки можно по этой ссылке. В нём содержится несколько ошибок, которые нужно найти и исправить для корректной работы программы. После запуска страницы index.html в браузере (в этой статье для отладки программы будет использоваться Firefox), на ней отобразится заголовок “Страница с ошибкой в коде JavaScript”. Хотя при корректном выполнении кода, заголовок должен быть “Страница без ошибок. Спасибо!” и ниже должна появиться картинка.

Есть несколько способов открыть на странице Консоль Разработчика:

Клавиатура. Ctrl + Shift + I, кроме

Настройка и управление (кнопка справа вверху браузера) > Дополнительные инструменты > Инструменты разработчика

Нажмите правой кнопкой мыши на любом участке веб-страницы (Ctrl-клик для Mac), появится контекстное меню, в котором Вам нужно выбрать пункт “Посмотреть код” (при этом отобразится код того элемента, на котором вы щёлкнули правой кнопкой)

В открывшейся Консоли есть набор вкладок, каждая из которых предоставляет определенный функционал. На начальном этапе достаточно иметь представление о следующих вкладках:

Первой является вкладка Инспектор (или Elements в браузере Chrome), где отображается разметка страницы и стили элементов справа.

Как открыть отладку в браузере

Эта панель имеет косвенное отношение к процессу отладки JavaScript, поэтому детально в этой статье разбираться не будет. Подробную информацию по ней лучше изучить в соответствующей документации.

Следующей вкладкой в Инструментах Разработчика является панель Консоль (или Console в браузере Chrome), которая отображает логи работы программы. Например, ошибки, предупреждения, и другую дополнительную информацию, которую генерирует программа JavaScript в ходе своего выполнения. А также эта панель позволяет непосредственно взаимодействовать с кодом JavaScript на странице.

Все возникшие ошибки в JavaScript коде, выводятся в ней с указанием файла и конкретного места в нем, где произошла ошибка.

Как открыть отладку в браузере

Также консоль содержит ряд инструментов и настроек для фильтрации выводимых сообщений, очистки консоли и запрета очистки логов при перезагрузке страницы — Непрерывные логи.

Третьей вкладкой является панель Отладчик (или Sources в Chrome). Эта панель по сути представляет собой встроенную среду разработки кода, в которой можно получить доступ ко всем подключенным к странице файлам. Можно посмотреть их содержимое, отследить их выполнение, а в Chrome еще можно отредактировать код, скопировать его или сохранить изменения в новом файле.

Как открыть отладку в браузере

Также, для отладки кода в этой панели используются точки останова (брейкпоинты), которые позволяют приостановить выполнение кода на определенной строке. Поставить точку останова можно кликнув на номер соответствующей строки или написав в самом коде ключевое слово debugger;

Как открыть отладку в браузере

Управлять потоком выполнения программы после остановки на точке можно с помощью кнопок, расположенных справа в верхнем углу консоли. Которые позволяют возобновить выполнение ( F8 ), перешагнуть выполнение до следующей точки останова ( F10 ), зайти в функцию ( F11 ) или выйти из неё ( Shift F11 ). Крайняя кнопка, если её активировать, позволяет приостанавливаться на каждом непойманном исключении.

Воспроизведение и поиск ошибок

Первым шагом отладки является воспроизведение ошибки. В данном случае, ошибка воспроизводится при самом запуске программы, так как на странице не отображается необходимое содержание.

Далее начинается поиск ошибки, перейдя в панель “Консоль” можно увидеть выведенное там сообщение о возникшем в коде исключении.

В данном случае исключение указывает на то, что используемая переменная не была объявлена. Чтобы исправить это, надо заменить в файле main.js строку

Как открыть отладку в браузере

Точки останова

Несмотря на исправление строки, вызывающей исключение, содержание страницы не изменилось. Поэтому следующим этапом будет отладка программы с помощью точек останова.

Воспользуемся первым способом — поставим точку останова на 20-й строке, где вызывается нужная функция. Обновив страницу в браузере, чтобы зайти в эту функцию нужно нажать соответствующую кнопку или клавишу ( F11 ).

Как открыть отладку в браузере

Источник

Введение в отладку на примере Firefox DevTools, часть 1 из 4

Я решил переработать инструкцию, как отлаживать JavaScript в «Firefox DevTools», потому что среди знакомых фронтендеров слово DevTools, инструменты разработчика, стало синонимом «Chrome DevTools». На Хабре также — по запросу DevTools в релевантной выдаче на первых страницах упоминается только «Chrome DevTools». Я переживаю, что у начинающих фронтендеров сложится впечатление, что других инструментов — нет.

Да, к сентябрю 2021 года браузер Firefox опустился на 4-е место по популярности на компьютерах, его даже обогнал новый Edge. Саму Mozilla, кажется, мы тоже теряем.

Но мне также кажется, что это всё преждевременно. Что мы стали забывать про былые заслуги Firefox. Родоначальник инструментов разработчика Firebug появился в Firefox. Наглядный инспектор гридов и флексов первым появился в Firefox. Режим просмотра «как на мобильных» без открытых DevTools есть только в Firefox.

И, конечно, я вижу, как мы стали забывать, к чему привела монополия Internet Explorer. Кто-то и вовсе этого не застал. Монополия убивает конкуренцию и разрешает монополисту расхлябисто относиться к своему продукту. А один браузер — это монополия.

Я не призываю менять Chrome на Firefox. Я хочу, чтобы мы перестали списывать Firefox со счетов. Если вы пользуетесь Chrome, поддержите его конкурентов ради самого Chrome. Не обязательно деньгами. Достаточно в следующий раз, когда вы будете писать статью о чем-то, что есть во всех DevTools, упомянуть, как это работает в Firefox и Safari.

Знакомимся с отладчиком в Firefox DevTools

Отладчик разделён на три части:

Как открыть отладку в браузереИнтерфейс отладчика в Firefox DevTools

    Слева список всех JavaScript-файлов открытой страницы.

    По центру область предпросмотра.

    Справа панель инструментов.

    На панели инструментов можно выделить:

    Как открыть отладку в браузереВсе возможности панели инструментов (справа)

      В самом верху кнопки для навигации по коду во время отладки.

      Выражения для отслеживания — это набор значений, изменение которых мы хотим отследить во время отладки.

      Точки останова — список всех указанных в отладчике точек останова с возможностью включить-выключить каждую. Для удобства разработчика отдельно выделены точки останова в HTTP-запросах (XHR, fetch), обработчиках событий и на изменения DOM.

      Стек вызовов — список всех вызванных функций до момента остановки во время отладки. Справа от названия функции указаны номер строки и имя файла, где она была вызвана.

      Области видимости со списком всех доступных значений на момент остановки во время отладки.

      Не пугайтесь незнакомых слов. Каждую часть отладчика и её назначение мы разберём далее. Пока что запомните, где что находится, и отправимся чинить сломанное приложение со списком дел.

      Совет в тему

      Часто перед публикацией сайта разработчики минифицируют JavaScript-код, чтобы уменьшить размер файла и ускорить загрузку страницы. Пользователю радость, но читать минифицированный код в отладчике невозможно. У Firefox есть решение! Если вы открыли файл с таким кодом, нажмите на кнопку <> под областью предпросмотра. Отладчик попытается превратить минифицированный код в нечто человекочитаемое и покажет результат в новой вкладке.

      Давайте потренируемся! Специально для вас мы опубликовали версию приложения с минифицированным кодом:

      Откройте инструменты разработчика ( ctrl + shift + I в Windows и Linux, command + option + I в macOS), далее «Отладчик».

      Откройте его в области предпросмотра и попробуйте перевести в человекочитаемый вид с помощью отладчика.

      Источник

      Как вызвать консоль и инструменты разработчика в Яндекс браузере

      Веб-обозреватели обладают гораздо большим количеством функций, чем нужно для обычного сёрфинга по сети. Есть функции, упрощающие поиск информации, масса хранилищ, инструменты для управления данными и даже средства для тестирования и разработки веб-сайтов. Консоль браузера Яндекс вмещает различные инструменты для работы с невидимой стороной сайтов: JavaScript-кодом, подключаемыми данными и устройствами, cookie, cache, сертификатами безопасности и т.п. Консоль разработчика – это крайне полезное средство не только в руках программиста, порой и не специалисту приходится использовать эту панель.

      Как открыть отладку в браузере

      Чем полезна консоль разработчика Яндекс браузера

      Панель разработчика реализована для решения пяти основных задач:

      Инструменты разработчика и консоль в браузере Яндекс – это универсальные средства, в них есть всё самое необходимое программисту и не только.

      Как открыть консоль в Яндекс браузере

      Существует несколько способов вызвать консоль в Яндекс браузере:

      Через меню браузера

      Все нужные средства размещены в одном разделе «Дополнительные инструменты». Отсюда можем перейти сразу в консоль, инструменты разработчика или просто открыть HTML-код страницы.

      Как открыть консоль разработчика в Яндекс браузере:

      Таким же способом можем открыть и HTML-код после клика на «Просмотреть код страницы», а также перейти в «Инструменты разработчика», кликнув по соответствующему пункту.

      Из контекстного меню

      Это один из самых простых способов открыть нужный раздел, для его реализации от нас нужно сделать лишь 3 клика:

      Посредством горячих клавиш

      Чтобы запустить консоль в Яндекс браузере, можем воспользоваться горячими клавишами. Они позволяют открыть не только саму консоль, но и инструменты разработчика.

      Как включить консоль с помощью комбинаций клавиш:

      Ещё один способ перейти в нужную панель – нажать клавишу F12.

      Описание элементов панели разработчика

      Пришло время подробнее разобрать все вкладки в консоли разработчика и их функции. На подробное описание уйдёт очень много времени, поэтому мы расскажем вкратце о роли каждой из них.

      Вкладки панели разработчика:

      Теперь мы знаем зачем нужна и как открыть консоль в Яндекс браузере, а также вкратце познакомились с функциями каждого элемента из инструментов разработчика. В полной мере используя данное средство для разработки, появляется возможность качественнее и быстрее разрабатывать веб-сайт. Обычным пользователям консоль полезна для предоставления скринов о неисправностях сайта и очистки временных данных.

      Источник

      Отладка Javascript

      Как открыть отладку в браузере

      (Примечание: наверное эта статья больше для новичков. Так что не судите строго)

      Казалось бы — да что тут рассказывать? Всё же очевидно. Но вопрос этот мне задают с завидной частотой. Да и мне есть, что рассказать.

      Приведу конкретные примеры и расскажу, как я их решаю.

      Видим цель, не видим препятствий

      JavaScript вывалил ошибку? Замечательно! Нет, это конечно плохо, но гораздо лучше, чем если бы он промолчал (да, бывает и такое!) в случае ошибки.

      Наша цель — понять, что же, чёрт побери, произошло? Но сначала — рекламная пауза лирическое отступление: средства JavaScript Debug’а в основных браузерах.

      Debuggers

      Как «тормознуть» поток

      Как открыть отладку в браузере

      А вот вариант с условной остановкой:

      Мне так нравится гораздо больше, чем ставить «бряку»: так я пишу код и дебажу его по сути в одном месте, а не в двух.

      Debug через alert()

      Это наименее информативный debug, который к тому же останавливает поток JavaScript. Да к тому же модальный по отношению к браузеру. Забудьте, что он вообще существует.

      Особенность breakpoint’ов

      Рассмотренные варианты все, как один, тормозят поток JavaScript. Это плохо!

      Почему? Если в момент остановки скрипта у вас был запущен AJAX-запрос или Timeout, и ответ не успел вернутся — он может уже не вернутся никогда. Согласитесь, в современных web-проектах этого добра хватает. Поэтому в момент «экстренной остановки» скрипта мы уже не сможем адекватно debug’ать дальше — часть логики будет безвозвратно утеряна.

      Поэтому я стараюсь избегать на практике debug с остановкой.

      «Debugging JavaScript with breakpoints is bad, mmkay?» © Mr. Mackey, South Park

      Однако: breakpoint есть breakpoint, и если вы исследуете ну очень запущенный баг — тут без остановки не обойтись (надо будет сделать watch текущим переменным и т.д.)

      «Правильный» debug

      Пример №1

      JavaScript показал ошибку. Надо понять — что к чему.
      Включаем в debugger’е режим «Break On Error»:

      Как открыть отладку в браузере

      Воспроизводим ошибку снова. JavaScript останавливается. Видим место ошибки, делаем watch и точно определяем, в чём же дело.

      Пример №2

      CASE:
      JavaScript не показал ошибку. Но вы знаете, что она есть (как суслик). Да, такое иногда бывает.

      CASE:
      Надо просто продебажить некий код. Скажем, посмотреть, что происходит по нажатию кнопки или после AJAX-загрузки данных.

      Тут сложней — надо найти, с чего начать.

      Немного искусства

      // условная остановка
      if (allowBreakpoints == true )
      debugger;

      Конечно данный способ не идеален. Бывает, что даёт промашки. Но это хороший способ, мне он сильно помагает в работе.

      Так, значит место в коде нашли, бряку поставили. Если не хочется (или просто нельзя) изменять исходный код — можно вместо ключевого слова debugger поставить brakepoint в средстве отладки.

      Пример №3

      Тот же случай: надо продебажить некий код. Скажем, посмотреть, что происходит по нажатию кнопки или после AJAX-загрузки данных. Но в этот раз мы не можем тормозить поток JavaScript по описанным мной причинам.

      CASE UNO

      variable_to_watch — объект, который изменился с момента вывода в консоль. А хочется увидить его состояние именно на момент вызова.

      CASE DUO

      Нет консоли? Пишем в адресной строке: javascript:alert(temp_var.objMethod()); void 0;

      Пример №4

      Ещё один пример. Возможно, немного странный. Хочется продебажить метод 3d-party-framework’а (например, ExtJS), но вот беда — нельзя тормозить JavaScript и нет доступа к исходному коду (правда странный пример? 🙂

      Что же делать? Я делаю так:

      Создаём файл с патчем: my-ext-patch.js, и подключаем его после ext-all.js
      Внутри пишем что-то вроде:

      Ext.form.Form.render = function (container) < // Wrap'им метод
      // А вот и дебаг
      console.log(container);

      // Возможны варианты:
      // console.dir(container);
      // console.log(window.t = container);
      // debugger;

      Извращение? Возможно. Но мне нравится >:)

      Эпилог

      Источник

      Как дебажить фронтенд и бекенд: пошаговая инструкция

      В этом посте мы научимся дебажить JavaScript на фронт- и бекенде с помощью Chrome DevTools и VS Code.

      Ловим баги на фронтенде (JavaScript, Angular)

      Очень много сервисов сейчас позволяют дебажить код над фронтенде. Chrome DevTools и Firefox Developer Tools среди них самые популярные, но и в других браузерах тоже есть свои тулзы. Мы будем использовать Chrome DevTools для примеров.

      Дебажим JavaScript

      Откровенно говоря, отладка кода может занимать много времени. Особенно, если использовать такие простые команды как console.log() или window.alert().

      Нужно писать, а потом удалять дополнительный код, а иногда эти команды все равно попадают в коммит (даже если вы думали, что все их забрали). А если при этом использовать линты (статические отладчики), то команды console или alert будут подсвечиваться в коде.

      И на этом моменте в игру вступает Chrome DevTools, позволяя нам дебажить код без утомительных команд. Среди фишек этой тулзы, редактирование CSS и HTML, тестирование сети и проверка скорости сайта — наши любимые.

      Чтобы на практике познакомиться с этой тулзой, давайте создадим простенькую страничку на JavaScript с getData() методом. Этот метод будет просто собирать данные с поля ввода, создавать DOM элемент с dataSpan ID и добавлять значение с поля ввода в этот элемент.

      Вот как наша страничка будет выглядеть:

      Как открыть отладку в браузере
      В JavaScript:

      Как открыть отладку в браузере

      Сохраним ее как app.js.

      Вот как наша страничка будет выглядеть в браузере:

      Как открыть отладку в браузере

      Чтобы проверить как метод работает до того, как сохранять данные в dataSpan, можно использовать старомодные console.log(data) или window.alert(data). Вот что мы увидим запустив файл в VS Code:

      Как открыть отладку в браузере

      Это самый примитивный подход.

      Вместо этого, мы используем брейкпоинты (точки останова) вChrome DevTools чтобы убедиться, что все работает как надо.

      Брейкпоинт — это строка кода, на которой мы хотим приостановить прогонку кода, чтобы изучить как он работает (или не работает).

      Возвращаясь к примеру, давайте запустим страницу в Google Chrome и сделаем следующее:

      Как открыть отладку в браузере

      Открыв панель инструментов разработчика, давайте приостановим код на брейкпоинте:

      Управление интервалами выполнения кода

      Поставив брейкпоинт, ми приостанавливаем исполнение функции на нем. Поэтому нам нужно будет продолжить построчное выполнение кода, чтобы изучить изменения нашей переменной.
      В верхнем левом углу панели JavaScript Debugging находятся основные команды прогонки брейкпоинтов:

      Как открыть отладку в браузере

      Первая кнопка, Resume script execution () продолжит выполнение кода до конца или до следующего брейкпоинта.

      Давайте введем hello world в поле ввода. В строку добавится data = “hello world”. Теперь давайте кликнем на кнопку Step over next function call ().

      Как открыть отладку в браузере

      Выбранная строка с брейкпоинтом будет выполнена и дебаггер выберет следующую. Откройте вкладку Scope чтобы посмотреть значение переменной data. Оно изменилось на “hello world”, которое мы ввели ранее и просто показывает значение нашей переменной на конкретной строке кода. Кликните Step over next function call еще раз чтобы выполнить выбранный метод и перейти на следующую строку.

      Если обновить страницу, значение переменной out также обновится в DOM элементе. Чтобы посмотреть значение переменной, можно кликнуть на Expand () слева от нее. Если же еще раз кликнуть Step over next function call, то текст “hello world” еще раз добавится в dataSpan.

      Более сложная отладка

      Предположим, что мы выполняем функцию посложнее, которую точно не помешает отладить. К примеру, мы хотим, чтобы пользователи вводили числа через пробел. Функция затем будет обрабатывать и выводить эти числа, их сумму, и результат умножения.

      Как открыть отладку в браузере

      Для этого мы обновим код app.js как на скриншоте выше. Обновляем страницу и приступаем непосредственно к дебаггингу.

      Как открыть отладку в браузере

      Как еще можно поставить брейкпоинты

      В большинстве случаев, ваш код намного длиннее и, вполне возможно, конкатенирован в одну строку. К примеру, предположим, что у вас 1000 строк кода. В этом случае, ставить брейкпоинты, кликая на номера строк каждый раз, не кажется такой уж отличной идеей, не правда ли?

      Для этого в DevTools есть классный инструмент для установки брейкпоинтов на разные типы интеракции с браузером. На панели JavaScript Debugging, кликните Event Listener Breakpoints чтобы посмотреть доступные категории.

      Как открыть отладку в браузере

      Как вы видите, можно поставить брейкпоинт на событие Mouse > click (клик мышкой) в любом месте нашего кода. Это означает, что, если кликнуть Get Input Data, выполнение кода остановится на событии onclick. И не нужно вручную ничего добавлять.

      Как открыть отладку в браузере

      Клик на Step over next function call будет последовательно вести нас через код, используемый чтобы обработать клики.

      Используя Event Listener Breakpoints, можно поставить брейкпоинты на кучу разных типов событий, таких как Keyboard, Touch, и XHR.

      Ключевое слово “debugger”

      Если ввести debugger в любом месте кода, Chrome DevTools приостановит выполнение кода на этой строке и подсветит ее также, как и брейкпоинты. Можно использовать этот инструмент чтобы дебажить JavaScript в Chrome или других браузерах. Только не забудьте удалить его, когда закончите отладку.

      Как открыть отладку в браузере

      Код на скриншоте выше остановится на строке, которая содержит ключевое слово ​debugger и автоматически запустит Chrome DevTools. По сути, это то же самое, что и поставить брейкпоинт на эту строку. Также выполнением кода можно управлять с помощью кнопок ​Step into next function call и Step over next function call.

      Выжимка

      В начале мы рассмотрели команды console.log() и window.alert() и поняли, что они не слишком удобны. Нужно было их часто использовать по всему коду, что могло сделать код «тяжелее» и медленнее, если бы мы забыли их удалить перед коммитом.

      Когда количество строк растет, Chrome Developer Tools намного более эффективен для отлова багов и оценки работы в целом.

      Дебажим Angular

      Легче всего отладить код Angular — использовать Visual Studio Code (VS Code). Чтобы начать дебаггинг, вам нужно будет установить расширение Debugger для Chrome:

      Точно так же, как и в DevTools, кликните на номер строки в app.component.ts. Строка с брейкпоинтом подсветится красным кружком (слева от номера строки).

      Как открыть отладку в браузере

      Настраиваем дебаггер

      Для начала, нам нужно будет настроить дебаггер:

      1. С File Explorer перейдите на Debug вкладку.
      Также можно использовать для этого Ctrl+Shift+D.

      2. Кликните на иконку Settings чтобы создать launch.json.
      Это файл с настройками, который мы будем использовать.

      4. Запустите этот файл.

      5. Чтобы использовать этот файл для наших целей, в методе url замените localhost порт с 8080 на 4200.

      6. Сохраните изменения.

      Вот как должен выглядеть файл:

      Как открыть отладку в браузере

      7. Нажмите F5 или кликните кнопку Start Debugging чтобы запустить Debugger.

      8. Запустите Chrome.

      9. Чтобы приостановить выполнение кода на брейкпоинте, обновите страницу.

      Как открыть отладку в браузере

      Чтобы последовательно просмотреть выполнение кода и как меняются переменные, используйте клавишу F10.

      Как открыть отладку в браузере

      README

      В расширении Debugger для Chrome есть множество дополнительных конфигураций, работа з source maps и устранений всяческих неполадок. Чтобы просмотреть их прямо в VS Code, кликните на расширение и выберите вкладку Details.

      Как открыть отладку в браузере

      Отладка бекенда (Node.js)

      Здесь вы узнаете как дебажить код на Node.js. Вот самые распространённые подходы:

      • Используя Chrome DevTools
      На даный момент, это наш любимый подход.

      • Используя IDE-шки типаVisual Studio Code, Visual Studio, WebStorm, и т.д.

      Для примеров мы будем использовать VS Code и Chrome DevTools.

      Chrome и Node.js используют тот же JavaScript-движок, Google V8, и это значит, что для бекенда мы будем использовать те же инструменты, что и для фронта.

      1. Запустите свой проект в VS Code.

      2. Перейдите на вкладку Console.

      4. Проигнорируйте предлагаемый “chrome-devtools://…” URL (существует метод получше).

      Как открыть отладку в браузере

      5. Запустите Chrome и введите “about:inspect”.

      Это перенаправит вас на вкладку Devices на DevTools.

      6. Кликните линк Open dedicated DevTools for Node.

      Как открыть отладку в браузере

      Процесс отладки такой же, как и для фронтенда, то есть с использованием брейкпоинтов. На самом деле, очень удобно то, что не нужно переключаться на IDE. Таким образом, можно дебажить и фронт- и бекенд на одном интерфейсе.

      Спасибо за чтение и надеемся, что вам понравился этот пост. Подписывайтесь на обновления — у нас в рукавах еще полно полезностей 🙂

      Источник

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *