我有一個簡單的網站(http://www.kousenit.com/twitterfollowervalue),它根據個人的Twitter追隨者計算數量。由於Twitter API一次只返回關注者100,因此完整的流程可能涉及大量的呼叫。在長時間的Ajax呼叫中顯示進度
目前,我有一個Ajax調用運行Twitter循環的方法。該方法看起來像(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方法可能需要相當長的時間。有什麼方法可以返回進度值?例如,我想在每次迭代中更新網頁。我事先知道會有多少迭代。我只是無法找出一種方法來更新該循環中的頁面。
任何建議,將不勝感激。
這是長期HTTP請求或服務器推送的典型應用程序。有關更多詳細信息,請參見http://en.wikipedia.org/wiki/Comet_%28programming%29。 – John 2010-04-04 04:02:13