2011-06-15 127 views
1

你好,我想處理一些服務器推送。我有一個異步servlet處理某些東西,將它推送到客戶端,然後處理其他東西並將其再次推送到客戶端(同一連接)。 servet只是返回數據(在這種情況下是Json,但這並不真正)只是返回數據。異步Servlet客戶端,服務器推送

所以我的問題是客戶端。我如何爲此建立一個客戶端?如果我用JQuery做一個ajax請求,例如我如何對第一個響應之後的數據做出反應?

爲了更清楚我想在這裏是一個比較:與websockets我有方法onmesssage。

websocket ws = new WebSocket("ws://myserver.com"); 
ws.onmessage = function(event) 
{ 
    var x = event.data 
    .... // some other code here 
} 

所以我想要的只是一個onmessage方法:)。我想這不是那麼容易,因爲它是與websockets,但也許有人有一個想法。

問候阿萊克斯

回答

0

你可以有你的服務器產生被加載到客戶端的隱藏的iframe的響應。生成的響應將包含調用「外部」(包含文檔)的偶然JavaScript語句。您可以使用parent獲取包含文檔。

但請不要說這種技術是非常黑客(至少在我看來)。您可能需要重新考慮使用XMLHttpRequest,尤其是因爲它可以爲您提供簡單而強大的錯誤處理。你可以做更多的請求(而不是在服務器端追加一個「舊」響應)。這可能會引入額外的滯後,但iframe技巧在實踐中真的很麻煩。

+0

嗨Waldheinz,我同意iframe的想法有點不太乾淨。但是你指出了我想要的解決方案(XMLHttpRequest)。這正是我所尋找的。非常感謝 – Aleks 2011-06-15 14:10:20

+0

不客氣,歡迎來到SO。 – Waldheinz 2011-06-15 14:11:46

相關問題