2011-06-15 126 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

相关问题