суббота, 2 февраля 2008 г.

Оптимизируем работу с DOM

Работа с DOM элементами занимает слишком много времени, поэтому обращаться к свойствам следует как можно меньше.
Простой пример создания информационного блока, используя innerHTML:




function createHTML(block){
block.innerHTML = '';
block.innerHTML += createTitle();
block.innerHTML += createBody();
}

Не стоит оброщатся к элементу несколько раз, если можно обойтись одним:

function createHTML(block){
var temp = '';
temp += createTitle();
temp += createBody();
block.innerHTML = temp;
}

Кстати говоря, тоже самое относится и к document.write:

//Никогда так не делайте
document.write('текст');
document.write(txt);
document.write('текст');
//Пишите так:
var str = '';
str = 'текст'+txt+'текст';
document.write(str);

Это довольно распространенная ошибка. Всегда применяйте уже сформированную строку, что намного быстрее чем каждый раз использовать dom.
Чуть позже напишу как можно поправить невыносимо медленную конкатенацию строк в IE....