2010-09-02 97 views
0

是否可以同时请求超过1个Feed?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

所以我认为你对发生了什么事情有点困惑。当您致电google.load("feeds", "1",{"callback": "get_it('http://myfeed.com/whatever')"})时,您并未要求Google以http://myfeed.com/whatever加载Feed。你说的是:“嘿,谷歌,加载JavaScript来支持你的feed api,当你的feed API全部加载并准备使用时,请拨打get_it('http://myfeed.com/whatever'),那里大概是get_it是你已经定义的函数。您的网页,使用谷歌的饲料API做的事情

因此,我认为你的目的,将通过定义一个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'}) 

当Google API全部加载时,它将立即执行“获取提要”功能。

现在,至于获取并行的饲料:不管信不信,它也会并行加载饲料。 Javascript实际上并没有任何阻止和等待网络I/O的能力,所以任何能够从网络获取内容的JavaScript都必须以下面的形式写入:“去做这个网络请求,这里有一个函数可以调用当你最终得到回应“。但与此同时,浏览器上的JavaScript引擎继续进行,而无需等待响应回来。

这意味着上述情况下,您将触发http://www.fernsehkritik.tv/?feed=podcast的请求,并且您的浏览器将继续执行javascript,而无需等待网络响应,并且您将触发第二次请求http://rss.golem.de/rss.php?feed=RSS1.0。因此,即使浏览器中的JavaScript不允许执行多个线程,两个Feed的网络流量也会并行返回到您的浏览器。

+0

嗨丹尼尔,非常感谢你! – Peter 2010-09-17 08:00:29