2009-12-07 13 views
6

Controlo un iframe que se representa en otro dominio. ¿Hay una forma clara de decir si este iframe se está representando por encima o por debajo de la tapa en la página principal? Obviamente, no puedo acceder al DOM principal debido a la restricción same origin policy.¿Qué optimizaciones realiza un navegador cuando un elemento DOM se representa fuera de la pantalla?

Por ejemplo, intenté medir la velocidad de renderizado en una etiqueta canvas o VML, esperando que sea más rápido cuando la etiqueta no esté en la pantalla. Esto no funcionó; no había una diferencia de velocidad discernible. Lo mismo ocurre con la manipulación de DOM: no parece haber una forma de diferenciar entre las operaciones de reflujo/repintado por debajo o por encima del pliegue.

¿Qué hay de flash? No tengo mucha experiencia, pero ¿podría uno comprobar qué tan rápido un navegador renderiza las operaciones flash? ¿O flash tiene eventos 'invisibles' fuera del estándar DOM?

+0

¿Lo necesitará para uso de producción? ¿Puedes elaborar un poco en el fondo? –

+0

Claro. Esto forma parte de un sistema de publicación de anuncios, y me gustaría realizar una prueba para ver el% del tiempo que un anuncio es visible para los usuarios, para obtener un sentido más preciso de su valor. Esto se ejecutará en producción muy pronto, y para una cantidad limitada de anuncios servidos, por lo que el rendimiento no es muy importante. Por supuesto, no debe romper la página (o el iframe) ni restar valor a la experiencia del usuario de ninguna manera. –

+0

¿Cómo se publica el anuncio exactamente? ¿Se trata de un fragmento de JavaScript? –

Respuesta

0

Esto varía según el navegador, ya que los diferentes navegadores interactúan de manera diferente con el complemento Flash. La explicación más precisa que pude encontrar está en un viejo connectedpixel post.

En el momento de escribir, Firefox no inició un objeto flash hasta que se desplazó por la página. IE, por otro lado, cambió el tamaño del elemento de escenario cuando se desplazó a la vista. No se dan versiones de navegador, Flash o SO, por lo que esto puede haber cambiado desde esa prueba.

En resumen, necesito hacer un objeto flash y jugar con él, mirando por varios eventos.

2

No lo creo.

La misma restricción de política de origen lo impide, aunque puede usar parámetros de url, que pueden ser establecidos por el javascript incrustado en el anuncio, en el desplazamiento en la página.

1

Según el autor de SoundManager2 Scott Schiller, hay una ligera diferencia en la latencia del puente de comunicación JS-> Flash dependiendo de si la película flash está en pantalla o no. Es decir, es más lento cuando no está en la pantalla.

+2

¿Podría usted obtener su comentario? –

Cuestiones relacionadas