本帖最后由 zhoumengkang 于 2013-05-28 13:46:14 编辑

解决方案 »

  1.   

    这种无端占用用户带宽的做法是很无聊的
    延时输出的效果应在浏览器中用 js 实现你的代码在 IE 中永远都不会看到期望的效果,因为 IE 需等待缓冲区装满后才解释收到的数据
      

  2.   

    额,不是,我知识对这个函数不太了解。我用的chrome在测试。
    其实我是想实现这样的效果:比如我写一个脚本批量处理一些文件
    但那个过程可能很漫长,给别人用的话,别人都不知道是在执行呢,还是卡死了。
    所以想每循环执行成功一次就输出一句xxxx执行成功;
    -------------
    最类似的就是咱们安装开源软件的时候见到的创建数据表的时候的显示。
    但是我自己写的就会在数据表全部创建完之后才能显示。
      

  3.   

    同问!我现在也有一个程序要运行几个小时,一直运行,我只能去数据库查看数据来判断是否运行正常。
    我的暂时做法只能做个简单的监控。比如在程序中加memcache写入操作,另外写个页面来读取。
      

  4.   

    我又回来了,试试
    <?php
    echo str_pad('',4096);set_time_limit(50);
    for($i=0;$i<=5;$i++){
        echo $i.'<br />';
    ob_flush();
    flush(); 
    sleep(1);
    }
    ?>
    这两天出这个问题的还挺多的。
    这个写法在各浏览器测试都没问题,但有童鞋说,这种做法往缓存区写垃圾,可以试试PHP抛出异常,有空研究一下再分享。
      

  5.   

    完全是因为这个?echo str_pad('',4096);
    第二个设置时限的可以省略,这个程序跑下来肯定不会超过30秒。
    抛出异常,try-catch还可以这样用,学习了,我好好想想!你是一个好人!
      

  6.   

    嗯嗯,我的这个程序一开始考虑用php_cli,因为程序步骤多,觉得不友好,还是选择页面;但运行时间太长,开着页面反倒成了累赘,还是用cli吧,加油。
      

  7.   

    今天又试了下用chrome测试,还是等运算完了,一次性输出。