如何在回报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