Имеется idшник. Этот idшник надо отправлять через http, в ответ получая статус и этот статус отдавать уже в html.
Как можно реализовать регулярную отправку http-запросов, кроме как через setTimeout и setInterval?
StockholmSyndrome, ну, у меня получается так, что выводится список сообщений и для каждого из них надо отдельно получать статус, просто, если их будет много, нормально ли то, что для каждого будут крутиться эти таймеры? не сильно ли это напрягать будет?
Jintsuu, организуй запрос статуса сразу для всех сообщений имеющихся в настоящий момент одним запросом.
Например в сетинтервале отправляй массив с id интересующих сообщений, а с сервера возращай массив статусов, а еще лучше не в сет интервал а в обработчике предыдущего запроса через сеттаймоут
Роман, тут проблема в том, что я http-запросами, обращаюсь к API, которая на один idшник возвращает один статус. И регулировать то, что мне возвращается соответственно не могу
Jintsuu, измените сервис (API), чтобы он мог обрабатывать id пачками, и пачками же возвращать статусы.
В любом случае, без изменения/доработки серверного API вы эту проблему не решите и вам останется только долбить сервер кучей запросов. Возможно чуть сократить нагрузку можео с помощью longpooling, но это всеравно не решит проблему полностью
Jintsuu, создайте PHP-скрипт и отправляйте запросы к API из него. Тем самым вы сможете отправить несколько запросов к API без лишней нагрузки на клиента. А из JS соответственно отправляйте запрос к этому скрипту.
Роман, а что решит? Если исходить из решения вопроса с помощь AJAX-запросов, то это самый оптимальный вариант. Нагрузка на клиента - один запрос в определенном интервале. Вся остальная нагрузка по запросам к API через сервер. Оптимальнее только веб-сокеты, но еще не факт есть ли смысл их использовать в данном случае.
DanKud, не меняя серверный api немного снизить нагрузку позволят longpooling запросы. Но это даже не полумера, это четвертьмера. Если идти по вашему пути то действительно можно создать некоторый промежуточный микросервис, принимающий запросы от клиетов в виде массивов id и перезапрашивайющий их статус у основного сервера, при этом с обязательным кэшированием результатов, чтобы избежать лишних запросов к основному серверу.
НО ... все это не имеет смысла если автор вопроса может доработать API основного сервера.
Василий, я тоже сторонник вебсокетов, но както делал внутренний вебсервис для одной госконторы, и у них везде ие8. Пришлось изголятся, делая чтото типа faye