¿Cómo puedo saber cuándo el contenido cargado con ajax finaliza la carga de imágenes?
-
03-07-2019 - |
Pregunta
Estoy cargando html desde una solicitud ajax y algunas etiquetas img en ella.
Necesito saber cuándo las imágenes cargadas en el ajax están completamente cargadas para cambiar el tamaño del contenedor. No sé cuántas imágenes hay en el resultado, por lo que no puedo simplemente verificar el valor .complete .
¿Conoces una solución para esto?
¡Gracias!
Leandro
Solución
Si está utilizando jQuery, el comando $ (window) .load ()
puede configurar una función para que se llame una vez que se cargan todas las imágenes, de la siguiente manera:
$(window).load(
function() {
// weave your magic here.
}
);
Si no está utilizando jQuery, simplemente haría lo que he hecho cuando quiera un poco de su funcionalidad: descárguelo y examine la fuente para ver cómo funciona. . Entonces haz eso :-)
Otros consejos
Las solicitudes XMLHTTP tienen propiedades que puede usar para determinar cuándo se completó la carga. Si está utilizando javascript directamente, deberá asignar una función al evento onreadystatechange. Esto se llama cada vez que cambia el estado. Los estados se almacenan en ReadyState y son: 0 no iniciados 1 carga 2 cargados 3 interactivo 4 Completo
En su función verifica que el estado es 4 y llama a las otras funciones requeridas
JQuery tiene eventos que le indican cuándo ocurrieron ciertas cosas. Ver la documentación de AJAX
Ok, gracias a Pax, he encontrado la solución.
En el evento éxito de la solicitud ajax (usando jQuery), agregué el siguiente código:
$('img', this).load(function() {
resize_element(this);
});
¡Gracias a los dos!