不使用IFrames的彗星应用程序

3

我刚开始使用服务器推送创建一个AJAX应用程序,我正在使用Glassfish V2上的Grizzly Comet。几乎所有的示例应用程序都使用IFrame来更新客户端上的内容。我想坚持只使用JavaScript。是否有这样的示例应用程序(最好不使用JavaScript库)?

2个回答

3

关于推送的重点是HTTP请求从未结束。并非所有客户端实现都能正确处理。据我所见,在Firefox中,可以通过其广泛的API纯JavaScript来实现,但XMLHTTPRequest对象会超时,并且无法流式传输内容。

IFrame很好用,如果涉及标准合规性,也可以尝试使用object标签。

在XMLHTTPRequest和Ajax没有名称之前,我们通常通过IFrames从服务器获取数据。


我正在使用XMLHttpRequest,在Firefox中它非常有效地支持comet streaming。遗憾的是,为了在IE上也能有一个iframe选项,我还需要使用它。但是相比起来,XMLHttpRequest更加好用。在IE中有一个类似的对象,但是无法像Firefox那样在readyState(模式)3中访问它。因此,只能在流已完成时利用它 - 对于comet streaming几乎没有什么用处。 - Konrad

1

这是我如何使用JavaScript和PHP实现推送的方法。

让JavaScript进行初始调用并将内容加载到div中。 然后让JavaScript回调到PHP,并让PHP休眠,直到它看到有新的更新。 然后向所有人发送数据并回调到PHP并再次休眠。

这允许长轮询和更少的回调。我个人在PHP脚本上设置了5分钟到30分钟的时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接