2013-07-18 40 views
0

所以我使用django框架顯示一個網頁。 現在,當有人檢入我的某個位置時,我會從foursquare API獲取異步POST響應。接收異步POST響應,需要更新網頁

這是一個奇怪的問題。

我的問題:只要我的服務器收到來自四方API服務器的POST響應,什麼是最好的方式來更新網頁,而不刷新它。 現在,在處理POST響應的視圖中,我只更新了一些上下文變量,並在另一個視圖中使用這些變量來顯示內容,但顯然這些更改僅在刷新頁面後才顯示。

我已經研究過AJAX並瞭解它在客戶端意識到某些事件發生時會很有用,然後調用函數來接收某些值並更新頁面的某些部分(如某些div)。

但在我的情況下,客戶端並沒有意識到任何此類事件,因爲當有人檢入並且響應來自foursquare服務器到我的服務器時,請求正在生成。

我有一些方法可以解決這個問題嗎? 我已經看到了dajax和dajaxice,但找不到它們如何有用。

我已經看到了一些解決方案,我可以添加一些JQuery來以小的定期間隔查詢服務器,但看起來並不理想。

關於我應該看什麼的建議?

原來,Web套接字不會削減它,因爲我沒有任何事件發生在客戶端,我不需要全雙工通信;彗星似乎是一個沉重的框架,我正在研究其他的東西。打開冷卻建議。

+0

請考慮服務器發送的事件。 – Anderson

回答

0

您可以選擇:

  1. Comet
  2. 網絡插座HTML5
  3. Server-sent Events爲HTML5。對於ie,您可能需要polyfill
+0

酷我會考慮彗星。我確實碰到過它,但是我沒有詳細閱讀。 – AdRoiT

+0

原來,Web套接字不會削減它,因爲我沒有任何事件發生在客戶端,我不需要全雙工通信; Comet似乎是一個沉重的框架。謝謝!! – AdRoiT

+0

全雙工通信意味着即使在服務器端出現問題,您也可以在此刻更改客戶端的內容。如果你不關心ie 6這樣的老式瀏覽器,你可以選擇它。 – Anderson