Выполнить много запросов AJAX параллельно, и запустить функцию после их завершения

Я пытаюсь выполнить следующую последовательность операций, используя JQuery в HTML.

  • Составлен список URL-адресов
  • Каждый из этих URL-адресов запрашивается с использованием $ .getJSON (url) параллельно
  • Дождитесь завершения или отказа всех запросов (может произойти 404)
  • Возьмите данные всех выполненных JSON-запросов и сделайте что-нибудь.

Я создал код Java-Script, размещенный ниже. Он работает безупречно, за исключением случаев, когда один из запросов завершается неудачно из-за ошибки 404: Затем $. When не запускается, потому что он немедленно прерывается, если запрос завершается неудачно. Можете ли вы каким-то образом переопределить ajax-запросы, чтобы они не терпели неудачу, а вместо этого возвращали пустой источник?

Я уже читал этот и этот пост, но он не предоставляет решение, в котором код может быть запущен после завершения всех запросов. u2 = "см. http://www.cnn.com/stuff2" u3 = "http://www.espn.com/stuff3 интересно" Что-то вроде ...

Я хочу сопоставить URL в строках вроде

u1 = "Check this out http://www.cnn.com/stuff lol"
u2 = "see http://www.cnn.com/stuff2"
u3 = "http://www.espn.com/stuff3 is interesting"

Что-то вроде следующего работает, но это громоздко, потому что мне нужно повторить весь шаблон

re.findall("[^ ]*.cnn.[^ ]*|[^ ]*.espn.[^ ]*", u1)

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

re.findall("[^ ]*.cnn|espn.[^ ]*", u1)

, но, конечно, сейчас это не работает, потому что я неправильно указываю имя веб-сайта. Как это можно сделать лучше? Спасибо.

6
задан ceiling cat 24 April 2011 в 21:51
поделиться