如何在回報Twitter widget時調用回調?Twitter小部件回調
使用他們提供的代碼:
TWTR.Widget({data: something}).render().setUser('me').start();
Twitter已經出了名的參差不齊的服務和頻繁的加載時間長。如何在加載TWTR小部件時添加回調,以便在此期間向用戶顯示加載程序?
如何在回報Twitter widget時調用回調?Twitter小部件回調
使用他們提供的代碼:
TWTR.Widget({data: something}).render().setUser('me').start();
Twitter已經出了名的參差不齊的服務和頻繁的加載時間長。如何在加載TWTR小部件時添加回調,以便在此期間向用戶顯示加載程序?
我不得不在Twitter上搜尋圖書館的作者,但是there is a ready
callback: E.g.
new TWTR.Widget({
id: 'twitter-feed',
version: 2,
.
.
.
features: {
scrollbar: false,
.
.
},
ready: function() {
jQuery("div#twitter-load").remove();
}
}).render().setUser('me').start();
除了準備()回調和_rendered屬性(感謝jasie和harpyon),還有其他有用的,未記錄特性也的條帶。例如。結果(一個數組,result.length)和showsResults(另一個數組,result的子集)。
使用ash的「ready」函數發現,我需要添加一些輪詢,以便只在實際加載的任何推文中刪除加載消息。爲了驗證這一點,我將以下內容添加到我的hosts文件來模擬一個錯誤獲取的tweet:
127.0.0.1 api.twitter.com
請注意,我的投票只能用200ms的間隔執行10次。這是因爲我不希望代碼在頭2秒內加載推文時無限次輪詢(如果它們要加載的話)。您可以調整這些值以適應您的情況。
function pollForTweets() {
if (jQuery("div#twitter-feed").find("div.twtr-tweet").length > 0) {
jQuery("div#twitter-load").remove();
return;
}
pollForTweets.pollCounter = pollForTweets.pollCounter || 0;
if (pollForTweets.pollCounter < 10) {
pollForTweets.pollCounter++;
setTimeout('pollForTweets()', 200);
}
}
new TWTR.Widget({
id: 'twitter-feed',
version: 2,
.
.
.
features: {
scrollbar: false,
loop: false,
live: false,
behavior: 'all'
},
ready: function() {
pollForTweets();
}
}).render().setUser('twitter').start();
雖然ready函數適用於我,但即使在小部件無法檢索任何推文的情況下(使用我的開發計算機上的主機文件更新進行api.twitter.com測試),它也會觸發它。 – 2012-05-03 01:04:14