2011-02-28 49 views
0

對於我的下一個應用程序,我想實現一些功能,如facebook牆,但讓我解釋一下。對於那些使用Facebook的人,您知道當有人在牆上發佈消息,並且您已登錄到您的帳戶時,您會立即在左下角的某處收到通知。最近,他們甚至進一步推動了這一點,如果有人對它進行評論,那麼評論會在您看到頁面時更新,就像即時聊天。如何更新基於用戶操作的內容[如Facebook牆]

我的應用程序將在PHP中開發,我將使用Zend Framework來完成它。我對使facebook壁像這樣的實時(更新實時)的基本原理感興趣。我知道有一個涉及到的Ajax,但我無法真正瞭解當用戶做某事時JavaScript是如何觸發的。或者甚至更多,如何推回給用戶一些他查看該頁面後添加的信息。例如,假設有人將我添加爲朋友。如果我已登錄,我希望看到一封通知「X已將您添加爲朋友」。我希望您瞭解我正在嘗試執行的操作。 如果你可以告訴我一些基本的想法,也許提供一些有這些信息的鏈接,我將非常感激。

謝謝你的閱讀時間。

回答

0

只有部分可以保持HTTP連接打開的,所以最好的選擇可能是輪詢更改。您可以每秒發送一次請求,查看自「x」時間以來是否有任何更改。在您沿服務器發送的每個響應時間。通過新請求發送舊請求的時間,服務器可以返回發生在其間的任何事件。

0

您還可以閱讀關於AMQP的內容。您可以將消息發送給接收方inboxes(在系統中執行了一些操作後),然後在開始後或某段時間間隔後讀取inboxes

2
  1. 如果觸發了某些事件,則將事件存儲在數據庫(使用ajax或不使用ajax)。

  2. 您將需要在服務器中的腳本來檢查是否某個事件已被觸發。該腳本應該能夠檢查存儲在數據庫中的事件。

  3. 您需要定期執行步驟2中的腳本。這可以通過使用ajax(javascript或jquery)和函數settimeout(在JavaScript上)來定期向服務器發送ajax請求。

  4. 更改從服務器發送。所以使用javascipt和jquery解析響應並在頁面中更新。

因此,它可以概括爲

  1. 註冊(一個用戶)

  2. 檢查事件的事件(其他用戶)

  3. 解析響應並更新頁面

有幾種優雅的方式可以做到這一點,並被其他人回答。

最好的辦法就是開始項目並尋求幫助。

+0

謝謝你,我沒有把你的答案標記爲接受,因爲3nigma提供了一些鏈接,我可以找到相關信息。雖然爲此感謝,但我一定會記得你的回答。一旦我開始申請,我會回到這裏尋求幫助。 – user253530 2011-02-28 14:39:51

+0

@ user253530當然!我也很喜歡開發這樣的事情。如果你開始,讓我知道,也許我們可以分享一些模塊和項目 – 2011-03-01 04:19:22

相關問題