我正在通過Java servlet技術開發一個Web應用程序,其中客戶端頁面通過JavaScript向服務器輪詢,每隔2秒後對新數據發出AJAX請求。 我面臨的問題是,由於多個並行客戶端的定期輪詢,服務器變慢。Javascript連續服務器輪詢
因此,只有在更新服務器上的數據的服務器觸發任何其他請求後,纔會自動實現此功能。
我想使用JavaScript的彗星,但沒有得到適當的代碼執行。
任何幫助將是可觀的。
問候, 人工魚礁
我正在通過Java servlet技術開發一個Web應用程序,其中客戶端頁面通過JavaScript向服務器輪詢,每隔2秒後對新數據發出AJAX請求。 我面臨的問題是,由於多個並行客戶端的定期輪詢,服務器變慢。Javascript連續服務器輪詢
因此,只有在更新服務器上的數據的服務器觸發任何其他請求後,纔會自動實現此功能。
我想使用JavaScript的彗星,但沒有得到適當的代碼執行。
任何幫助將是可觀的。
問候, 人工魚礁
使用websockets到您的服務器與客戶端連接。
看起來像是您啓動websockets的絕佳機會。這是爲了這樣的目的。 WebSocket - Wikipedia
如果你想編寫不同語言的服務器應用程序,以及時,你可以輕鬆谷歌的WebSocket教程該語言來幫助你
是的,Servlet 3.0將是您的需求的良好解決方案。
它會釋放你的線程,而你的請求正在執行 你可以閱讀更多關於這裏。下面的文章中:
http://www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.html
另外我建議你看看Atmosphere Framework和Netty framework
這些框架可以給你不錯的替代標準Servlet容器如果追逐快速Comet實現。
希望它有幫助。
顯然你應該使用彗星的方法。您可以嘗試使用socket.io。這個協議有幾個Java實現,如socketio-java和netty-socketio。您將能夠覆蓋比使用WebSockets更多的瀏覽器。
你究竟在做什麼輪詢?每次用ajax請求打到服務器端時會發生什麼? – 2012-04-27 11:13:15
@JamieDixon當我的jsp正在加載,然後我通過javascript函數,通過'xmlhttp.open(「GET」,「gettime」,true)發送ajax請求; // gettime將是servlet名稱xmlhttp.onreadystatechange = getVal;' getVal是javasrcipt方法,我從servlet中獲取XML格式的數據,之後我通過'xmlhttp.responseXML解析數據。 documentElement.getElementsByTagName(「ABCD」);'並利用它。 並且getVal有setTimeout(methodname,2000);每2秒鐘執行一次。 – Ars 2012-04-27 11:35:09