2010-04-19 15 views
5

Douglas Crockford descrive le conseguenze di JavaScript che richiede lo stile di un nodo. La semplice richiesta del margine di una div fa sì che il browser "rifletta" il div nel motore di rendering del browser quattro volte.Esiste un margine sinistro: 2px; rendere più veloce del margine: 0 0 0 2px ;?

Quindi mi sono chiesto, durante il rendering iniziale di una pagina (o nel gergo di Crockford un "web scroll") è più veloce scrivere CSS che definisce solo i valori non zero/non predefiniti? Per fornire un esempio:

div{ 
    margin-left:2px; 
} 

Than

div{ 
    margin:0 0 0 2px; 
} 

So conseguenza di questo 'risparmio' è insignificante, ma penso che sia ancora importante capire come le tecnologie di applicazione. Inoltre, questa non è una domanda sulla formattazione dei CSS - questa è una domanda sulle implementazioni dei browser che mostrano il CSS.

Riferimento: http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-4

risposta

1

No, a seconda del browser, decomprimerà i valori in modi diversi prima ancora di applicare gli stili e in Firefox, avrebbe un leggero effetto sulla velocità di esecuzione. Comunque, è una buona idea usare il CSS di stenografia.

Se volete capire come funziona, Firefox, spacchetta il valore:

{margin: 0 0 0 2px;} 

come

{margin-top: 0pt;margin-right: 0pt;margin-bottom: 0pt;margin-left: .04pt;} 

prima di applicare gli stili alla pagina. Questo è per la normalizzazione.

* (. 04pt è una stima)

2

non sono sicuro se "rende" più velocemente. MA: la seconda versione è di alcuni byte più grande della prima versione. (E suppongo che la rete sia più lenta del tempo di rendering della pagina, rendendo la prima versione effettivamente "più veloce")

Problemi correlati