Podczas pracy z bardzo dynamicznym interfejsem użytkownika (należy się spodziewać aplikacji Single Page) z potencjalnie dużymi bibliotekami JS, szablonami widoku, sprawdzaniem poprawności, ajaxem, animacjami itp. Jakie są strategie, które pomogą zminimalizować lub skrócić czas spędzany przez przeglądarkę? reflow?Jaki jest najskuteczniejszy sposób modyfikacji elementów DOM i ograniczenia przepływu?
Na przykład wiemy, że istnieje wiele sposobów na zmianę wielkości DIV, ale czy istnieją techniki, których należy unikać (z punktu widzenia przepływu) i jak wyniki różnią się między przeglądarkami?
Oto konkretny przykład:
Biorąc prosty przykład 3 różne sposoby, aby kontrolować wielkość DIV, gdy okno jest zmieniany, które z nich powinny być wykorzystywane, aby zminimalizować zmiany układu?
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)
});
});
Należy zauważyć, że nadpisujesz atrybut _style atrybut_ dwa razy w swojej pierwszej metodzie. To prawdopodobnie nie jest to, co chciałeś zrobić. –