2010-12-15 11 views
8

Estoy trabajando en la optimización de una página que tiene Flash. Estoy usando prácticas de optimización como mover el Javascript al fondo para no bloquear. Eliminando scripts en línea. Y minimizando las solicitudes HTTP con css y js minificados.¿Cuándo se inicializa un navegador flash?

La mayoría del contenido de las páginas está en la memoria flash, por lo que cargarlo lo antes posible es el objetivo. Actualmente hay un retardo de 2 ~ 3 segundos antes de que el flash se represente (usando perfiles de Firebug)

Me pregunto en qué punto de la carga de la página el navegador comienza a inicializar el flash en la página?

¿Una vez que se ha procesado el elemento DOM que contiene el flash?

¿Es una vez que se ha activado el evento de carga completa?

Imagino que probablemente también difiera con cada navegador.

+0

Para aclarar. Me interesa saber cuándo comenzará a reproducirse/cargarse la instancia de flash. Soy consciente de que la instancia de flash tendrá sus propios recursos para cargar de forma asíncrona y lo más probable es que siga cargándose cuando se inicie window.onload. Específicamente, estoy interesado en activar esta fase de inicialización de la instancia de flash lo antes posible. También soy consciente de que el uso de una biblioteca JS para incrustar el flash prolongará la ejecución del flash al menos hasta que se cargue y ejecute la biblioteca JS. – kevzettler

Respuesta

0

En primer lugar, ninguno de los principales navegadores espera el flash antes de mostrar la página. Esto significa que cuando la página HTML termine de cargarse, es posible que el contenido de Flash aún no esté completamente cargado.

Supongo, en base a estos hechos, que el archivo SWF se carga simultáneamente con el HTML. Una vez que se carga el HTML, se muestra el SWF.

Para probar que usted podría utilizar https://addons.mozilla.org/en-US/firefox/addon/3371/

Para facilitar la colocación del flash SWF intento del objeto:

http://code.google.com/p/swfobject/

1

Use una inserción directa en el código HTML. No use swfObject o el JS que proporciona Flash IDE. Si usa JS, tiene que esperar a que se cargue ese archivo, y es probable que el JS se esté conectando a la ventana.onload y no represente el SWF hasta entonces.

+0

Flash CS5 al menos realmente usa swfobject :). swfobject recomienda, siempre que sea posible (y proporciona una herramienta para) incrustación "tonta". Yo prefiero un poco el método javascript menos redundante, pero se carga un poco más lento, aunque creo que el principal retraso es el .swf descarga + descomprime + verifica que realmente no puedes acortar :(. –

+0

Ok en el caso de que yo no No utilice una biblioteca JS para incrustarlo y usar una etiqueta de inserción directa. ¿Cuándo comienza a cargarse/reproducirse el flash en ese caso? ¿Una vez que el navegador ha generado la etiqueta de inserción? – kevzettler

+1

Hola a todos, el navegador va a necesitar leer el Como HTML está construyendo el DOM, cuando se trata de una etiqueta Embed u Object, debe obtener el complemento para interpretarlo en la memoria y después debe comenzar a buscar el swf, la forma en que los archivos swf cargan el primer frame es preloader second frame es el código de la aplicación, y los marcos se envían por separado, la reproducción de dicho preloader debe comenzar en el momento en que se carga el primer frame. http://www.leavethatthingalone.com/blog/index.cfm/2009/11/11/Flex4CustomPreloader – shaunhusain

0

Como Flash es tratado de la misma manera que CSS y HTML por todos los navegadores, un navegador lo inicializa al cargar HTML (ambos se cargan al mismo tiempo). El navegador no prioriza Flash por encima de cualquier otra cosa.

Cuestiones relacionadas