У меня есть ряд последовательно названных страниц (URL-адреса, такие как: http://example.com/book/1, http://example.com/book/2, и т. Д.), Но я не могу знать, сколько страниц заранее. Мне нужно получить (определенную часть) каждой страницы, сохранить полученную информацию в порядке, не пропустить ни одной страницы и запросить минимальное количество пустых страниц.
В настоящее время у меня есть рекурсивная асинхронная функция, которая выглядит примерно так:
pages = []
getPage = (page = 1) ->
xhr.get "http://example.com/book/#{1}", (response) ->
if isValid response
pages.push response
getPage page++
else
event.trigger "haveallpages"
getPage()
xhr.get
и event.trigger
являются псевдокодом и в настоящее время являются методами jQuery (но это может измениться). isValid
также является псевдокодом, в действительности это тест, определенный в функции, но он сложный и не имеет отношения к вопросу.
Это работает хорошо, но медленно, поскольку за один раз обрабатывается только один запрос. То, что я ищу, - это способ лучше использовать асинхронную природу XHR и получить полный список за меньшее время. Есть ли образец, который мог бы помочь мне здесь? Или лучший алгоритм?