Используйте CSS, чтобы вместо этого показывать и скрывать элементы, изменяя имя класса родительского элемента. Некоторые тесты, которые я провел некоторое время назад, показали, что это примерно в десять раз быстрее, чем установка свойства display для каждого элемента. Поскольку вы изменяете только один атрибут, он перекомпоновывается только один раз.
Пример:
<style>
.State1 .InitiallyHidden { display: none; }
.State2 .InitiallyShown { display: none; }
</style>
<script>
function flip() {
var o = document.getElementById('Parent');
o.className = o.className = 'State1' ? 'State2' : 'State1';
}
</script>
<input type="button" value="flip" onclick="flip();" />
<div id="Parent" class="State1">
<div class="InitiallyHidden">One</div>
<div class="InitiallyShown">Two</div>
<div class="InitiallyHidden">Three</div>
<div class="InitiallyShown">Four</div>
</div>