Как периодически опрашивать данные, но останавливать индикацию загрузки страницы Firefox?

Мне нужно, чтобы моя веб-страница периодически опрашивала сервер на наличие новой информации каждые 10 секунд. У меня есть настройка таймера (setTimeout) для вызова моей функции AJAX для получения данных. По завершении функция AJAX устанавливает таймер еще на 10 секунд.

Проблема в том, что Firefox постоянно отображает «Индикатор загрузки страницы» (пульсирует).

Как мне периодически опрашивать новые данные, но при этом остановить пульсацию?

P.S. Если я нажму клавишу ESC, пульсация прекратится, а таймер продолжит работать, так что это грубый обходной путь. Мне нужен способ не вовлекать/не путать пользователя.


person Robert    schedule 27.09.2010    source источник


Ответы (2)


Есть несколько методов «фоновой» загрузки, когда вы не отображаете строку состояния или изменения курсора:

XHR Eval и XHR Injection — единственные методы, которые делают то, что вы хотите для FF (и всех других браузеров). Вы можете увидеть тестовый/примерный сайт здесь: http://stevesouders.com/hpws2/couple-xhr-injection.php

person AutoSponge    schedule 27.09.2010

Вы также можете посмотреть на WebSockets.

Это будет быстрее и не будет необходимости в таймере.

person luchaninov    schedule 27.09.2010
comment
Бесполезен, пока браузеры не поддерживают его. И даже когда они появятся, у 50% всех людей не будет этих браузеров. - person Tomasi; 27.09.2010
comment
Вы можете использовать его во всех современных браузерах. Реализация веб-сокета HTML5 на базе Flash — github.com/gimite/web-socket-js# ознакомительная информация - person luchaninov; 27.09.2010