Хотя я не уверен насчет innerHTML = "", вы пропустили один, возможно, быстрый подход, используя DocumentFragments для вставки в DOM: Как показывает Джон Резиг .
Как уже упоминал Олафур Вааге, несмотря на то, что innerHTML быстрее во многих ситуациях, поскольку он не является частью какого-либо стандарта W3C , причуды гораздо более вероятны, чем если бы они были. Не сказать, что innerHTML не является стандартом де-факто в современных браузерах.
Этот пост в блоге , похоже, указывает на то, что Firefox тратит много времени на очистку после себя при использовании innerHTML для удаления элементов.
В некоторых браузерах (особенно в Firefox), хотя innerHTML, как правило, намного быстрее, чем методы DOM, он тратит непропорциональное количество времени на очистку существующих элементов от создания новых. Зная это, мы можем объединить скорость уничтожения элементов, удалив их родительский элемент, используя стандартные методы DOM, с созданием новых элементов, используя innerHTML.