Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / innerText и relayout / 7 сообщений из 7, страница 1 из 1
15.12.2012, 16:34
    #38080578
Bond__JamesBond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
Реализуем RICH клиента под веб. Необходимо сделать грид, который обновляется при изменении какого-то поля. Сначала использовали GWT'ый grid, который просто генерит внутреннюю html'ку и заменяет innerHtml у grid'а. Проблема в том что на таблице 30 колонок на 80 время затрачиваемое на parse \ recalculate style \ и layout было очень значительное. Тогда попробовали использовать другой подход, при обновлении данных бежали по DOM'у (в первый раз он ессно создавался), и меняли "значение" ячеек. Делали это через установку innerText (grid соответственно набор tr \ td и внутри обертка из div, которому и устанавливается innerText). Все стало лучше, но не настолько насколько ожидалось. В частности например когда обновляется одна колонка, время на layout (судя по хромовскому профайлеру), почему-то зависит от количества колонок. Хотя в стилях каждой ячейки стоит overflow:hidden, и браузер по идее должен догадаться что ничего relayout'ить не надо (что еще забавнее хром показывает что relayout'ся вся форма). Пробовали через input и value тоже не помогает.

Может кто-нибудь сталкивался как быстро обновить значения в большом гриде (в идеале грубо говоря в 30x100 уложиться 30мс) и избежать ненужного relayout'а.
...
Рейтинг: 0 / 0
15.12.2012, 21:46
    #38080721
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
Bond__JamesBondПроблема в том что на таблице 30 колонок на 80 время затрачиваемое на parse \ recalculate style \ и layout было очень значительноеда ладно, подумаешь 100 миллисекунд на обновление всего грида
это не значительно
обычный юзер даже и не заметит
...
Рейтинг: 0 / 0
15.12.2012, 23:30
    #38080774
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
...
Рейтинг: 0 / 0
16.12.2012, 00:30
    #38080827
Bond__JamesBond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
Паганель,

Вообще считается что 100 мс и выше, граница выше которой интерфейс начинает "подвисать", что реально напрягает при работе.
...
Рейтинг: 0 / 0
16.12.2012, 00:32
    #38080828
Bond__JamesBond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
skyANA,

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

ЗЫ: Кстати возникла идея, надо глянуть как это в google docs при редактировании ячейки таблицы делается...
...
Рейтинг: 0 / 0
16.12.2012, 10:01
    #38080898
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
...
Рейтинг: 0 / 0
16.12.2012, 16:18
    #38081075
stopkran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
innerText и relayout
Bond__JamesBondЧитал эту статью, но там сформулированный мой вопрос никак не затрагивается.


Там этого есть: "клонируйте ваши узлы, изменяйте копии, а затем заменяйте ими оригиналы". Имеет прямое отношение к скорости отрисовки. По моему опыту, это единственная эффективная схема - все остальные ухищрения (типа innerHTML vs DOM) влияют на скорость значительно меньше.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / innerText и relayout / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]