Как стать автором
Обновить

Комментарии 7

У нас использование TimeField приводило к зависанию не только Chrome, но и IE 9, 10. Причем в обоих браузерах возникала сильная утечка памяти. Код компонента не правили, так как давно намечался переход поддерживаемых систем на более новую версию Ext. Перенесли приложение на ExtJS 4 — зависание прекратилось.
Наше веб-приложение так просто не перенести, потому пришлось создавать патч. В версиях 4+ этот компонент сильно изменился, но цикл и там находил. Вот кусок из Ext-picker-Time:

createStore: function() {
        var me = this,
            utilDate = Ext.Date,
            times = [],
            min = me.absMin,
            max = me.absMax;

        while(min <= max){
            times.push({
                disp: utilDate.dateFormat(min, me.format),
                date: min
            });
            min = utilDate.add(min, 'mi', me.increment);
        }

        return new Ext.data.Store({
            model: me.modelType,
            autoDestroy: true,
            data: times
        });
    }
А-а-а-а! Ты сделал всю мою работу на сегодня!
Рад, что помогло. Решение должно сработать для компонентов, расширяемых этот основной Ext.form.TimeField, такие как: Ext.ux.form.DateTimeField, Ext.ux.form.DateField.
А как нашли компонент, который приводил к зависанию?
Я вот, можно сказать, почти случайно — хром сразу умирал почти, а вот FF предлагал запустить отладку, открывал свой отладчик, и ставил точку останова на одну из строк как раз в цикле, после чего почти сразу зависал. Вспомнил о Вашем посте, решил попробовать и все получилось.
Изначально мой коллега отлаживал код (исходник) «по кускам» (удалял, вставлял вывод в консоль), так он добрался до компонента. Я же через Chrome указал точку останова в «Event Listener Breakpoints» (я выбирал DOM Mutation), потом уже в коде, далее как обычно.
Забыл указать, что сам компонент отлаживал с помощью Ext.override (у нас приложение собирается, потому сложно подключать файл ext-all-debug.js).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории