2011-08-24 31 views
11

Recientemente me pidieron que ayudara a solucionar un problema con un sitio web que causó la falla de IE8 bajo ciertas condiciones. La compañía propietaria del sitio web no pudo reproducir el problema, pero recibían muchos informes de los usuarios afectados.Detección de bloqueo de JQuery e IE8

Pude reproducir el problema y finalmente descubrí que era causado por this jQuery/IE 8 issue. El problema se produce cuando se aplica una imagen de fondo a la etiqueta body utilizando CSS y se carga jQuery. Una publicación sobre los comentarios de jQuery bug ticket proporcionó this jsFiddle example, que, al menos para mí, reproduce el problema constantemente.

El problema que tengo está reproduciendo esta forma fiable en un entorno de prueba. ¿Alguien puede sugerir métodos para probar este tipo de cosas? A pesar de copiar el código exacto utilizado en el ejemplo de jsFiddle, no puedo reproducir el problema de forma coherente a nivel local; puede depender de un momento determinado, pero no estoy seguro. Me gustaría agregar algo al conjunto de pruebas automáticas que verifica este problema (la corrección de jQuery se había aplicado anteriormente y se eliminó accidentalmente en una versión posterior).

¿Cómo puedo comprobar si un navegador se bloquea? El sitio está escrito en Perl, y algunas pruebas automáticas se llevan a cabo utilizando Selenium y WWW :: Mechanize.

Nota: consideré publicar esto en Pro Webmasters, pero después de leer la FAQ, creo que es más adecuado para SO.

+2

Creo que está directamente a medio camino entre los webmasters y SO. La línea entre los sitios SE es increíblemente vaga a veces. –

Respuesta

7

No creo que pueda hacer otra cosa que no sea ejecutar pruebas unitarias y pruebas de estrés con la mayor variedad posible de combinaciones de factores.

Esta es la naturaleza de los llamados "Mandelbugs".

+2

+1 para Mandlebug - Me gusta :-) – Mike

0

Puede probar con algunas de las ofertas de SauceLabs que proporcionan capacidades de prueba multiplataforma y entre navegadores.

1

Dado que lo único consistente parece ser que no hay ningún problema si carga JQ antes de la declaración de estilo, trataría de configurar el JQ para que cargue en diferentes intervalos después de que se cargue la declaración CSS/archivo CSS vinculado.

Desde inmediatamente después de establecido el estilo hasta después de DOM listo. Supongo que JQ hace referencia a algo que IE8 ha puesto a disposición que todavía no estaba listo para compartir como resultado de algo realmente estúpido en su proceso de carga de DOM.

He visto varios incidentes de herramientas de desarrollador que se bloquean permanentemente en IE8 incluso después de volver a abrir la aplicación. Si no fuera por eso, consideraría tales errores improbables.

Editar: Para ser justos, JQ probablemente está haciendo algo extraño en 1.62 o este error sería más conocido en general. IE8 ha salido hace algunos años.