当前位置: 代码迷 >> Web前端 >> http长连接技术(四)iframe demo
  详细解决方案

http长连接技术(四)iframe demo

热度:847   发布时间:2012-10-26 10:30:59.0
http长连接技术(4)iframe demo
标签:web javascript comet php
  接下来我们看看Zeitoun 网站上提供的comet例子。
  Demo1: comet-iframe.tar.gz
  这个主要包含3个文件
  index.html
  backend.php
  prototype.js
  在php环境部署后,发现it doesn’t works!
  老外也会忽悠人。
  检查一下,是backend.php中没有ob_flush(见2)
  修改一下。 It works!
  缺省配置下运行30s后会报php响应超时。还需要
  set_time_limit(0);(见2)

  分析一下,backend.php很简单。就是死循环,通过主页面的js函数输出
  index.html页面,分为3类浏览器分别处理。
  所谓comet,就是一个对象封装。
  对于IE类的,使用htmlfile控件嵌iframe。注意:opera也支持这种方式。FF没有试。
  对于KHTML类的,使用iframe。Opera和ie也支持这种方式。不过IE会有下载提示。
  对于其他的,如FF,使用iframe再嵌iframe。Opera支持这种方式。但是IE不支持。

  注意,这里第3类的处理又有点小问题,在opera环境
comet.connection.appendChild(comet.iframediv);
   document.body.appendChild(comet.connection);
   这两句需要倒过来
document.body.appendChild(comet.connection);
      comet.connection.appendChild(comet.iframediv);
  IE不支持iframe 的嵌套
  Opera的iframe嵌套必须先append 父,再append子
  不知道在FF 下是否如此。看来老外的单元测试也不过关啊。
1 楼 yongboy 2011-02-18  
对于IE类的,使用htmlfile控件嵌iframe。注意:opera也支持这种方式。FF没有试。

opera 我这边测试不支持htmlfile控件嵌iframe,希望不要误人子弟。
  相关解决方案