2015-09-06 157 views
-1

我試圖創建一個類似於Facebook主頁使用MEAN堆棧的網頁。 因此,當您添加新帖子時,該頁面將添加帖子而不刷新它。如果我刪除帖子,則頁面將刪除帖子而不刷新頁面。如何在不使用節點刷新的情況下更新當前頁面?

我應該使用Ajax,Socket io還是其他?不確定實施這個的最佳實踐是什麼。

如果你有一個工作的例子,那將會很棒。

感謝

回答

1

什麼是你要求的是一種情況叫做服務器推送,你希望服務器能夠通知一個打開的網頁有關某種變化使JavaScript中的頁面就可以更新顯示沒有重新加載它的頁面。

在現代瀏覽器中實現服務器推送的常用方式是使瀏覽器網頁上的webSocket連接返回到服務器。這個webSocket連接將保持打開狀態,服務器隨時可以隨時向網頁發送消息(宣佈新帖子或刪除帖子),然後網頁中的Javascript可以相應地更新顯示。

在node.js和所有瀏覽器中工作的webSocket的常見實現是您提到的socket.io庫。它在webSockets之上添加了一些有用的功能,例如自動重新連接和簡單的消息傳遞系統。

另一個效率不高的方法是讓每個網頁發送一個重複的ajax調用(比如說每分鐘)到服務器,詢問最近發生了什麼變化。但是,由於這會導致很多Ajax調用,而且沒有任何變化,這可能最終導致服務器負載和帶寬使用效率明顯降低。

相關問題