А АSaturday, 5 November 2011

Отладка web-приложений в Firefox

   Ну что ж, вчера познакомились с отладкой в Internet Explorer Developer Tools, входящего в комплект IE8. А сегодня тоже самое пройдем с Firebug для браузера Firefox. Последняя часть 19-й лекции.

19.2.3. Отладка и профилирование в Firebug

   Firebug – расширение для браузера Firefox, являющееся консолью, отладчиком, и DOM-инспектором JavaScript, DHTML, CSS, XMLHttpRequest. Firebug показывает в консоли вызвавшую ошибку функцию, стек вызовов функций, вызвавших эту ошибку. Он предупреждает, что CSS-правило или JavaScript-метод/свойство, которое вы пытаетесь использовать, не существует.
   Основные возможности Firebug:
• Удобный просмотр HTML-кода страницы. Функция Inspect позволяет точно определить местонахождение тега того или иного элемента, просмотреть все "привязанные" к нему свойства и стили.
• Редактирование HTML и CSS прямо в браузере. Можно изменять атрибуты тегов и значения свойств для того, чтобы пронаблюдать изменения. Удобно для тех случаев, когда нужно путём экспериментов найти наиболее приемлемый вариант оформления создаваемой страницы.
o Отладка JavaScript.
o Отслеживание процесса загрузки страницы.
o Просмотр HTTP-заголовков обычных и AJAX-запросов.
Firebug вызывается также при нажатии на клавишу F12 или при нажатии на изображение "жука" в статус баре браузера (рис. 19.12).

image001

Рис. 19.12. "Жук" в статус баре браузера

При нажатии на Control+F12 (или Command+F12 для Mac) Firebug откроется в отдельном окне (рис. 19.13).

image002

Рис. 19.13. FireBug в отдельном окне

Firebug, как и Developer Tools, можно "прикреплять" к инспектируемой странице (рис. 19.14).

image003


Рис. 19.14. FireBug в виде панели браузера

19.2.3.1. Отладка HTML и CSS

В Firefox есть окно "View Source", но оно не покажет, как HTML выглядит на самом деле, после трансформаций JavaScript. Вкладка HTML в Firebug показывает, как HTML выглядит в данный момент времени.
В дополнение, вкладки справа позволят выяснить свойства индивидуальных элементов, включая правила CSS, которые их стилизуют, размер и позицию в пикселях, и свойства DOM, к которым есть доступ из JavaScript.
В любом сайте, основанном на JavaScript, HTML-элементы все время создаются, удаляются и изменяются. Firebug подсвечивает изменения HTML желтым цветом, как только они происходят.
Firebug дает возможность делать изменения в HTML и смотреть, как они тут же отражаются на странице. Можно создавать, удалять или редактировать HTML-атрибуты и текст, просто кликая на них и табом перемещаясь от одного к другому (рис. 19.15). Изменения применяются мгновенно, в момент печати.

image004

Рис. 19.15. Изменение HTML-атрибутов в FireBug
Помимо этого Firebug позволяет редактировать HTML-исходник любого элемента, нажав правой кнопкой на элементе и выбрав "Edit HTML..." в меню.
При помощи функции "Inspect" в панели Firebug можно, выделив мышью по странице элемент, увидеть его HTML и CSS (рис. 19.16).

image005


Рис. 19.16. Выделение элемента на странице с помощью FireBug
Firebug предоставляет инструменты для отладки CSS. Firebug показывает правила, которые работают в CSS, стилизуя каждый элемент (рис. 19.17). Правила отсортированы в восходящем порядке, и overridden-свойства вычеркнуты. У каждого правила есть ссылка на файл, из которого оно пришло.

image006


Рис. 19.17. Выделение элемента на странице с помощью FireBug
Редактирование CSS происходит также как и HTML (рис. 19.18). Во время печати, изменения тут же применяются к странице.

image007

Рис. 19.18. Редактирование CSS с помощью FireBug
При желании можно добавить новое CSS свойство (рис. 19.19).

image008

Рис. 19.19. Добавление CSS-свойства с помощью FireBug
Можно также отключать некоторые CSS свойства (рис. 19.20).

