Главная

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).


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

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


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

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



Рис. 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). Изменения применяются мгновенно, в момент печати.


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



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



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


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


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


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


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



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

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


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


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


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

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


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


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


Рис. 19.28. XMLHttpRequest в FireBug

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

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

No comments:

Post a Comment

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