2009-12-07 3 views
6

Controllo un iframe sottoposto a rendering su un altro dominio. C'è un modo chiaro per dire se questo iframe è stato reso sopra o sotto la piega sulla pagina madre? Ovviamente, non posso accedere al DOM padre a causa della limitazione same origin policy.Quali ottimizzazioni esegue un browser quando un elemento DOM viene sottoposto a rendering fuori dallo schermo?

Ad esempio, ho provato a misurare la velocità di rendering su un tag canvas o VML, sperando che sarebbe più veloce quando il tag non è sullo schermo. Questo non ha funzionato - non c'era alcuna differenza di velocità percepibile. Idem per la manipolazione del DOM: non sembra esserci un modo per differenziare le operazioni di reflow/repaint sotto o sopra la piega.

E il flash? Non ho molta esperienza, ma potrei controllare quanto velocemente un browser rende le operazioni flash? O il flash ha eventi "onvisibili" al di fuori dello standard DOM?

+0

Avrete bisogno di questo per l'uso di produzione? Puoi elaborare un po 'sullo sfondo? –

+0

Sicuro. Questo fa parte di un sistema di pubblicazione di annunci e mi piacerebbe eseguire un test per vedere il% delle volte in cui un annuncio è visibile agli utenti, per ottenere un senso più preciso del loro valore. Questo verrà eseguito in produzione molto presto e per un numero limitato di annunci pubblicati, quindi le prestazioni non sono molto importanti. Ovviamente, non dovrebbe rompere la pagina (o iframe) o sminuire l'esperienza dell'utente in alcun modo. –

+0

Come viene pubblicato esattamente l'annuncio, è coinvolto uno snippet di Javascript? –

risposta

0

Questo varia molto a seconda del browser, poiché i diversi browser interagiscono con il plug-in Flash in modo diverso. La spiegazione più precisa che ho trovato è su un vecchio connectedpixel post.

Al momento della scrittura, Firefox non ha avviato un oggetto flash finché non è stato fatto scorrere sulla pagina. IE, d'altra parte, ridimensionava l'elemento Stage quando scorreva in vista. Non viene fornita alcuna versione di browser, Flash o sistema operativo, quindi potrebbe essere cambiata da quel test.

In breve, ho bisogno di creare un oggetto flash e giocare con esso, osservando vari eventi.

2

Non credo.

La stessa restrizione della politica di origine impedisce che, sebbene sia possibile utilizzare i parametri dell'URL, che possono essere impostati dal javascript che incorpora l'annuncio, all'offset sulla pagina.

1

Secondo l'autore di SoundManager2 Scott Schiller, c'è una leggera differenza nella latenza del bridge di comunicazione JS-> Flash a seconda che il filmato flash sia sullo schermo o meno. Cioè, è più lento quando non è sullo schermo.

+2

Potresti ricevere il suo commento? –