Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объект для замены отладочного alert'а 
:(
    Опции темы
ksnk
Дата 16.12.2007, 11:08 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Вот, написалось как-то для себя, немного подделал, добавил комментарии. Сам пользуюсь.
Написал после того, как пришлось несколько раз тремя кнопками убивать FF при отладке чего-то подобного:
for(i=0;i<1000;i++) {... alert(MyValue)...}

Код

/**
 * отладка - хранитель отладочной информации и функций ее вывода
 * в окончательной версии должна быть вымарана...
 *  P.S. Окончательные версии бывают ?!?
 *  @example debug.dump(arguments,'Парам:').alert() - вывод информации alert'ом
 *  @example debug.trace('xxx') ; ... debug.trace(yyy);... debug.wait();
 *    - выплюнуть информацию в элемент с ID'ом 'debug'
 *  @alias debug
 */
debug={
    s:[],
    /**
     * рекурсивный обход объекта на требуемый уровень вложенности
     *  заголовок, приписываемый спереди,объект, который обходим,уровень.
     *  Если уровень=0 - каждое поле-объект еще обходим
     * @alias tostr
     * @param {Object} tit
     * @param {Object} o
     * @param {Object} lev
     * @return string
     */
    tostr: function(tit,o,lev){
        var s=[]
        try{
            if (typeof(o) == 'undefined') {// нету параметра?
                s.push(tit);
            }else    if(o instanceof Array) {// массив ?
                s.push(tit+'['+o.toString()+']');
            }else    if(typeof (o)=='function') {// функция ? Не люблю FF-ные простыни... 
                s.push(tit+'(function)');  
            }else if ((typeof(o) == 'object')&&(lev>0)) {
                s.push(tit + '{');
                for (var i in o)
                    s.push(this.tostr(i + ':', o[i], lev - 1));
                s.push('}');
            } else
                s.push(tit + o);
        } catch (ex){
            s.push(typeof(o))
        }
        return s;
    },
    /**
     * вбросить в трассу распечатку объекта на 1 уровень
     * @alias dump
     * @param {Object} o
     * @param {Object} tit
     * @return {debug}
     */
    dump:function(o,tit) {
        return this.trace(this.tostr(tit||'',o,1).join("\t"));
    },
    /**
     * вбросить в трассу строку
     * @param {Object} s
     * @alias trace
     * @return {debug}
     */
    trace:function (s){
        if (this.s.length>100) new Error('Переполнение трассы');// типа - неча!
        this.s.push(s);
        return this;
    },
    /**
     * Забрать из трассы всю информацию и вывалить ее в виде строки
     * в качестве разделителя используется br
     * @alias get
     * @param {Object} br
     * @return string
     */
    get:function(br){
        if(!br)br='<br/>';
        var s=this.s.join(br);
        this.s=[];
        return s;
    },
    /**
     * вывалить результат в окно alert'а
     * @alias  alert
     * @return {debug}
     */
    alert:function(){
        alert(this.get('\n'));
        return this;
    },
    /**
     * вывалить результат в элемент с id'ом debug через 1 секунду после первого wait'а
     * @alias  wait
     * @return {debug}
     */
    wait:function(showid){
        this.showid=showid || 'debug';
        var th=this
        if(!this.waitto)
            this.waitto=setTimeout(function(){
                th.show();th.waitto=null;
            },1000)
        return this;
    },
    show:function(_id){
        _id=_id ||this.showid || 'debug';
        document.getElementById(_id).innerHTML=this.get('<br>')+document.getElementById(_id).innerHTML;
        return this;
    }
}


Это сообщение отредактировал(а) ksnk - 16.12.2007, 11:52


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
egao
Дата 17.12.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



у меня попроще smile

выглядит это виде стэка разноцветных панелек вверху окна.

Это сообщение отредактировал(а) egao - 17.12.2007, 08:59
PM MAIL   Вверх
ksnk
Дата 17.12.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



egao, Я бы усомнился в том, что это - попроще smile Такому алерту требуется жестко определенная и описаная структура этих самых панелек. Не говоря уже о собственных наворотах, которые в приводимый текст не включены ...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
egao
Дата 17.12.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



да нет там особой структуры. просто в тело документа нужно поместить пустой див с нужным идентификатором, да описать стили.
а навороты легко вырезаются...

Это сообщение отредактировал(а) egao - 17.12.2007, 21:03
PM MAIL   Вверх
ksnk
Дата 18.12.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(egao @  17.12.2007,  21:03 Найти цитируемый пост)
а навороты легко вырезаются

В скрипте по ссылке содержаться неизвестные науке функции top.$,$escapeHTML,$die.$bind. Хотелось бы посмотреть как можно "легко вырезать" эти навороты ;)... 
К тому-же, imho, оживление средств отладки - дело приложения , а не отладочного объекта. Так что навешивать обработку событий на окошко дожен бы не сам алерт...
У моего алерта полезность в том, что он может не особенно тормозя приложение собирать в цикле отладочную информацию и выдавать ее скопом. Если по каждому чиху в DOM'е сочинять новый div'чик, то некоторые вещи, связанные с отдладкой анимации, к примеру, будет провести очень непросто...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
cruelangel
Дата 18.12.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 12.9.2007

Репутация: 1
Всего: 8



отладка анимации - это, надеюсь, построение графика какой-то переменной? или же просто бесполезный вывод её в рилтайме?
PM MAIL   Вверх
ksnk
Дата 18.12.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(cruelangel @  18.12.2007,  17:24 Найти цитируемый пост)
отладка анимации - это, надеюсь, построение графика какой-то переменной? или же просто бесполезный вывод её в рилтайме? 

Не очень понимаю что эта фраза означает... smile
Анимация - это быстрое изменение объекта. Пример - Драг & Дроп... Ключевой момент - "быстрое". если при этом шерстить dom - быстрота, imho, исчезает.
- Строить "график" какой-либо переменной... Что этим хотелось сказать?   
- "Бесполезный вывод ее в рилтайме"... А это, случайно, не один из способов отладки?




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Leshak
Дата 17.11.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



предлагаю свою замену отладочному "alert"
по случаю попробовал привести к приличному виду, 
поэтому с интересом выслушаю все замечания и предложения

из известных мне недостатков - привязанность к JQuery.. 

демонстрационный пример
http://www.walks.ru/test/test_Out.html 


можно забрать zip-архивом

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема »


 




[ Время генерации скрипта: 0.1386 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.