Sto costruendo una visualizzazione di dati e le prestazioni di rendering sono fondamentali. La mia domanda sarebbe rilevante per l'HTML standard di bog, anche se mi capita di usare SVG, con JavaScript.Prestazioni di rendering: attributi di stile o nomi di classi e regole di fogli di stile?
OK, un ipotetico scenario: dire che ho 10.000 nodi DOM con background-color
di "red
", e 10.000 nodi DOM con background-color
di "green
". Ogni nodo è creato da un ciclo JavaScript. Potevo:
- impostare un attributo
style
su ciascun nodo, specificando ilbackground-color
del nodo:<element style="background-color:red;"/>
Impostare un attributo
class
su ciascun nodo e quindi fare riferimento quella classe in uno stile in linea o foglio di stile esterno :<head><style>.foo {background-color:red;}</style></head>
<body><element class="foo"/></body>
Le prestazioni di download il codice non è affatto importante qui - Sono interessato solo alle prestazioni di rendering del browser. Sono anche abbastanza consapevole che gli attributi di stile non sono solitamente così utili o semantici nello sviluppo quotidiano del sito web, ma qui ho un caso d'uso specifico.
I interessato a risposte logiche, ma sarebbe davvero utile sapere da chiunque ha effettivamente testato questo o leggere su test di qualcun altro (Ho cercato informazioni, ma non ho trovato nulla in particolare su questo).
Grazie per il vostro aiuto!
Perché non fai il tuo punto di riferimento? Sospetto che le prestazioni varieranno drasticamente tra i diversi browser ... –
Penso che sia un caso molto specifico ed è molto più semplice confrontarlo da solo con altri browser. La mia scommessa è che non sarà molto diversa, ma chi lo sa. – Athari
La mia ipotesi sarebbe che la soluzione 'style' funzioni più velocemente, ma vorrei fare un benchmark nel mondo reale per scoprirlo. Non dovrebbe essere troppo difficile da fare, basta creare 10.000 oggetti finti –