Лучшая практика: очень длительные процессы опроса в Javascript? - PullRequest
2 голосов
/ 22 марта 2012

У меня есть приложение для сенсорного экрана, которое я разрабатываю и которое будет развернуто в последней версии Chrome.

Приложению необходимо будет совершать AJAX-вызовы через веб-службу каждые 10 минут или около того, чтобы получать любой обновленный контент.

Поскольку это приложение для киоска, вряд ли эта страница будет перезагружаться очень часто и теоретически, если только киоск не выключен, приложение может работать несколько дней подряд.

Полагаю, меня беспокоит использование памяти, и достаточно ли времени для выполнения очень продолжительного цикла setTimeout с большим объемом памяти.

В настоящее время я рассматриваю вопрос об использовании веб-работников и также собираюсь изучить веб-сокеты, но мне было интересно, имел ли кто-нибудь опыт работы с подобными вещами?

Cheers, Терри

1 Ответ

2 голосов
/ 22 марта 2012

В браузере есть сборщик мусора, поэтому проблем с этим нет. до тех пор, пока вы не введете утечки памяти из-за плохого кода. вот статья и другая статья о шаблонах утечки памяти. это должно помочь вам начать программировать эффективно и снимать код с утечкой.

также, вы должны рассмотреть DOM. человек в SO однажды сказал, что «вещи, которые не отображаются на экране, должны быть удалены, а не просто скрыты» - это не только удаляет сущность в перспективе просмотра, но фактически удаляет ее из DOM, удаляет ее обработчики и память используется будет освобожден.

Что касается setTimeout, увеличьте интервал между вызовами. Слишком быстро, вы будете быстро жевать память (и визуализировать страницу довольно ... медленно). Я только что проверил код для обнаружения «hashchange» на основе таймера, и даже в chrome он делает страницу довольно медленной.

исследуйте ошибки хрома и постоянно обновляйтесь.

...