是否可以同时请求多个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\')'});
两种解决方案都有效,但我不确定,这是对的 (清洁)方式?
提前致谢! 彼得
答案 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不允许多个执行线程,两个源的网络流量也将并行返回到您的浏览器。