replacehtml instead innerhtml

This is much faster than using (el.innerHTML = value) when there are many existing descendants, because in some browsers, innerHTML spends much longer removing existing elements than it does creating new ones.

function replaceHtml(el, html) {    var oldEl = (typeof el === "string" ? document.getElementById(el) : el);    /*@cc_on // Pure innerHTML is slightly faster in IEoldEl.innerHTML = html;return oldEl;@*/    var newEl = oldEl.cloneNode(false);    newEl.innerHTML = html;    oldEl.parentNode.replaceChild(newEl, oldEl);    /* Since we just removed the old element from the DOM, return a referenceto the new element, which can be used to restore variable references. */    return newEl;};

References

  1. When innerHTML isn’t Fast Enough