innerHTML vs. DOM> Насчет компиляции скрипта во что-то там супер-эффективное - сказки, имхо. Любой вызов ядра требует хотя бы резолюции переменных, причем динамической. Откуда собственно "умный компилятор" знает, что я не назвал свою переменную "document", а свою функцию "appendChild"?
Вот и развили во мне комплекс неполноценности. Может хватить гнать умные слова, не означающие ничего, кроме того, что вы умнее тех, кто не понимает? ;-)
С практической точки зрения (а я с другой просто не могу говорить) место на существование имеют оба варианта.
1. innerHTML - это чудное свойство очень УДОБНО! Если есть необходимость засунуть конкретный кусок кода в конкретное место на странице, то это лучший способ - занимает исключительно мало места (собственно ровно столько, сколько сам HTML ;-), невероятно понятен тем, кто после тебя будет смотреть на код и (что немаловажно) можно пихать не-well-formed код - браузер сам разберется.
2. DOM-методы создания/клонирования/удаления/добавления элементов - это невероятные свойства, которые просто незаменимы и очень УДОБНЫ! Предположим известна ячейка таблицы *перед* которой нужно поставить еще одну... замучаешся делать это innerHTML'ом. Конечно тут можно возразить, что в MSIE есть outerHTML и что возможно сработает конструкция вроде cellElem.outerHTML = newCode + cellElem.outerHTML, но... Но гораздо удобнее и универсальнее добавить нужный элемент в нужное место с помощью DOM-методов.
... после чего наполнить его с помощью innerHTML ;-) |