2009-10-27 77 views
1

就像在SO中,如果有人回答了問題,如果有人回答了所述問題,就會出現通知(通過AJAX?)。我有點複製這個的唯一方法是在我的腳本中包含一個超時,以便每n秒更新一次。有沒有辦法使用PHP + Javascript(w/jQuery)上的觀察者模式來做到這一點?如何在PHP + Javascript/jQuery上實現觀察者模式?

回答

2

您必須查看ReverseAJAXCOMET方法論。

作爲每維基

反向的Ajax指的是使用長壽命的HTTP 連接以實現一個網絡服務器和 一個瀏覽器之間的低等待時間 通信一個Ajax設計 圖案。基本上它是 從客戶端向服務器發送數據的一種方式,並且 是用於將服務器數據 推回到瀏覽器的機制。

編輯:

我建議你實現以下方法,這是很容易實現。我以stackoverflow回答爲例。

  1. 答案頁加載完成後。啓動一個Ajax請求(Asynchronos,所以它不會阻止用戶界面)
  2. 它會尋找在服務器端新的更新(輪詢數據庫檢查是否添加任何新的答案)
  3. 而數據只返還給瀏覽器,如果有更新。否則保持冷靜。
  4. 將數據返回給客戶端後,客戶端應調用另一個AJAX請求並等待更新。
  5. 重複步驟2至4,查看頁面剩餘時間。

希望這會有所幫助。

+0

感謝您的鏈接,客戶和長期投票主題讓我思考。現在有很多想法突然冒出來。但我需要更具體的答案。不管怎麼說,還是要謝謝你。 – putolaruan 2009-10-27 10:52:56

+0

@mives,我剛剛更新了我的ansewer,看看.. – RameshVel 2009-10-27 11:32:31

0

如果您使用超時向服務器查詢更新,它仍可能被認爲是Observer模式的特殊實現。不幸的是,這是不可能的。如果服務器完成對主要HTTP請求的響應,客戶端只需完成「監聽」。唯一的方法是從客戶端發出一個異步請求。