2011-10-13 34 views
0

我想製作一個django服務器來刷新您接近數據庫的內容,如果這個想法是首先讓用戶看到數據庫的當前內容並且隨着山谷成爲新的內容,內容出現並放置在以前的內容之上而不重新加載頁面,而在該網站的另一部分中,是讓您使用新的內容更改當前的內容,直到它到達數據庫?http push django comet

evserver更清晰是我的選擇,但真的不知道如何以及最簡單和高效的是什麼?

回答

0

的步驟是非常簡單:

  1. 寫模型將數據存儲在DB
  2. 收件,將產生在POST請求JSON-串行化的數據的圖。
  3. 編寫一個將包含JavaScript的模板,setInterval()將 繼續對視圖的AJAX請求並呈現接收到的數據。 (我建議使用JQuery,因爲它有很好的文檔和廣泛的)。
1

我認爲你應該避免HTTP輪詢。原因如下:

  • 如果setInterval的頻率與您網絡應用上的用戶數量相結合將導致大量資源耗竭。如果您通過this presentation中的幻燈片9到19,您會看到使用Push的一些非常顯着的數字(注意:此示例使用託管服務,但託管您自己的實時服務器並使用Push也具有類似的優點
  • setInterval調用您的應用程序中顯示的數據可能沒有數據。使用Push技術意味着新數據可用的時候,它可以推送並顯示在您的應用程序中。您不希望用戶在查看應用程序,並且認爲他們在沒有時看到正確的信息。

您應該採取以下StackOverflow的問題:

對於Python /彗星看到:

我建議你也開始考慮 「的WebSockets」 以及 「彗星」。如果可能,大多數Comet服務器現在都傾向於使用WebSocket連接。

如果您希望避免安裝和管理您自己的Comet/WebSocket解決方案,那麼您可以使用realtime hosted service,這將允許您使用REST API通過它們推送數據,並且客戶端可以通過嵌入JavaScript庫寫一小段代碼來訂閱和接收事件。