`
txf2004
  • 浏览: 7040536 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flush控制输出模拟安装进度

阅读更多

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

先来一段代码
<?php
header("Content-type: text/html;charset=utf-8");
ob_end_clean();//修改部分
for ($i=10; $i>0; $i--)
{
echo $i;
flush();
sleep(1);
}
?>
这个是每秒显示一个数字.这个是基础.我们要做的是,模拟出安装中的进度.

测试一下其他的:
<?php
header("Content-type: text/html;charset=utf-8");
for ($i=1; $i<10; $i++)
{
echo $i . "1~~~<br />";
ob_flush();//修改部分
echo $i . "2~~~<br />";
flush();
echo $i . "3~~~<br />";
sleep(5);
echo $i . "4~~~<br />";
}
?>
测试一下.首先会输出1号.然后是等待5秒.然后输出剩下的

可以看到.ob_flush是个分割点.
ob_flush的作用是把缓存取出来...
sleep是暂停5秒.
flush是缓存输出

整个过程是
echo 1(此时在缓存中)
ob_flush将缓存(1)取出来准备输出
echo 2(此时在缓存中)
flush将取出来的(1)输出
echo 3(此时在缓存中)
sleep暂时停5秒
echo 4(此时在缓存中)
echo 1(此时在缓存中)
ob_flush将缓存(2341)(请注意顺序.是缓存的顺序)取出来准备输出
echo 2(此时在缓存中)
flush将取出来的(2341)输出
.................
过程继续...

看清楚了把.
实际当中做为安装程序我们可以这样:

<?php
header("Content-type: text/html;charset=utf-8");
for ($i=1; $i<10; $i++)
{
echo "具体的安装操作内容<br />";
ob_flush();//修改部分
flush();
}
?>

这样就实现了window中常用安装,可以看到流程的效果.

分享到:
评论

相关推荐

    Python实现输出程序执行进度百分比的方法

    通常使用循环来模拟这一过程,通过计算当前迭代次数与总迭代次数的比率来得到执行进度。 #### 关键技术点 1. **数值运算**:涉及到基本的数学运算,如除法和乘法,用于计算百分比。 2. **系统输出**:利用`sys....

    php中ob_flush函数和flush函数用法分析

    flush可以用于确保数据即时地被显示出来,这在进行实时通信或者进度更新时非常有用。 在PHP脚本中,通常先调用ob_flush将PHP缓冲区的数据送入服务器缓冲区,然后调用flush将这些数据从服务器缓冲区发送到客户端的...

    Python代码源码-实操案例-框架案例-动态循环输出文字.zip

    在压缩包中的案例可能包含这些技术的示例代码,比如一个简单的循环打印进度条的程序,或者一个模拟下载进度的脚本。通过学习这些源码,你可以了解到如何将这些技术应用到自己的项目中,增强程序的交互性和用户体验。...

    Console进度条

    在Python中,可以使用`sys.stdout.write()`和`sys.stdout.flush()`来更新屏幕内容,同时使用`time.sleep()`来控制进度条更新的速度,模拟进度的动态变化。在C++中,可能需要更深入地利用终端控制序列,如ANSI转义码...

    Python-一个简单的python进度条工具来帮助显示你的工作进度

    这个例子将涉及基础的字符串操作和循环控制。 1. **基本原理** - 创建一个总的步骤数,比如100,代表100%的进度。 - 初始化进度条为空字符串。 - 在循环中,根据当前步骤与总步骤的比例,增加进度条的长度。 - ...

    控制台上输出显示进度条

    在C++中,我们可以使用`std::cout`的精确控制来实现类似的功能,或者利用库如`ncurses`来实现更复杂的控制台界面。Java中,可以使用`System.out.print()`和`System.out.flush()`的组合,或者使用`java.util....

    Python实现动态循环输出文字功能

    总的来说,Python的动态循环输出文字功能是一种实用的技巧,适用于各种场景,例如创建简单的命令行动画、日志输出、实时进度指示等。通过掌握这些基础知识,开发者可以更好地实现与用户交互的动态效果。

    PHP设置一边执行一边输出结果的代码

    这在循环中是非常有用的,特别是在需要控制脚本输出速率时,例如需要模拟实时数据更新的情况。 综合上述知识点,这段代码的核心目的是通过关闭输出缓冲并配合`flush()`函数的使用,让PHP脚本在执行过程中能够实时地...

    PHP实现即时输出、实时输出内容方法

    这是一个在开发长时间运行的PHP程序时非常有用的技术,它可以帮助开发者及时监控程序的运行状态和进度。本文将直接提供实现即时输出和实时输出的方法供需要的开发者参考。 首先,要实现即时输出和实时输出,需要...

    PHP实时显示输出

    `:暂停1秒钟,模拟一个耗时的操作,让用户能够清晰地看到每个步骤的输出。 #### 实时显示优化技巧 除了上述基本的实现方式外,还可以采取以下一些技巧进一步优化实时显示功能: 1. **压缩输出**:如果输出的数据...

    用PHP控制用户的浏览器--ob*函数的使用说明

    总结来说,`ob*`函数提供了一种灵活的方式,使开发者能够在数据生成和处理的各个阶段控制输出,从而实现更精细的控制和优化。这包括在发送HTTP头后输出内容、分批发送数据以改善用户体验以及在输出之前进行内容过滤...

    python3让print输出不换行的方法

    例如,在需要连续输出多个字符串而不换行的情况下,或者当我们要模拟类似命令行交互式的输出时,就有必要掌握如何让`print`输出时不自动换行。 #### Python3中print函数的基本语法 在Python3中,`print`函数的完整...

    java实现监视任务的进度条.rar

    对于那些无法精确衡量进度的任务,可以使用定时器来模拟进度,比如每隔一定时间增加一定的进度值,直到达到100%。 7. **异常处理**: 在实现过程中,需要考虑异常处理,确保当任务出错时,进度条能正确地显示错误...

    在ASP处理程序时显示进度

    总结来说,要在ASP中实现处理程序的进度条,可以通过分段发送HTML和图片的方式,结合服务器端的输出缓冲和客户端的实时刷新来模拟进度。尽管这种方法没有真正的动态更新,但可以提供一种近似的视觉反馈,让用户知道...

    让ajax更加友好的实现方法(实时显示后台处理进度。)

    1. **服务器端**:通过编程语言(如Java的Servlet)控制数据处理流程,并在处理每个数据块后调用`flush`方法,将部分响应推送给客户端。例如,Java JSP中的代码示例: ```jsp ("Content-Type", "application/x-...

    文本型进度条 C++语言

    `'\r'`字符用于回车但不换行,使得输出始终在同一行刷新,而`std::cout.flush()`确保输出立即可见。 值得注意的是,C++标准库并不直接支持文本型进度条,上述实现依赖于控制台的特定行为,因此在某些非标准或非...

    python输出结果刷新及进度条的实现操作

    在Python编程中,经常需要实时展示程序运行的状态,例如在长时间运行的任务中显示进度或者周期性地输出关键指标如损失函数(loss)和准确率(accuracy)。本篇文章将详细介绍如何利用Python内置的`print`函数以及第...

    《云计算全栈》-python篇:编写类进度条程序

    它通常通过在控制台上更新输出来模拟进度,通过不断改变可见的字符来展示进度的变化。在这个案例中,我们将创建一个简单的进度条,由20个#号组成,中间有一个@号作为进度指示器。 案例3的方案如下: 1. 使用`while...

    Python调用命令行进度条的方法

    - 在命令行中,通过输出特定的转义序列可以控制光标的位置。例如,`\r` 字符可以让光标返回到当前行的起始位置。这一特性是制作命令行进度条的关键。 2. **进度条的基本结构:** - 一个典型的进度条由两部分组成...

Global site tag (gtag.js) - Google Analytics