2009-01-25 32 views
46

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 está utilizando JQuery 1.3.1, entonces deje de usarlo si confía en los controladores que desea ejecutar cuando el DOM está completo pero antes de las imágenes de la página. he cargadoJQuery está esperando que las imágenes se carguen antes de ejecutar document.ready

Update2: Gracias a Tom (id de usuario 20!) Por publicar la link to the ticket en el seguimiento de errores jQuery.

Update3 - 2009/01/28: 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 para darse cuenta de que mi amado sintaxis

$(function() { ... } 

estaba a la espera de toda la página a cargar (incluyendo imágenes) antes de ejecutar el cuerpo de la función. Estaba viendo strange behavior al intentar 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> 

Diferentes versiones de jQuery tuvieron resultados diferentes:

  • ¿Qué ocurre en la versión 1.2.6 que es cuadro de alerta se muestra al instante y luego ver las imágenes de cargar detrás de él (esperado y el comportamiento 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.

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

Importante: Esto sólo parece ser un problema en IE y Firefox no

En este momento no tengo un archivo de imagen dinámica que es accesible públicamente para que sea más fácil para que otros puedan ver esto. 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é.

+0

Estoy experimentando el mismo problema EXACTO con la versión más reciente de jQuery. Por favor, mantenga esta pregunta actualizada en base a cualquier comentario que reciba. – Tom

+0

@tom definitivamente lo hará. Envié un correo electrónico y escribí john a resig, quien inicialmente escribió JQuery. Personalmente, no tengo prisa por una corrección de errores (volví a 1.2.6), pero realmente necesitan tomar esa versión como la versión lanzada en jquery.com. –

+0

@Simon - Presenté un boleto esta tarde sobre este problema. Ah, las alegrías del software libre;) Lo arreglarán lo suficientemente pronto, estoy seguro, buenos desarrolladores en el equipo, pero me apena porque no puedo volver a 1.2.6 = T – Tom

Respuesta

57

Esto era debido a los errores de jQuery # 2614 y # 3880 - hubo problemas definidos con el código listo en IE en 1.2.6 y 1.3 - y ahora una . 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 billete relacionadas con el tema se puede encontrar aquí (si encuentra problemas adicionales con la revisión, m pl Facilidad re-abrir el billete y publicar en el hilo jquery-dev arriba):
http://dev.jquery.com/ticket/3988

que acaba de aterrizar una solución para este en el SVN rev 6170.

acabo hizo subir una nueva noche que se puede utilizar hasta 1.3.2 definitiva sale:
http://code.jquery.com/nightlies/jquery-2009-01-28.js

sentimos en el retardo para conseguir una solución a cabo - viajaba esta semana.

+15

impresionante - Resig al rescate :) –

+1

Radical! ¡Rock, John! –

+0

Muchas gracias, John. Esto es asombroso – Tom

4

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

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

+0

si ya sabes dónde comprobar y podrías informar que sería genial. ¡Son las 4:50 am para mí y estoy por irme a la cama! ¡Lo gracioso es que estoy codificando un nuevo sitio y lo ÚNICO que estaba usando JQuery hasta ahora era esta tarea fundamental! –

+0

oh y gracias por complacerme y creer lo increíble :) –

4

Here's an update of the ticket I submitted. Parece que @Webdawson ha adjuntado una página de muestra al ticket.

+0

@tom - ¡genial! ese es mi error! ¡me encanta la gigantesca imagen de 3MB que usaron! increíble. gracias por permitirme externalizar mi informe de errores a través de usted. mis días de hacer eso han terminado, una vez que empiezas no puedes parar. me disilusioné cuando MS siempre cerraba mis errores o decía "no lo arreglaría" (excepto los errores del servidor SQL!) –

3

sí, he agregado un ejemplo, es claramente un error en IE6 & 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 ejemplo: http://www.kollermedia.at/jquery_bug.html

+0

, hubiera pensado que este era el tipo de éxito que significaba que eliminarían 1.3.1 de su sitio (al menos como siendo el lanzamiento actual). va a colgar muchos sitios para las personas o los hará muy insensibles. Oh bien. –

Cuestiones relacionadas