Нужно выполнять вызов ajax постепенно после фиксированных периодов времени в JavaScript? - PullRequest
1 голос
/ 30 марта 2010

Привет, ребята, мне нужно иметь возможность совершать ajax-вызовы через каждые несколько минут. По сути, вызов ajax заключается в проверке новых электронных писем во входящих. Если появятся новые электронные письма, они будут загружены в базу данных. Я получил весь серверный код настроен нормально. Мне просто нужно знать, как настроить на входной стороне ту часть, где ajax-вызов выполняется через каждые несколько минут, плюс он должен быть настроен таким образом, чтобы мы не заканчивали параллельными ajax-вызовами, то есть если ajax call не вернул ответ, он не должен начинать новый ajax-запрос.

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

http://www.w3schools.com/jsref/met_win_settimeout.asp
или
http://www.w3schools.com/jsref/met_win_setinterval.asp

установленный интервал, вероятно, больше похож на то, что вы после, вы можете вызвать что-то вроде

setInterval (function () {/ * код, который вы хотите запустить здесь * /}, 100);

тогда ваш код будет выполняться каждые 100 миллисекунд.

Вам, безусловно, нужно будет использовать гораздо большее время, например, 60000 за каждую минуту. Если вы используете метод settimeout, вы можете проверить, дождался ли ответ ajax, и позволить коду, обрабатывающему ответ ajax, установить новый тайм-аут.

1 голос
/ 30 марта 2010

Существует также периодическое обновление Prototype, которое делает вещи намного проще

несколько примеров

http://www.tutorialspoint.com/prototype/prototype_ajax_periodicalupdater.htm

http://www.prototypejs.org/learn/introduction-to-ajax

http://www.prototypejs.org/api/ajax/periodicalUpdater

0 голосов
/ 30 марта 2010

Я бы настроил cookie, который будет пересылаться между сервером и клиентом, чтобы сохранить последний раз, когда был сделан запрос ajax. Затем при каждой загрузке страницы js-скрипт считывает cookie и устанавливает setTimeout на оставшееся время до следующего ajax-запроса.

...