Todo Javascript en el sitio funciona terriblemente lento en Firefox 4 cuando hay PNG transparentes en la página

7 minutos de lectura

avatar de usuario
alternativa

ACTUALIZACIÓN DE ETA: Descubrí que si elimino todos los archivos .png transparentes de mi sitio, hay alrededor de 5, funciona bien. Eso es raro. Y los votos a favor serían muy útiles, lo probé en algunas computadoras más, y 4/15 tener este problema. ¡Gracias! ¿Algunas ideas?

Funciona bien en PC Firefox y todos los demás navegadores, pero en 4/15 computadoras en Mac Firefox, Javascript es terriblemente lento, específicamente la barra de menú. Los probé a ambos fuera del sitio y funcionaron bien. Este ha sido un problema continuo durante bastante tiempo, no tengo idea de cómo resolverlo. Actualizado, el problema desaparece si elimino los PNG transparentes del sitio, como el banner en la parte superior izquierda.

Mi sitio: http://thenozzle.net/

Todo el javascript es un poco más lento que en otros navegadores, los dos más grandes son la barra de menú y el reproductor de video. No puedo ignorarlo en este momento.

Me pregunto si es algo que wordpress está agregando, porque js funciona bien en otros lugares.

¿Algunas ideas?

ETA: Aquí está mi archivo JS:

http://thenozzle.net/wp-content/themes/twentyten/scripts.js

ETA: Aquí está mi código de barra de menú

$(function() {
    $('#sdt_menu > li').bind('mouseenter',function(){
        var $elem = $(this);
        $elem.find('img')
             .stop(true)
             .animate({
                'width':'170px',
                'height':'170px',
                'left':'0px'
             },400,'easeOutBack')
             .andSelf()
             .find('.sdt_wrap')
             .stop(true)
             .animate({'top':'140px'},500,'easeOutBack')
             .andSelf()
             .find('.sdt_active')
             .stop(true)
             .animate({'height':'170px'},300,function(){
            var $sub_menu = $elem.find('.sdt_box');
            if($sub_menu.length){
                var left="170px";
                if($elem.parent().children().length == $elem.index()+1)
                    left="-170px";
                $sub_menu.show().animate({'left':left},200);
            }
        });
    }).bind('mouseleave',function(){
        var $elem = $(this);
        var $sub_menu = $elem.find('.sdt_box');
        if($sub_menu.length)
            $sub_menu.hide().css('left','0px');

        $elem.find('.sdt_active')
             .stop(true)
             .animate({'height':'0px'},300)
             .andSelf().find('img')
             .stop(true)
             .animate({
                'width':'0px',
                'height':'0px',
                'left':'85px'},400)
             .andSelf()
             .find('.sdt_wrap')
             .stop(true)
             .animate({'top':'25px'},500);
    });
});

  • Funciona bien para FF4 en Win7. Mis conexiones son lentas en este momento, por lo que el video se transmitió un poco, pero no fue lento ni nada. Lo mismo con el menú

    – Juan P

    18 de junio de 2011 a las 11:19

  • No es de mucha ayuda, lo sé, pero acabo de probar Firefox 4 en Windows XP y parece que funciona perfectamente.

    –James Allardice

    18 de junio de 2011 a las 11:20

  • Use el administrador de perfiles de Firefox para crear un perfil nuevo y simple, sin complementos y solo los complementos que su sitio necesita (puede mantener varios perfiles). También descargue y ejecute algo como Limpiador. … … Firefox puede necesitar una buena “limpieza”/compactación, o algunos complementos pueden estar entorpeciendo el trabajo.

    –Brock Adams

    18 de junio de 2011 a las 11:37

  • ¿Cualquiera? Este es un gran problema, ¡un voto positivo ayudaría!

    – alternativo

    20 de junio de 2011 a las 7:52

  • El menú funciona bien en Firefox 4 en Linux en mi computadora, el video se carga bastante lento pero se reproduce bien (¿pero crees que está relacionado con javascript?). El menú es mucho más fluido en Chrome, pero sigue siendo bastante útil. Tal vez esté utilizando alguna característica de javascript que es especialmente lenta en la implementación de Mac de Firefox, vea si hay algún informe de error al respecto…

    –Stein G. Strindhaug

    20 de junio de 2011 a las 8:03

avatar de usuario
estimulante

Le sugiero que tenga algunos PNG ligeramente dañados.

Le sugerimos que intente lo siguiente: vuelva a guardar los PNG fuera de Photoshop. Guarde tanto PNG-24 como PNG-8. Prueba .

He visto esto antes con archivos PNG que no se guardaron correctamente.

Probé el sitio en dos macbooks pros, uno core duo 2 y el otro core duo. Ambos funcionaron bien, el menú respondió muy bien incluso mientras se reproducía el video.

Suponiendo que tiene uno de los otros pasos enumerados en otras respuestas aquí en los “macs sospechosos” (es decir, creó nuevas cuentas y las probó), entonces creo que necesita ver qué más hace que esos Mac sean diferentes. ¿Qué versión de OS X? ¿Qué modelo ( es decir, macbook vs Macbook pro vs Air, etc.)

  • Probé esto en dos Macbook pros, un Core duo y un core 2 duo. Todo funcionó bien para mí. Probé Safari y Firefox 4.0

    – estimulante

    9 de agosto de 2011 a las 5:21

  • Probé más macs. Esto ha tomado mucho de mi tiempo, 4/22 ahora experimentan el problema. Todavía demasiados.

    – alternativo

    9 de agosto de 2011 a las 6:21

  • POR FIN LO SOLUCIONE!!!!! SÍ!!!!! Eliminé los archivos png que causaban problemas, los volví a crear por completo en Photoshop con las mismas dimensiones, pero esta vez no los comprimí con ImageOptim, una aplicación de Mac para comprimir imágenes sin pérdidas sobre la marcha. ImageOptims png-crush estaba haciendo algo que causaba que los efectos de javascript se ralentizaran mucho y luego moviera divs sobre los archivos png. SOLUCIONADO, gracias de nuevo!

    – alternativo

    28 de agosto de 2011 a las 0:09

avatar de usuario
Alok

Firefox 4.0 en Mac debería usar OpenGL para la aceleración de hardware, mientras que FF en Windows usa Direct2D. Dado que el problema solo ocurre en algunas Mac, ¿podría tener algo que ver con el conjunto de chips de su tarjeta gráfica; tal vez compare las especificaciones de las Mac infractoras y también intente desactivar la aceleración de hardware para ver si los problemas desaparecen?

  • Gracias por las sugerencias. Ni siquiera pensé en eso. Esta tarde haré la prueba.

    – alternativo

    8 de agosto de 2011 a las 20:44

Intente crear un nuevo perfil de Firefox para que pueda ejecutarlo sin extensiones, complementos, etc. instalados. Puede ser que alguna extensión (AdBlock, GreaseMonkey, etc.) esté en conflicto con algunos de los scripts en su página de alguna manera.

Acabo de probarlo en FF4 en mi Mac (MacBook Pro, 10.6.7) y se cargó rápidamente, por lo que puede ser algo en su configuración.

  • Fue una buena idea, pero no sirvió de nada. He probado en 10 MacBooks y dos de ellos tienen el problema. No puedo señalarlo con el dedo.

    – alternativo

    20 de junio de 2011 a las 8:03

  • Hm. ¿Ha intentado crear una nueva cuenta de usuario en una de las MacBooks que muestra el problema y probarlo allí para eliminar la posibilidad de que algo más se ejecute en el sistema en conflicto? Probablemente un poco exagerado, pero si nada más funciona, puede intentarlo.

    – Scott

    20 de junio de 2011 a las 8:07

  • De hecho, lo intenté, no hay diferencia. Tengo una MacBook reciente, en core 2 duo, 4 GB de RAM, buena tarjeta de video, ¡debería funcionar bien!

    – alternativo

    20 de junio de 2011 a las 8:09

  • Es posible que desee intentar quitar componentes y volver a probar, entonces. Intente eliminar completamente el video y actualice, vea qué sucede. Haga lo mismo con la barra de navegación, vea qué sucede. Vea si puede aislar una parte específica de la página que está causando problemas. Es un proceso un poco doloroso, pero podría ayudarlo a localizar un área problemática.

    – Scott

    20 de junio de 2011 a las 8:17

  • Usé la idea de Scottie. Son estos PNG transparentes. Si los elimino todos, la barra de menú funciona bien. Si elimino uno a la vez, mejora progresivamente hasta que desaparecen todos. AYUDA DE VOTOS HACIA ADELANTE. Por favor.

    – alternativo

    26 de junio de 2011 a las 23:07

Primero validaría el HTML, ya que es posible que las etiquetas HTML se abran y produzcan un comportamiento extraño con javascript. Valida tu HTML y usa Firebug para ayudarte.

Después de eso, intentaría usar un espaciador diferente como este.

No sé si Firefox tiene el mismo problema, pero sé que si coloca mosaicos png pequeños transparentes (como 1×1), causará una pérdida de memoria en ie7. Usando una imagen más grande arreglarlo.

  • Como en mi comentario sobre la publicación de @desbest, intenté anular Google Analytics que estaba cargando el espaciador png, todavía funciona muy lentamente.

    – alternativo

    5 de agosto de 2011 a las 18:44

  • Como en mi comentario sobre la publicación de @desbest, intenté anular Google Analytics que estaba cargando el espaciador png, todavía funciona muy lentamente.

    – alternativo

    5 de agosto de 2011 a las 18:44

¿Ha sido útil esta solución?