【问题标题】:Comet applications without using IFrames不使用 IFrame 的 Comet 应用程序
【发布时间】:2008-11-20 15:57:06
【问题描述】:

我刚刚开始使用服务器端推送创建 AJAX 应用程序。我在 Glassfish V2 上使用灰熊彗星。几乎所有示例应用程序都使用 IFrame 在客户端更新内容。我想坚持使用 仅 JavaScript。有没有这样的示例应用程序(最好是不使用 JavaScript 库的应用程序)?

【问题讨论】:

    标签: javascript ajax comet server-push


    【解决方案1】:

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

    IFrame 很好,如果符合标准,您也可以尝试使用 object 标签。

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

    【讨论】:

    • 我正在使用 XMLHttpRequest,它对 Firefox 中的彗星流非常有效。遗憾的是,我还需要为 IE 提供 iframe 选项,但 XMLHttpRequest 更好。 IE 中有一个类似的对象,但是它不能像 Firefox 那样在 readyState (mode) 3 中访问。因此,您只能在流完成后使用它 - 对于彗星流几乎没有用处。
    【解决方案2】:

    这就是我想出如何仅使用 javascript 和 php 进行推送的方法。

    让 javascript 进行初始调用并将内容加载到 div 中。 然后让 javascript 回调到 php 并让 php 休眠,直到它看到有新的更新。 然后把数据发给大家,然后回调php,再次sleep。

    这允许长时间轮询和更少的背靠背调用。我个人在php脚本上放了5分钟到30分钟的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2011-07-10
      相关资源
      最近更新 更多