Отладка и профилирование JavaScript/Ajax

Содержание

Слайд 2

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

Отладка — этап разработки компьютерной программы, на котором обнаруживают, локализуют

Отладка и профилирование Отладка — этап разработки компьютерной программы, на котором обнаруживают,
и устраняют ошибки.
Профилирование — сбор характеристик работы программы. Инструмент, используемый для анализа работы называют профайлером.
ru.wikipedia.org

Слайд 3

Отладка JavaScript’а: история

window.alert() vs. console.log()
debugger;
Изначально только в JScript
Теперь в Gecko (Firebug /

Отладка JavaScript’а: история window.alert() vs. console.log() debugger; Изначально только в JScript Теперь
Venkmen)
opera.postError();

Слайд 4

Console API

Раньше только в Firebug
Методы:
console.log(object[, object, ...])
console.debug(object[, object, ...])
console.info(object[, object, ...]) /

Console API Раньше только в Firebug Методы: console.log(object[, object, ...]) console.debug(object[, object,
warn / error
console.assert(expression[, object, ...])
console.dir(object)
console.dirxml(node)
console.count([title])
console.time(name) + console.timeEnd(name)
console.profile([title]) + console.profileEnd()

Слайд 5

Отладка в браузерах

Internet Explorer
Mozilla/Firefox
Opera
Safari

Отладка в браузерах Internet Explorer Mozilla/Firefox Opera Safari

Слайд 6

Отладка в Internet Explorer

Microsoft Script Debugger
Бесплатен, но требует Windows Genuine
Надстройка Companion.JS +

Отладка в Internet Explorer Microsoft Script Debugger Бесплатен, но требует Windows Genuine
DebugBar
Microsoft Script Editor
Вместе с Microsoft Office 2000+
Особенность: attach to process
Visual Studio/Visual Web Developer
У VWD нетривиальный процесс отладки

Слайд 7

Включение отладки в IE

Включение отладки в IE

Слайд 8

Companion.JS + DebugBar

Companion.JS + DebugBar

Слайд 9

Отладка в Mozilla/Firefox

Firebug! Firebug! Firebug!
Console API
Надстройка YSlow (включая JSLint)
Всё как полагается: watch,

Отладка в Mozilla/Firefox Firebug! Firebug! Firebug! Console API Надстройка YSlow (включая JSLint)
breakpoints, trace, step into, step out, step over и т. д.
Отладчик Venkman
Монструозен

Слайд 10

Firebug & YSlow

Firebug & YSlow

Слайд 11

Отладка в Opera

JavaScript консоль
opera.postError()
НЕТ Console API
Отладчика НЕТ

Отладка в Opera JavaScript консоль opera.postError() НЕТ Console API Отладчика НЕТ

Слайд 12

Консоль в Opera

Консоль в Opera

Слайд 13

Отладка в Safari

JavaScript Debug
Mac OS X Terminal window: defaults write com.apple.Safari IncludeDebugMenu 1
Windows

Отладка в Safari JavaScript Debug Mac OS X Terminal window: defaults write
/…/Preferences.plist: IncludeDebugMenu
Из Console API только console.log()
Отладчик Drosera
Nightly builds

Слайд 14

Safari Debug

Safari Debug

Слайд 15

Кросс-браузерные консоли

Firebug Lite
Console API, частично
или F12
firebugx.js убирает ошибки при использовании

Кросс-браузерные консоли Firebug Lite Console API, частично или F12 firebugx.js убирает ошибки
Console API
Faux Console
console.log() теперь везде
Jash: JavaScript Shell
Своя консоль

Слайд 16

Универсальный лог

if (window.console && console.log) console.log('foobar'); // FF (Firebug), Safari (Debug mode),

Универсальный лог if (window.console && console.log) console.log('foobar'); // FF (Firebug), Safari (Debug
IE (Firebug Lite, Faux Console или Companion.JS + Microsoft Script Debugger)
else if (window.opera && opera.postError) opera.postError('foobar'); // Opera
else alert('foobar');

Слайд 17

Отладка в IDE

JavaScript Debugger в Dreamweaver 4
В DW MX 2004 убрали :-(
Visual

Отладка в IDE JavaScript Debugger в Dreamweaver 4 В DW MX 2004
Studio/Visual Web Developer
Привязка к .Net-технологиям
AJAX Toolkit Framework для Eclipse

Слайд 18

Dev, QA и Prod отладка

Активация в production режима отладки и логирования через

Dev, QA и Prod отладка Активация в production режима отладки и логирования
GET-параметр
?debug=1
Запись в cookie
Глобальная переменная в коде, устанавливается на сервере в зависимости от окружения
var DEBUG = true;

Слайд 19

Профилирование кода

Firebug! Firebug! Firebug!
Время выполнения каждой функции
В Firebug Lite профилирования НЕТ
JsLex
Кросс-браузерный, но

Профилирование кода Firebug! Firebug! Firebug! Время выполнения каждой функции В Firebug Lite
нетривиальный

Слайд 20

Профилирование в Firebug

Профилирование в Firebug
Имя файла: Отладка-и-профилирование-JavaScript/Ajax.pptx
Количество просмотров: 180
Количество скачиваний: 0