Недавно пришлось менять дизайн на одном из старых сайтов, где для отрисовки элементов использовался javascript. В частности там есть такой момент. Поступающие данные должны с помощью javascript добавляться в таблицу. При этом у каждого элемента (ячейки, строки ) и т.п. были какие-то аттрибуты. Рисовались такие элементы стандартными DOM функциями (createElement, appendChild и т.п.). При смене дизайна пришлось лезть в javascript код (ставить другие стили и т.п.). Думаю знакомая ситуация.
Естественно такая ситуация мне не понравилась и пришла в голову идея обеспечить смену дизайна без изменения javascript'а. Для этого я попробовал создать шаблон в html, а затем с помощью cloneNode попробовать его вставить в нужное место и заменить метки на данные. Вот что из этого получилось: www.pastebin.ca/931592.
Теперь представим что дизайн меняется:
www.pastebin.ca/931593
Если отображение достаточно сложное, то такой подход упрощает поддержку.
Минус — возможные потери скорости.
Для снижения потерь, ограничивается набор аттрибутов, в которых происходит замена меток. Этот набор периодически придется уточнять.
ps. Протестировал в IE6 и Firefox2
Естественно такая ситуация мне не понравилась и пришла в голову идея обеспечить смену дизайна без изменения javascript'а. Для этого я попробовал создать шаблон в html, а затем с помощью cloneNode попробовать его вставить в нужное место и заменить метки на данные. Вот что из этого получилось: www.pastebin.ca/931592.
Теперь представим что дизайн меняется:
www.pastebin.ca/931593
Если отображение достаточно сложное, то такой подход упрощает поддержку.
Минус — возможные потери скорости.
Для снижения потерь, ограничивается набор аттрибутов, в которых происходит замена меток. Этот набор периодически придется уточнять.
ps. Протестировал в IE6 и Firefox2