Google Api Feed - 多个请求

时间:2010-09-02 12:57:52

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

两种解决方案都有效,但我不确定,这是对的 (清洁)方式?

提前致谢! 彼得

1 个答案:

答案 0 :(得分:1)

所以我认为你对发生的事情感到有点困惑。当您致电google.load("feeds", "1",{"callback": "get_it('http://myfeed.com/whatever')"})时,您并未请求Google在http://myfeed.com/whatever加载Feed。您所说的是:“嗨,Google,加载javascript以支持您的Feed api,当您的Feed api全部加载并准备好使用时,请致电get_it('http://myfeed.com/whatever'),其中大概是get_it您已在页面中定义的功能,该功能使用Google的Feed api来完成其任务。

所以我认为通过定义一个javascript函数来执行一个feed已准备就绪可以更好地实现你的目的,例如:

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

当Google API全部加载时,它会立即执行“go get the feeds”功能。

现在,至于并行获取Feed:信不信由你,也会并行加载Feed。 Javascript实际上没有任何阻止和等待网络I / O的能力,所以javascript中从网络获取东西的任何东西总是必须以下面的形式写出:“去做这个网络请求,这里是一个调用函数当你最终得到回应时“。但与此同时,浏览器上的javascript引擎仍在继续,而不等待响应回来。

这意味着在上面,您将触发http://www.fernsehkritik.tv/?feed=podcast的请求,您的浏览器将继续执行javascript,而无需等待网络响应,您将启动{{1}的第二个请求}。因此,即使浏览器中的javascript不允许多个执行线程,两个源的网络流量也将并行返回到您的浏览器。