2014-04-15 11 views
6

Mi piacerebbe sapere se esiste un modo affidabile sui browser Web moderni per rilevare il reflow e/o il rinnovo dei documenti, o se c'è un interesse pressante per una cosa del genere che potrebbe metterlo in una specifica W3.Rilevamento del riflusso/ridisegno: possibile oggi? Possibile in futuro?

Vorrei anche sapere come può essere realizzato utilizzando trucchi specifici del fornitore (ad esempio Mozilla apparentemente ha un evento MozAfterRepaint), se non è possibile in un modo standard o cross-browser.

Grazie.

+0

Non esiste un vero motivo per catturare quell'evento, poiché è imprevedibile poiché i frame rate variano. Usa 'requestAnimationFrame' per avvicinarti al ciclo di ridisegno. – Populus

+0

dupe possibile di http://stackoverflow.com/questions/7006152/how-do-we-investigate-how-many-times-a-browser-is-doing-reflows – Patrick

risposta

-1

Non è possibile misurare con precisione, ma è possibile prevedere guardando attraverso qualsiasi javascript che è un getter o setter/changer di stile, animazione, aggiunta/rimozione di classi sugli elementi. Questo può essere fatto usando javascript per eseguire ajax tutto il javascript sulla pagina per ottenere le stringhe javascript e quindi usare le espressioni regolari per rilevare dove si trovano. Crea un oggetto con tutti i nomi dei metodi che trovi in ​​questo modo.

Se si desidera catturarlo in tempo reale, è possibile utilizzare una combinazione di quanto sopra e tutti i metodi presenti nella pagina per chiamare il proprio mediatore per sposarlo con il riferimento dell'oggetto sopra riportato.

+1

Analisi del codice statico per rilevare ripetizioni e/o reflows ? Chi andrebbe così lontano? Inoltre, ciò produrrebbe solo punti di codice che potrebbero causare ripetizioni e/o riverberi, ma dovresti comunque prevedere in qualche modo quando tali punti di codice vengono raggiunti. In altre parole, dovresti modificare il codice per aggiungere trigger di eventi. E inoltre, JavaScript non è l'unica cosa che può causare riduzioni/riflussi. Scusa, ma questa è una pazzia. –

+0

Mi piacerebbe andare così lontano perché credo in un migliore debugging e migliori prestazioni e libertà da cattive strutture. Una volta che sai cosa causa il reflow, allora questo è il lavoro fatto. Javascript può rilevare il css sulla pagina - calcolato anche. Hai accesso completo al Dom. È possibile ma non ho detto che sarebbe stato facile. dipende dall'esperienza dello sviluppatore. –