Я понятия не имею, что это на самом деле будет работать для вашей реализации, но:
var myDiv = document.getElementById("myDiv");
myDiv.innerHTML = "".concat(myDiv.innerHTML);
Я считаю, что установка innerHTML вызывает перезагрузку DOM для дочернего элемента. Я понятия не имею, что произойдет, если вы охватите это для всего сайта. Похоже, что вы довольно хорошо подключены к DOM повсюду, и этот метод может заставить любые ссылки на узлы, которые вы уже сделали, стать неопределенными. Другими словами:
var mySelect = document.getElementById("mySelect");// suppose this lives in myDiv.
var myDiv = document.getElementById("myDiv");
myDiv.innerHTML = "".concat(myDiv.innerHTML);
В приведенном выше примере я считаю, что вы потеряете ссылку на mySelect. Если у вас есть много чего происходит, и вы используете поля, а не получатели (то есть, не получая каждый элемент, который вам небезразличен, используя $ () или $ get или document.getElementById (..) каждый раз, когда вы получаете к нему доступ), тогда есть большая вероятность того, что этот тип промывки может вас затянуть.
Вы также наверняка потеряете любые данные о состоянии страницы, которые вы не отслеживаете / не настраиваете вручную - текстовые поля с новым текстом от пользователя, флажки, вновь проверенные пользователем и т. Д., Будут повторно инициализированы в их состояние по умолчанию, используя этот подход к промывка.
Удачи - счастливого кодирования!
B