Javascript.RU

Дамп объектов или сделаем жизнь проще

Зачастую при отладке js-скриптов нам нужно получить развёрнутый дамп того или иного объекта. Не менее полезной является возможность навигации по дереву DOM, свойствам объектов и т.д. Обычно такой функционал на себя берут плагины к браузерам, вроде firebug для лисы. Но браузеров много и их кол-во постоянно растёт. Написание кроссбраузерных скриптов становится всё менее тривиальной задачей. Поэтому я попробовал частично решить проблему через скрипт, способный выводить дамп объектов в виде topmost div-ов с синтаксической подсветкой типов, возможностью навигации практически во всех современных браузерах. Для пущего удобства в движок был вставлен код, выводящий стёк вызовов с аргументами функций.

Скрипт (Dump.js) использует глобальную переменную Uses как контейнер модулей, одним из которых он и является. Доступ к нему можно получить обращаясь к Uses.Dump. Основной функцией, необходимой в повседневной работе является Dump().

Uses.Dump.Dump = function (Obj, ObjName);
// Obj - объект для дампа
// ObjName - имя объекта, которое будет показано в верхней части панели

Скрипт позволяет делать множество снимков (дампов), каждый из которых имеет всё больший приоритет topmost на экране. Навигация между ними осуществляется посредством select-a, который привязан к левому верхнему углу экрана. Пример вызова функции Dump на тестовом объекте: Смотреть

Слева от каждого элемента расположена пара кнопок "O" и "V", позволяющих просмотреть содержимое дочернего объекта/свойства в одном из двух режимов: "O" - режим объекта, "V" - режим значения. Так, просмотр Test.obj в объектном режиме отобразит список свойств объекта, а в режиме значения строку: "object ТипОбъекта".

Просмотр функции выводит её код с учётом форматирования. Все особые символы экранируются.

Исходный код скрипта (13.4 КБ) прилагается.

Прикрепленный файлРазмер
Dump.js_.txt13.4 кб
+2

Автор: Гость (не зарегистрирован), дата: 9 ноября, 2009 - 16:17
#permalink

Дампер не работает. зачем выкладывать то, что не функционирует?

в ФФ скрипт зависает, через какое-то время предлагает остановить


Автор: Berserker, дата: 8 июня, 2010 - 22:51
#permalink

Проверено на всех последних версиях Оперы, Лисы и Хрома, что у меня стоят. Не могли бы вы подробнее описать, что делаете?
Пример: http://picfu.net/852614/original.png


Автор: optimizm (не зарегистрирован), дата: 27 мая, 2011 - 11:25
#permalink

Полезная штуковина. Спасибо! Оформлена только жутко, ну ничего, это можно подкрутить:)


Автор: Гость, дата: 29 августа, 2011 - 14:25
#permalink

Лишняя работа.
Все актуальные браузеры имеют встроенные средства отладки, либо легко добываемые плагины.
Работаю JavaScript-разработчиком, и абсолютно уверенно говорю, потребности в самодельных средствах не существует.
Если только вы не намерены писать что-то, более мощное, чем FireBug и его аналоги.


Автор: Гость (не зарегистрирован), дата: 21 мая, 2013 - 13:21
#permalink

JavaScript используется не только в браузерах. Бывает, что единственной доступной функцией для отладки является запись строки в лог. В таких случаях функция дампа весьма полезна.


 
Поиск по сайту
Другие записи этого автора
Berserker
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние темы на форуме
Forum