2010-09-02 3 views
0

можно ли запросить более 1 фида одновременно?Google Api Feed - многократный запрос

, например

google.load("feeds", "1",{"callback" : 'get_it(\'http:// 
www.fernsehkritik.tv/?feed=podcast\',\'1\'),get_it(\'http://rss.golem.de/rss.php?feed=RSS1.0\',\'99\')'}); 

или ...

google.load("feeds", "1",{"callback" : 'get_it(\'http:// 
www.fernsehkritik.tv/?feed=podcast\',\'99\')'}); 
google.load("feeds", "1",{"callback" : 'get_it(\'http://rss.golem.de/ 
rss.php?feed=RSS1.0\',\'99\')'}); 

Оба решения работают, но я не уверен, является ли это право (чистый) путь?

Заранее благодарен! Peter

ответ

1

Так что, я думаю, вы немного смущены тем, что происходит. Когда вы звоните google.load("feeds", "1",{"callback": "get_it('http://myfeed.com/whatever')"}), вы не просите, чтобы Google загрузил фид на http://myfeed.com/whatever. Что вы говорите: «Эй, Google, загрузите javascript для поддержки вашего api-файла, и когда ваш api-приложение полностью загружено и готово к использованию, вызовите get_it('http://myfeed.com/whatever'), где предположительно get_it - это функция, которую вы уже определили в . Ваша страница, которая использует Feed API Google, чтобы сделать свое дело

Так что я думаю, что ваша цель, была бы лучше, определив единый яваскрипт функции, чтобы выполнить одну подача готова, что-то вроде:

function feed_api_ready() { 
    get_it('http://www.fernsehkritik.tv/?feed=podcast', '99'); 
    get_it('http://rss.golem.de/rss.php?feed=RSS1.0', '99'); 
} 

И затем просто позвоните:

google.load("feeds", "1",{"callback" : 'feed_api_ready'}) 

Это приведет к тому, что функции «go get the feeds» сразу будут загружены, когда будет загружен API Google.

Теперь, как для получения каналов параллельно: верьте или нет, что также будет загружать каналы параллельно. Javascript на самом деле не имеет возможности блокировать и ждать сетевых операций ввода-вывода, поэтому все, что нужно в javascript, которое получает информацию из сети, всегда должно быть записано в форме: «Go make this network request, и вот функция вызова когда вы в конце концов получите ответ ». Но в то же время механизм javascript в браузере продолжает идти, не дожидаясь ответа, чтобы вернуться.

Это означает, что выше, вы отпустите запрос на http://www.fernsehkritik.tv/?feed=podcast, и ваш браузер продолжит выполнение javascript, не дожидаясь ответа сети, и вы отпустите второй запрос для http://rss.golem.de/rss.php?feed=RSS1.0. Таким образом, сетевой трафик для обоих каналов будет возвращаться в ваш браузер параллельно, хотя javascript в браузере не разрешает несколько потоков выполнения.

+0

Привет, Даниил, спасибо вам большое! – Peter

Смежные вопросы