Tengo una página de galería de fotos alojada en un CMS (Squarespace) que tiene algunos de sus propios scripts que cargan las miniaturas de forma asincrónica.Cómo ejecutar una función jQuery después de ejecutar todos y cada uno de los javascript
Las grandes imágenes reales sin embargo, no están precargados, así que decidió añadir mi propio guión en la mezcla para simplemente hacer que el navegador cargue las imágenes más grandes en la memoria caché en el fondo, como esto:
(function($) {
var cache = [];
// Arguments are image paths relative to the current page.
$.preLoadImages = function() {
var args_len = arguments.length;
for (var i = args_len; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}
})(jQuery)
$(window).load(function(){
$.preLoadImages(
"/picture/1.jpg",
"/picture/2.jpg", //etc.
);
});
Puse mi código en $ (ventana) .load() porque este es un script de fondo y no es esencial, incluso se ejecuta, solo para mejorar el rendimiento.
Sin embargo, creo que esta secuencia de comandos bloquea de alguna manera la propia secuencia de comandos de precarga de miniaturas del CMS.
¿Estoy en lo cierto? Y lo más importante, ¿hay alguna forma de dictar que mi secuencia de comandos solo se ejecute después de que se hayan ejecutado todas las demás secuencias de comandos en la página?
aplausos
Gracias nick. Eso tiene sentido. Sin embargo, mi script está de alguna manera bloqueando la precarga de miniaturas ... No me pongo. "No sé cómo, pero el efecto es constante y significativo. ¿Podría ser algo relacionado con los límites de las conexiones del navegador?" – andy
@andy: podría ser que, si están en el mismo dominio, la especificación HTTP real dice 2 conexiones por dominio a la vez, que IE en pa rticular obedece (otros permiten la canalización más fácil). ¿Puede dar a las imágenes una URL diferente ?, por ejemplo 'http: //static.mydomain.com/Images/....', esto permitiría * otro * 'n' número de conexiones, porque lo trata como otro dominio de 'www.' por ejemplo. –
hola Nick, gracias por el fragmento extra, de hecho intenté ready() primero, pero estaba obteniendo el bloque, entonces pensé que window.load() me ayudaría, pero por supuesto las miniaturas se están cargando sincronizando aquellas que no lo harían hacer una diferencia ... ¿verdad? tal vez estoy completamente equivocado, supongo que es un bloqueo porque las miniaturas solo se cargan después de que todas mis imágenes se hayan cargado en el fondo – andy