В моей практике очень часто приходится искать, место в коде, где закралась ошибка. Обычно для обнаружения ошибки я использую 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');
}
Комментарии и поправки горячо приветствуются.
Пример работы объекта.