60-секундный таймер реализован магией в ОС: в основном он не добавляет загрузки ЦП в течение 60 секунд, которые он ожидает.
Я думаю, updateWeather()
опрос внешнего ресурса, поэтому ответ на ваш вопрос - это просто «нет, это нормально». (Поскольку погода не меняет , что часто, я бы сделал это на 5 минут вместо этого, см. Комментарий ниже о времени автономной работы.) (Еще лучше: посмотрите, дает ли поставщик данных о погоде поле, сообщающее вам, когда следующее обновление будет быть и использовать на основе этого setTimeout
.)
В других ситуациях, например, если вы собирали данные за эти 60 секунд, а затем переходите и обрабатываете их за один раз, это может вызвать пик большой нагрузки. Который может быть замечен пользователем (например, все анимации затягиваются один раз каждые 60 секунд). В этом случае лучше использовать 5-секундный таймер и обрабатывать данные за 5 секунд за раз.
И наоборот, если вы используете сеть на мобильном устройстве, вам необходимо учитывать срок службы батареи: доминирование в режиме ожидания и поиска. Таким образом, продление времени опроса с 60 секунд до 120 секунд может буквально удвоить срок службы батареи. Илья Григорик имеет очень хорошую главу об этом в своей книге, High Performance Browser Networking, http://shop.oreilly.com/product/0636920028048.do ... вот это: http://chimera.labs.oreilly.com/books/1230000000545/ch08.html#ELIMINATE_POLLING
Почему бы делать отметить на минуту причиной дополнительной нагрузки, чем ничего не делать в течение более короткого времени? ;-) – RobG
Нет, это не так. Однако очень короткий тайм-аут может быть следующим: http://stackoverflow.com/a/18832977/1768303 – Noseratio
Никакого существенного эффекта, 'setTimeout' работает в цикле событий, он не блокирует и не нарушает выполнение. –