jquery jquery-1.3

JQuery está esperando que las imágenes se carguen antes de ejecutar document.ready



jquery-1.3 (4)

Hay algunas cosas que simplemente no pueden ser probadas por unidad. Acabo de confirmar en IE6 + 7 y 1.3.1. Santo infierno, qué gran regresión.

Entonces, ¿tienes tiempo para informar esto? Acabo de comprobar y no es un error conocido para 1.3.1.

Actualización: Este error ha sido confirmado por al menos otros dos. Incluso si no lee mi publicación completa, si está leyendo esto y usando JQuery 1.3.1, deje de usarlo si confía en cualquier controlador que quiera ejecutar cuando el DOM esté completo pero antes de que se carguen las imágenes de la página. .

Actualización2 : ¡Gracias a Tom (identificación de usuario 20!) Por publicar el enlace al ticket en el rastreador de errores jQuery.

Update3 - 28/01/2009: El problema se ha resuelto correctamente (para aquellos para los que volver a 1.2.6 no es una opción). Para cualquiera que esté usando 1.3.1 y necesite una solución inmediata, puede leer la dirección de la respuesta aceptada. Gracias John.

Acabo de actualizar a JQuery 1.3.1, y me tomó varias horas darme cuenta de que mi amado

$(function( ) { ... }

la sintaxis ahora estaba esperando a que se cargue toda la página (incluidas las imágenes) antes de ejecutar el cuerpo de la función. Estaba viendo un comportamiento extraño al tratar de integrar los menús de Yahoo. (Afortunadamente, tuve algunas imágenes de carga lenta en mi página que me hicieron consciente del problema).

Hice un archivo de prueba porque pensé que algo más complejo estaba pasando, pero todavía tenía los mismos síntomas incluso con este archivo simple.

<head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> <script> $(function() { alert("Ready"); }); </script> </head> <body> <img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" /> <img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" /> <img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" /> <img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" /> </body>

Las diferentes versiones de JQuery tuvieron resultados diferentes:

  • Lo que sucede en la versión 1.2.6 es que el cuadro de alerta se muestra instantáneamente y luego veo las imágenes cargadas detrás de él (comportamiento esperado y documentado).
  • Lo que sucede en la versión 1.3.1 es que todas las imágenes se cargan y solo entonces se mostrará el cuadro de alerta.

¡Que esta pasando! ¿Es esta una nueva característica (no puedo imaginar por qué) o un error?

Importante: esto solo parece ser un problema en IE y no en Firefox

Lo siento, no tengo un archivo de imagen dinámico que sea públicamente accesible para que otros puedan verlo más fácilmente. Si desea probarlo, le sugiero que use un archivo de imagen grande elegido al azar de las imágenes de Google y borre su caché.


sí, he agregado un ejemplo, es claramente un error en IE6 y 7 (no lo he probado en otras versiones de IE). Parece que la versión 1.3.1 tiene muchos errores. :(

Aquí está el enlace de ejemplo: http://www.kollermedia.at/jquery_bug.html


Esto se debió a jQuery bugs # 2614 y # 3880 - hubo problemas definitivos con el código listo en IE en 1.2.6 y en 1.3 - y ahora un conjunto diferente de problemas en 1.3.1.

Una discusión más amplia se puede encontrar aquí:
http://groups.google.com/group/jquery-dev/browse_thread/thread/3abf45d3fd4d50fc

Y el ticket relacionado con el problema se puede encontrar aquí (si encuentra problemas adicionales con el arreglo, vuelva a abrir el ticket y publíquelo en el hilo de jquery-dev anterior):
http://dev.jquery.com/ticket/3988

Acabo de encontrar una solución para esto en SVN rev 6170 .

Acabo de abrir una nueva aplicación nocturna que puedes usar hasta que aparezca 1.3.2 final:
http://code.jquery.com/nightlies/jquery-2009-01-28.js

Perdón por la demora para obtener una solución: estaba viajando esta semana.