Создание постоянного цикла в JavaScript - PullRequest
0 голосов
/ 17 февраля 2011

Я написал приложение Adobe AIR, которое ведет себя так:

Пользователь входит в систему и создает постоянный цикл с использованием setTimeout.Этот цикл выполняет HTTP-запрос, сравнивает строку json md5, которая возвращается в глобальную переменную.Если эти два значения отличаются, DOM обновляется с новым содержанием.Когда пользователь выполняет другое действие, такое как отправка ответа или удаление сообщения, выполняется автоматическое обновление, и это «приостанавливает» цикл.По сути, это простой почтовый клиент.

То, как я это делаю, ненадежно и вызывает утечки памяти.Я планирую переписать его с нуля, и я не хочу оказаться в той же лодке, в которой я сейчас нахожусь.Если бы кто-нибудь мог дать мне примеры того, как они это сделают или дать мне какой-либо совет, это было бы очень ценно.Заранее спасибо!

1 Ответ

0 голосов
/ 17 февраля 2011

Вам не следует так часто опрашивать, а используйте технику, известную как «длинный опрос» или «КОМЕТА». По сути, вы отправляете запрос, который будет оставаться открытым, пока не будет получен ответ из-за обновленных данных и т. Д. Или из-за истечения времени ожидания. После получения какого-либо ответа вы немедленно отправляете новый запрос.

Это экономит большую пропускную способность и нагрузку на сервер, так как значительно уменьшает количество отправляемых запросов.

...