Google Api Feed - несколько запросов - PullRequest
0 голосов
/ 02 сентября 2010

можно ли запросить более 1 канала одновременно?

, например

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\')'});

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

Заранее спасибо!Питер

1 Ответ

1 голос
/ 17 сентября 2010

Так что я думаю, вы немного запутались в том, что происходит. Когда вы звоните по номеру 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 - это функция, которую вы используете» Вы уже определили на своей странице, что для этого нужно использовать API подачи Google.

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

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, который получает данные из сети, всегда должно быть записано в виде: «Идите, сделайте этот сетевой запрос, и вот функция для вызова когда вы в конечном итоге получите ответ ". Но тем временем движок javascript в браузере продолжает работать, не дожидаясь ответа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...