2013-02-18 86 views
0

我正在使用Objectify構建在Spring MVC和Google App Engine上的項目。通過Web Socket或AJAX刷新頁面內容

此應用程序的主要功能是:如果有人向數據存儲發佈新內容,則應自動發佈到與其連接的瀏覽器,而不刷新頁面內容。基本上這是一個像網站一樣的新聞。發送到瀏覽器的數據是基於REST API的JSON數據。

爲了實現這個功能我想用以下途徑:

  1. AJAX:我想用AJAX調用每2-3分鐘,以獲得更新的。但是這個解決方案似乎並不可行,因爲許多瀏覽器的AJAX調用都有很多數據存儲區的讀取操作。

  2. 網絡套接字:這個概念對我來說很新穎。我不知道這件事。一些pusher.com使用此技術來建立此類連接。

現在我需要你的建議,使用上述兩者中的哪一個或我也對其他解決方案開放。

+0

WebSocket確實比傳統的Ajax更快,更高效,但是如果你使用WebSocket,那麼你可能仍然需要爲不支持WebSocket的舊瀏覽器編寫Ajax備份。 – HartleySan 2013-02-18 08:47:54

+0

先生,你可以建議我使用網絡套接字的一些例子。我需要這個應用程序在移動瀏覽器上運行,所以可能我不需要編寫AJAX代碼。 – 2013-02-18 09:00:28

+0

也許你使用的是頻道API。 https://developers.google.com/appengine/docs/java/channel/ – voscausa 2013-02-18 09:56:46

回答

0

Google應用引擎不支持網絡套接字,但它支持類似於通道API的東西,它也適用於舊版瀏覽器。這可能不可行,具體取決於您將連接多少人(頻道的費用爲每100人1c)。通道也有一些注意事項:https://developers.google.com/appengine/docs/python/channel/overview#Caveats

至於使用Ajax - 如果緩存在內存緩存響應並刷新鍵每隔3分鐘,那麼你不會做任何的數據存儲讀取,除非一個新的實例解僱了或密鑰到期。