当处理非常动态的UI(比如单页应用)时,可能会有大型JS库、视图模板、验证、ajax、动画等等,有哪些策略可以帮助最小化或减少浏览器在回流上花费的时间?
例如,我们知道有许多方法可以实现DIV大小的变化,但是有哪些技术应该避免(从回流的角度来看),在不同的浏览器中结果有何不同?
这里有一个具体的例子:
给出一个简单的例子,有3种不同的方式来控制DIV的大小,当窗口大小改变时,哪种方式应该被使用以最小化回流?
例如,我们知道有许多方法可以实现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)
});
});