image009

Рис. 19.20. Отключение CSS-свойства с помощью FireBug
Вкладка "Макет" (Layout) визуально разбивает каждый контейнер в контейнерной модели и дает ширину каждого ребра (рис. 19.21). Дополнительно, она показывает ширину и высоту внутреннего контейнера, и сдвиги по x и y относительно родителя.
image010


Рис. 19.21. Вкладка "Макет" в FireBug
Двигая мышью по контейнерам во вкладке Layout, на странице появляются линейки и направляющие (рис. 19.22).


image011

Рис. 19.22. Линейки и направляющие на HTML-странице
Линейки окружают родителя текущего элемента, относительно которого заданы CSS-свойства left, top, bottom и right. Направляющие касаются каждого края элемента и являются отличным способом показать с точностью до пикселя, насколько точно сведены края нескольких контейнеров. Как и всякую другую вкладку Firebug, вкладку Layout можно редактировать.

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


Рис. 19.23. Выбор скриптового файла в FireBug
Firebug позволяет устанавливать брейкпойнты, которые говорят отладчику приостановить выполнение скрипта, когда он дойдет до определенной строки. Пока выполнение приостановлено, можно смотреть значения любых переменных и инспектировать объекты.
Чтобы установить брейкпойнт, необходимо кликнуть на номере любой строки, и там появится красная точка, обозначающая, что брейкпойнт установлен.
Firebug позволяет Вам устанавливать "условные" брейпкойнты (рис. 19.24). Они проверяют выражение, которое должно быть истинным, чтобы брейкпойнт сработал.

image013

Рис. 19.24. Точки останова в FireBug
Когда отладчик приостановил выполнение, можно продолжать скрипт по одному шагу. Это позволяет четко видеть, как выполнение конкретной строчки влияет на переменные и объекты.
Также Firebug дает возможность заходить в отладчик автоматически, когда происходит ошибка (рис. 19.25).
image014


Рис. 19.25. Отладчик в FireBug
Когда отладчик приостанавливает выполнение, Firebug показывает стек вызова, т.е. набор вложенных вызовов функций, которые сейчас запущены и ждут возврата. Стек вызовов представлен компактной полоской кнопок в панели, каждая – с именем функции в стеке.

19.2.3.3. Профилирование
Чтобы использовать профилировщик, необходимо зайти во вкладку Console и кликнуть кнопку "Profile". После этого можно увидеть детальный отчет, который показывает, какие функции были вызваны и сколько времени заняла каждая (рис. 19.26).

image015

Рис. 19.26. Профилирование в FireBug
Помимо этого у каждого файла во вкладке "Сеть" (Net) есть полоска, которая показывает, когда началась и закончилась загрузка, относительно других файлов. Полоски могут показать, например, что JavaScript файлы загружаются по очереди, и никогда – параллельно. Это поможет оптимизировать порядок файлов на странице, чтобы пользователь проводил меньше времени, ожидая показа страницы. Также в панели Net можно фильтровать список по типам файлов (JavaScript, картинки и др.).
image016


Рис. 19.27. Вкладка "Сеть" в FireBug
Firebug обозначает запросы, которые загружаются из кэша браузера вместо сети, светло-серым, так что можно легко заметить, насколько эффективно сайт использует кэш для оптимизации времени загрузки страницы.
Плюс ко всему Firebug показывает каждый XMLHttpRequest (например, используемые AJAX), и во вкладке Net, и в Console, вместе с текстом, который был отправлен и получен (рис. 19.28).

image017

Рис. 19.28. XMLHttpRequest в FireBug

   Вот пожалуй и все на сегодня. Не стану расставлять приоритеты ибо замечено, что каждый веб-разработчик для себя выбирает СВОЙ браузер. Даже когда тестирует кроссбраузерность. Есть и первый, и второй, а любит юзать один. Так сложилось. Например заставить меня поменять браузер надо очень постараться. Хотя и не исключаю этого. А простого юзера заставить это сделать еще труднее – привычка знаете ли.)

Удобных Вам инструментов в работе !

No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное