2012-04-26 11 views
5

¿Existe una forma estándar (aceptada/fácil/efectiva) de determinar qué tan rápido una máquina cliente procesa javascript?Estimar la velocidad del motor del navegador JS para deshabilitar las animaciones de forma condicional

Cuando estoy ejecutando aplicaciones web (videos, etc.) en mis otras pestañas mis animaciones JS se ralentizan.

Si pudiera detectar la lentitud de mi JS, usaría animaciones más simples para proporcionar una mejor experiencia de usuario.

Actualizar:

Extracción animaciones para todo el mundo no es la respuesta. Estoy hablando de las animaciones más simples que tartamudean dependiendo del navegador/computadora. Si pudiera detectar el nivel de lentitud, simplemente los desactivaría.

Esto es lo mismo que los videojuegos con calidad de gráficos dinámica: desea complacer a las personas con computadoras viejas sin penalizar a aquellas que tienen la potencia de procesamiento adicional.

Respuesta

0

Un consejo es desactivar esas animaciones ocultas. si están en otra pestaña que no está enfocada, ¿para qué sirve mantenerlas animadas?

Otra es mantener las animaciones al mínimo. Supongo que estás en DOM, y las operaciones DOM son costosas. mantenerlos al mínimo también.

Un consejo que obtuve en algún lado es que si está utilizando la manipulación de imágenes animadas, considere usar canvas en su lugar para que no esté operando en el DOM.

Además, considere la mejora progresiva. Mantenga sus características simples y avance hacia cosas complicadas. Use las funciones simples como referencia cada vez que agregue algo nuevo. De esta forma, puede determinar fácilmente qué causa el problema y solucionarlo en consecuencia.


El principal problema que primero debe abordar es la razón por es lento, no cuando es lento.

+1

No digo que las animaciones sean particularmente agresivas o que sucedan en otra pestaña. Incluso una imagen simple que se desvanece a 0 opacidad tartamudeará si su computadora es lo suficientemente lenta. Hay muchas computadoras lentas, situaciones excepcionales (tal vez está copiando archivos, viendo una película, etc.) donde se mejoraría la experiencia del usuario mediante la eliminación progresiva de animaciones. Si pudiera detectar esto, establecería una escala móvil de nivel de animación. Ninguno, pequeño y todo fuera. –

+0

@YujiTomita, entonces esa es una de las cosas [que simplemente no puedes controlar] (http://stackoverflow.com/questions/10220530/what-are-the-limits-to-pushing-javascript-performance/10220623#comment13129588_10220623) . Es posible que desee preguntarles a los chicos de [UX.stackexchange] (http://ux.stackexchange.com/) qué pueden recomendar para su situación desde el punto de vista de UX. – Joseph

+2

No estoy de acuerdo. Puedes vincular a una publicación sobre "impulsar el rendimiento de JavaScript" que no estoy tratando de hacer. Esto es más parecido a lo opuesto: admitir computadoras antiguas al deshabilitar incluso una sola imagen que se desvanece. Bajar la barra para todos no es la solución. Además, independientemente de si estamos de acuerdo o no, mi pregunta es si debo medir el rendimiento de JS del cliente o no. Lo que uno hace con esta programación depende de ellos. –

0

Sé que esta pregunta es antigua, pero acabo de tropezar con ella. La forma más simple es ejecutar un ciclo largo y medir el tiempo de inicio y finalización. Esto debería darle una idea del rendimiento de Javascript de la máquina.

Tenga en cuenta que esto puede retrasar la carga de la página, por lo que es posible que desee almacenar el resultado en una cookie, por lo que no se mide en cada visita a la página.

Algo así como:

var starttime = new Date(); 
for(var i=0; i<1000000; i++) ; 
var dt = new Date() - starttime; 

Espero que esto ayude.

Cuestiones relacionadas