标签: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,希望不要误人子弟。
opera 我这边测试不支持htmlfile控件嵌iframe,希望不要误人子弟。