javascript modernizr dynamic-script-loading yepnope

javascript - ¿Qué está provocando que mis scripts se soliciten dos veces mientras uso Modernizr.load(yepnope.js)?



modernizr version (1)

Hay una nota sobre esto en su documentación:

Desde yepnope.js

Estoy viendo dos solicitudes en mis herramientas de desarrollo, ¿por qué está cargando todo dos veces?

Dependiendo de su navegador y su servidor, esto podría significar un par de cosas diferentes. Debido a la naturaleza de cómo funciona yepnope, hay dos solicitudes para cada archivo. La primera solicitud es cargar el recurso en la memoria caché y la segunda solicitud es ejecutarlo (pero como está en la memoria caché, debe ejecutarse de inmediato). Ver dos solicitudes es bastante normal siempre que la segunda solicitud se almacene en caché. Si observa que la segunda solicitud no se almacena en caché (y los tiempos de carga del script se están duplicando), asegúrese de enviar los encabezados de caché correctos para permitir el almacenamiento en caché de los scripts. Esto es vital para yepnope. No funcionará sin el almacenamiento en caché adecuado habilitado. En realidad, hacemos pruebas para asegurarnos de que las cosas no se carguen dos veces en nuestra suite de pruebas, por lo que si cree que podemos tener un error en su navegador con respecto a la carga doble, le recomendamos que ejecute la serie de pruebas para ver si se aprueba la prueba de carga doble.

Estoy usando yepnope.js para cargar archivos javascript dinámicamente, y he notado que mis scripts parecen cargarse dos veces de acuerdo con Firebug y Webkit Inspector.

El problema es que en el panel Net de Firebug (la última versión de Firefox 4), su respuesta es un 200 , no un 304 . Parece ser más lento que en Chrome.

He subido este video que muestra el problema. Puede ver cómo se cargan los archivos jquery-1.6.1.min.js y libs.js un tiempo adicional.

El código que estoy usando para hacer esto es el siguiente, simplificado:

Modernizr.load({ load: [''jquery-1.6.1.min.js'', ''libs.js''], complete: function () { console.log("loaded"); } });

Modernizr.load() es yepnope() .