Quando si lavora con un'interfaccia utente molto dinamica (si pensi all'applicazione per pagina singola) con librerie JS potenzialmente grandi, visualizzare modelli, convalida, ajax, animazioni, ecc., Quali sono alcune strategie che consentono di ridurre o ridurre il tempo trascorso dal browser reflow?Qual è il modo più efficiente per modificare gli elementi DOM e limitare il reflow?
Per esempio, sappiamo che ci sono molti modi per realizzare un cambiamento di dimensioni DIV, ma ci sono tecniche che dovrebbero essere evitate (da un punto di vista di reflow) e come differiscono i risultati tra i browser?
Ecco un esempio concreto:
Dato un semplice esempio di 3 modi diversi per controllare la dimensione di un DIV quando la finestra viene ridimensionata, quali di questi devono essere utilizzati per ridurre al minimo rimborsi?
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)
});
});
Si prega di notare che si sta sovrascrivendo lo _style attribute_ due volte nel primo metodo. Questo probabilmente non è quello che volevi fare. –