回答困難在於不知道正在返回給用戶的服務器端資源是什麼。
我會編一些可以作爲例子。假設您開發的應用程序允許您實時監控您網站上的用戶發表的評論。我們可以採取一些措施來實現這一目標:
- 的服務器跟蹤評價時,加入(.created場)
- 獲得的最新評論API需要我們指定我們的意見如何老想的
- 從那時起
models.py
class Comment(models.Model):
text = models.TextField()
created = models.DateTimeField(default=datetime.now())
0已添加的視圖查詢並返回只有那些
urls.py
url(r'^comments/latest/(?P<seconds_old>\d+)/$',get_latest_comments),
views.py
def get_latest_comments(request, seconds_old):
"""
Returns comments that have been created since the last given number of seconds
have elapsed.
"""
# Query comments since the past X seconds
comments_since = datetime.datetime.now() - datetime.timedelta(seconds=seconds_old)
comments = Comments.objects.filter(created__gte=comments_since)
# Return serialized data or whatever you're doing with it
return HttpResponse(simplejson.dumps(comments),mimetype='application/json')
在客戶端你得到的JSON,檢查它是否有一個值,如果是這樣列舉的項目,並添加新的項目到您的<div>
標籤或任何其他。
正如您所看到的,開發僅返回最近更新項目的API將根據服務器返回的內容而有所不同。
從你的問題,它聽起來像你想要服務器管理識別最近更新,而不是客戶端(這是一個很好的策略)。在這種情況下,你需要做的是定義:
- 是怎樣的服務器將跟蹤(這是由「創造」領域所做的在我的例子)
- 如何在客戶端將改變請求這些更改
- 服務器如何確定發生了哪些更改以便通過API將它們返回給客戶端?
您鏈接到的頁面有一個很好的技術:散列內容,在響應中包含散列,在定時器上將散列發送到服務器,並讓服務器檢查散列以知道是否發送更多內容。你需要什麼幫助? – 2009-12-09 20:40:21