|
|
|
innerText и relayout
|
|||
|---|---|---|---|
|
#18+
Реализуем 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'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 16:34 |
|
||
|
innerText и relayout
|
|||
|---|---|---|---|
|
#18+
Bond__JamesBondПроблема в том что на таблице 30 колонок на 80 время затрачиваемое на parse \ recalculate style \ и layout было очень значительноеда ладно, подумаешь 100 миллисекунд на обновление всего грида это не значительно обычный юзер даже и не заметит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 21:46 |
|
||
|
innerText и relayout
|
|||
|---|---|---|---|
|
#18+
Паганель, Вообще считается что 100 мс и выше, граница выше которой интерфейс начинает "подвисать", что реально напрягает при работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 00:30 |
|
||
|
innerText и relayout
|
|||
|---|---|---|---|
|
#18+
skyANA, Читал эту статью, но там сформулированный мой вопрос никак не затрагивается. ЗЫ: Кстати возникла идея, надо глянуть как это в google docs при редактировании ячейки таблицы делается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 00:32 |
|
||
|
innerText и relayout
|
|||
|---|---|---|---|
|
#18+
Bond__JamesBondЧитал эту статью, но там сформулированный мой вопрос никак не затрагивается. Там этого есть: "клонируйте ваши узлы, изменяйте копии, а затем заменяйте ими оригиналы". Имеет прямое отношение к скорости отрисовки. По моему опыту, это единственная эффективная схема - все остальные ухищрения (типа innerHTML vs DOM) влияют на скорость значительно меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 16:18 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=147&tid=1448969]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 362ms |

| 0 / 0 |
