При работе с очень динамичным пользовательским интерфейсом (думаю, приложение с одной страницей) с потенциально большими JS-библиотеками, просмотром шаблонов, валидацией, ajax, анимацией и т. Д. ... какие стратегии помогут минимизировать или сократить время, которое браузер тратит на оплавления?Каков наиболее эффективный способ изменения элементов DOM и ограничения переполнения?
Например, мы знаем, что существует множество способов изменения размера DIV, но есть ли методы, которых следует избегать (с точки зрения рефлекса) и как результаты отличаются друг от друга между браузерами?
Вот конкретный пример:
Учитывая простой пример 3-х различных способов контроля размера DIV при изменении размеров окна, какие из них должны быть использованы для минимизации перекомпоновки?
http://jsfiddle.net/xDaevax/v7ex7m6v/
//Method 1: Pure Javascript
function resize(width, height) {
var target = document.getElementById("method1");
target.setAttribute("style","width:" + width + "px");
target.setAttribute("style", "height:" + height + "px");
console.log("here");
} // end function
window.onresize = function() {
var height = (window.innerHeight/4);
var width = (window.innerWidth/4);
console.log(height);
resize(height, width);
}
//Method #3 Jquery animate
$(function() {
$(window).on("resize", function(e, data) {
$("#method3").animate({height: window.innerHeight/4, width: window.innerWidth/4}, 600)
});
});
Обратите внимание, что вы дважды перезаписываете атрибут _style_ в своем первом методе. Возможно, это не то, что вы хотели сделать. –