javascript - ¿Es posible que un sitio web caliente un dispositivo Android y provoque un mayor desgaste de la batería?
angularjs performance (3)
Estoy desarrollando un sitio web que es una aplicación de una sola página (construida en AngularJS).
Sin embargo, mi cliente se queja de que el uso del sitio web hace que los dispositivos del usuario se calienten y agotan la batería más rápido.
Tecnologías utilizadas para el desarrollo.
Para back-end - PHP / Codeigniter
Para front-end - Angular JS
Tengo muchos códigos escritos en Javascript nativo también.
¿Es posible que un sitio web cause estos problemas? Si es así, ¿cómo puedo solucionar esto?
Hay muchos factores, por ejemplo:
- Animaciones causantes de repintados múltiples.
- Si tiene muchos observadores, las actualizaciones frecuentes causarán mucho trabajo para realizar ciclos de resumen.
- Mantener la conexión TCP también es muy costoso, por lo que si consulta su servidor de back-end para datos en vivo, resultará perjudicial en el móvil (otro ejemplo es recopilar datos analíticos como clics y enviarlos inmediatamente al servidor)
Las soluciones para estos casos serían reducir el número de observadores y realizar actualizaciones con menos frecuencia en dispositivos móviles. Las actualizaciones como las de analítica deben enviarse por lotes.
No hay una solución que se aplique a todos los casos. Si desea guardar la batería de su cliente, puede crear un perfil de su aplicación, ver qué partes del código son caras y decidir si son necesarias para realizarlas en dispositivos móviles.
Y una cosa importante: compruebe que la aplicación está causando los desagües , ya que puede ser algo diferente y estaría perdiendo el tiempo tratando de optimizar algo que funcione bien.
Larga historia corta: sí, es posible. Al desarrollar, puede elegir dos formas de manejar los cálculos:
- Puedes procesarlos localmente, en el lado del servidor
- puede procesarlos de forma remota empujándolos hacia el lado del cliente
Este último, principalmente cuando está mal codificado, puede generar un uso elevado y constante de la CPU en el lado del cliente, lo que resulta en un dispositivo caliente y una batería agotada rápidamente.
Un JavaScript mal codificado puede hacer que el navegador utilice más recursos y, por lo tanto, el dispositivo se calienta o la batería se agota más rápido.
Cosas que debe buscar: llamadas de red, escuchas de eventos innecesarios (toque, desplazamiento), animaciones costosas, etc.
Cómo resolverlo: intente eliminar algunas animaciones y escuchas de eventos que causan un retraso en la aplicación web, ya que pueden utilizar la mayoría de los recursos. De esta manera usted necesita filtrar nuestro código culpable y optimizarlo.
Puede consultar este artículo de la BBC para obtener un informe detallado sobre esto: http://www.bbc.com/news/technology-17811557