没有使用IFrame的Comet应用程序

时间:2008-11-20 15:57:07

标签: javascript ajax comet server-push

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

2 个答案:

答案 0 :(得分:3)

关于推送的要点是HTTP请求永远不会结束。并非所有客户端实现都能正确处理。正如我所看到的,可以在Firefox中使用纯粹的javascript以及其广泛的API来实现它,但XMLHTTPRequest对象会超时并且无法为您传输内容。

IFrame很好,你也可以尝试使用object标签,如果它符合标准的要求。

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

答案 1 :(得分:1)

这就是我如何用javascript和php来解决的问题。

让javascript进行初始调用并将内容加载到div中。 然后让javascript回调到php并让php睡眠,直到它看到有新的更新。 然后将数据发送给每个人并回电话给php再次睡觉。

这允许长轮询和少量回拨。我个人在PHP脚本上花了5分钟到30分钟的时间。