Возможно ли, чтобы сайт нагрел устройство Android и стал причиной более быстрого разряда батареи?
Я разрабатываю веб-сайт, который представляет собой приложение с одной страницей (построенное на AngularJS).
Однако мой клиент жалуется, что использование веб-сайта приводит к тому, что пользовательские устройства нагреваются и разряжают батарею быстрее.
Технологии, используемые для разработки.
Для back-end - PHP/Codeigniter
Для front-end - Угловая JS
У меня много кодов, написанных на собственном Javascript.
Возможно ли, чтобы веб-сайт вызвал эти проблемы? Если да, то как я могу это решить?
Ответы
Ответ 1
Плохо закодированный JavaScript может привести к тому, что браузер будет использовать больше ресурсов, и, следовательно, устройство нагревается или батарея разряжается быстрее.
Что нужно искать: Сетевые звонки, Ненужные прослушиватели событий (прикосновение, прокрутка), Дорогие анимации и т.д.
Как решить: попытайтесь удалить некоторые анимации и прослушиватели событий, которые вызывают отставание от веб-приложения, это могут быть те, которые используют большинство ресурсов. Таким образом, вам необходимо отфильтровать наш код преступника и оптимизировать его.
Вы можете обратиться к этой статье BBC за подробным отчетом об этом: http://www.bbc.com/news/technology-17811557
Ответ 2
Существует много факторов, например:
- Анимации, вызывающие множественные репрессии
- Если у вас много наблюдателей, частые обновления заставят много работать для выполнения циклов дайджеста
- Поддержание TCP-соединения также очень дорогостоящее, поэтому, если вы запрашиваете свой серверный сервер для живых данных, это повредит мобильный (другой пример - сбор данных аналитики, таких как клики, и немедленная отправка их на сервер)
Исправления для этих случаев будут заключаться в сокращении числа наблюдателей и более медленном выполнении обновлений на мобильных устройствах. Обновления, такие как аналитики, следует отправлять партиями.
Нет решения, которое будет применяться ко всем случаям, если вы хотите сохранить аккумулятор своего клиента, вы можете профилировать свое приложение, посмотреть, какие части кода стоят дорого, и решить, необходимо ли их выполнять на мобильных устройствах.
И одна важная вещь - убедитесь, что ваше приложение вызывает стоки, потому что это может быть что-то другое, и вы теряете время, пытаясь оптимизировать что-то, что работает нормально.
Ответ 3
Короче говоря: да, это возможно. При разработке вы можете выбрать два способа обработки вычислений:
- вы можете обрабатывать их локально, на стороне сервера
- вы можете обрабатывать их удаленно, нажимая их на стороне клиента
Последний, в основном при плохой кодировке, может генерировать высокий и постоянный объем использования ЦП на стороне клиента, что приводит к горячему устройству и быстро разряженной батарее.