JS: Отслеживаем работу кода

May 21, 2010 17:38

В моей практике очень часто приходится искать, место в коде, где закралась ошибка. Обычно для обнаружения ошибки я использую alert с выводом интересующего значения. Однако у него есть недостатки:
При выводе сообщения происходит блокировка всего окна браузера. А если alert стоит в бесконечном цикле, то приходится прибегать к остановке всего браузера.
Еще минус в невозможности просмотреть уже закрытое сообщение.

Для решения этой задачи буквально несколько дней назад я придумал оригинальный велосипед способ.
Написал объект который собирает данные и складывает их в отладочную консоль.

Подобная штука есть в Firefox с установленным Firebug, где можно из объекта console вызвать метод log и отправить сообщение в собственную отладочную консоль.

Этот метод относительно кроссбраузерный (Chrome/Safari, Firefox, Opera, IE8).
В IE6/IE7 по-любому не работает, хотя консоль создается.

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

Шаг 1. Создаем консоль.
debuglog.init();

Шаг 2. Записываем туда сообщение.
debuglog.nlog('test author', 'test message');

Шаг 3. Записываем сообщение из функции (имя функции он получит сам):
function mytest() {
    debuglog.slog(arguments.callee, 'function go!');
}

Шаг 4. Сообщение из анонимной функции:
var mytest2 = function () {
    debuglog.slog(arguments.callee, 'anonymouse function');
}

Комментарии и поправки горячо приветствуются.
Пример работы объекта.

browser, js, debug, log, javascript

Previous post Next post
Up