2010-09-02 118 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