【发布时间】:2010-04-03 22:09:20
【问题描述】:
我有一个简单的网站 (http://www.kousenit.com/twitterfollowervalue),它根据一个人的 Twitter 关注者计算一个数量。由于 Twitter API 一次只返回 100 个关注者,因此一个完整的过程可能涉及大量调用。
目前,我有一个对运行 Twitter 循环的方法的 Ajax 调用。该方法看起来像(Groovy):
def updateFollowers() {
def slurper = new XmlSlurper()
followers = []
def next = -1
while (next) {
def url = "http://api.twitter.com/1/statuses/followers.xml?id=$id&cursor=$next"
def response = slurper.parse(url)
response.users.user.each { u ->
followers << new TwitterUser(... process data ...)
}
next = response.next_cursor.toBigInteger()
}
return followers
}
这是从一个名为 renderTTFV.groovy 的控制器调用的。我使用原型库通过 Ajax 调用调用控制器:
在我的网页上,在标题部分 (JavaScript):
function displayTTFV() {
new Ajax.Updater('ttfv','renderTTFV.groovy', {});
}
页面正文中有一个 div 会在调用完成时更新。
一切正常,但 updateFollowers 方法可能需要相当长的时间。有什么方法可以返回进度值吗?例如,我想在每次迭代时更新网页。我提前知道会有多少次迭代。我只是想不出在循环中间更新页面的方法。
任何建议将不胜感激。
【问题讨论】:
标签: javascript ajax groovy progress-bar prototypejs