我有一个 PHP 程序,需要循环调用 XMLRPC 500 次左右,运行 20 多分钟。当程序运行的时候,客户端只有一片空白的页面,浏览器的状态一直是 load。作为用户来说,这种等待是漫长的,埋怨也就多了。解决思路如果有个进度条呈现在用户面前,告诉用户服务器端正在干嘛,当前运行了多少,问题就可以得到基本解决,虽然没有减少服务器端的运行时间,但用户的心里会有微妙的变化,感觉不再是枯燥无味的等待,至少等待还有个盼头 :) 。考虑到每一次调用 XMLRPC 比较耗时,所以可以在每一次调用时使用 PHP 的 flush() 函数输出一段 JavaScript 对客户端浏览器中进度条显示进行动态更新。 <!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><?phpif ('source' == $_GET['act']) //查看源代码{ show_source($_SERVER["SCRIPT_FILENAME"]); exit;}set_time_limit(0);for ($i = 0; $i < 500; $i++){ $users[] = 'Tom_' . $i;}$width = 500; //显示的进度条长度,单位 px$total = count($users); //总共需要操作的记录数$pix = $width / $total; //每条记录的操作所占的进度条单位长度$progress = 0; //当前进度条长度?><html><head><title>动态显示服务器运行程序的进度条</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="Generator" content="JEdit"><meta name="Author" content="Krazy Nio"><style>body, div input {}{ font-family: Tahoma; font-size: 9pt }</style><script language="JavaScript"><!--function updateProgress(sMsg, iWidth){ document.getElementById("status").innerHTML = sMsg; document.getElementById("progress").style.width = iWidth + "px"; document.getElementById("percent").innerHTML = parseInt(iWidth / <?php echo $width; ?> * 100) + "%";}//--></script> </head><body><div style="margin: 4px; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: <?php echo $width+8; ?>px"> <div><font color="gray">如下进度条的动态效果由服务器端 PHP 程序结合客户端 JavaScript 程序生成。</font></div> <div style="padding: 0; background-color: white; border: 1px solid navy; width: <?php echo $width; ?>px"> <div id="progress" style="padding: 0; background-color: #FFCC66; border: 0; width: 0px; text-align: center; height: 16px"></div> </div> <div id="status"> </div> <div id="percent" style="position: relative; top: -30px; text-align: center; font-weight: bold; font-size: 8pt">0%</div></div><?phpflush(); //将输出发送给客户端浏览器foreach ($users as $user)//在此处使用空循环模拟较为耗时的操作,实际应用中需将其替换;若你的操作不耗时,我想你就没必要使用这个脚本了){ for ($i = 0; $i < 10000; $i++) { ;;}?><script language="JavaScript">updateProgress("正在操作用户“<?php echo $user; ?>” .", <?php echo min($width, intval($progress)); ?>);</script><?phpflush(); //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 JavaScript 程序。$progress += $pix; } //end foreach// 最后将进度条设置成最大值 $width,同时显示操作完成?><script language="JavaScript">updateProgress("操作完成!", <?php echo $width; ?>);</script><?phpflush();?><input type="button" value="查看源码" onclick="document.location.href='<?php echo $_SERVER['PHP_SELF']; ?>?act=source'" /></body></html>
您还没有登录,请您登录后再发表评论
该知识点主要介绍如何通过PHP和JavaScript组合来实现一个动态显示服务器端运行程序的进度条功能。以下为详细知识点阐述: ### PHP实现进度条基础逻辑 首先,通过PHP代码初始化一个数组,用于模拟服务器端需要处理...
服务器端PHP脚本返回已上传的块数,Flash据此更新进度条。 5. **合并文件**:所有文件块上传完成后,PHP脚本将它们合并成原始大文件。这个过程可能涉及到文件追加或使用流式读写操作。 6. **错误处理**:在上传...
因此,实现文件上传进度条的关键在于如何在不阻塞用户界面的情况下,让服务器端与客户端之间进行实时的数据交换。 ### 技术要点分析 #### 前端(JavaScript)实现 1. **HTML结构搭建**:如给定的部分内容所示,...
标题中的“用PHP编写的进度条”指的是使用PHP语言实现的一种动态显示任务进度的技术。在网页应用中,进度条常用于展示数据加载、文件上传、处理过程等操作的进度,给用户一个可视化的反馈,提升用户体验。这个项目...
综上所述,实现PHP文件上传进度条涉及前端和后端的密切配合,包括AJAX、HTML5 File API、分块上传、WebSocket通信、第三方库以及服务器端的进度管理等多个方面。在实际应用中,应根据项目需求选择合适的技术方案。
在文件上传进度条的实现中,AJAX被用来异步获取服务器端上传进度信息,并实时更新页面上的进度条显示,从而提供更流畅的用户体验。 ### 实现步骤 #### 步骤一:创建UploadProgressMeter类 首先,需要创建一个`...
1. **文件上传**:PHP中的文件上传是通过`<input type="file">`表单元素实现的,提交后在服务器端通过`$_FILES`全局数组接收上传的文件信息。在`upload.php`文件中,你需要处理文件的上传操作,包括验证文件类型、...
7. `flush()`:这是一个重要的函数,它会立即将服务器端的输出发送到客户端浏览器,使得用户可以看到进度条实时更新。 8. HTML 和 JavaScript 部分:创建一个简单的HTML页面结构,包括一个进度条容器、状态显示和...
为了实现进度条的动态显示,我们必须了解以下几点关键知识点。 首先,从本文提到的HTML结构开始分析,它包含了一个进度条和相应的文本提示,以及一个按钮用于启动进度条的动态更新。这个进度条使用了HTML和CSS技术...
SwfUpload通过回调函数与JavaScript交互,将上传进度信息传递到前端,然后在网页上动态更新进度条,实现可视化效果。 此外,SwfUpload还支持上传操作的控制。用户可以在上传过程中随时暂停、继续或者取消上传,这...
前端通过AJAX(异步JavaScript和XML)请求向服务器查询任务状态,而后端PHP脚本处理任务并返回当前进度。前端接收到进度信息后,更新HTML中的进度条元素,从而显示给用户。 在"CProgBar Example"中,主要包含以下几...
本教程将详细讲解如何使用H5和JavaScript实现一个具有进度条功能的文件上传功能。 首先,我们要了解HTML5引入的新特性——File API。File API允许开发者在用户浏览器中直接操作文件,如读取、写入和上传。它包括...
标题中的“JS插件plupload.js实现多图上传并显示进度条”指的是使用JavaScript插件plupload.js来处理用户在网页上选择并上传多张图片的功能,并且在上传过程中显示实时的进度条,以便用户了解文件上传的状态。...
AJAXBar通常指的是在页面顶部或底部显示的进度条,当有后台数据请求或处理时,该进度条会动态显示加载进度。 【标签】“php”表明此脚本主要基于PHP编程语言编写,PHP是一种广泛应用于Web开发的开源服务器端脚本...
为了提供更好的用户体验,开发者通常会使用Ajax和JavaScript来实现异步文件上传,并配合进度条显示上传进度。这样,用户无需等待整个文件上传完成就能看到实时进度,提高了交互性。本教程将通过一个可运行的例子详细...
设置参数如`queueID`(队列的ID)、`uploader`(服务器端处理脚本)、`fileExt`(允许的文件扩展名)、`fileSizeLimit`(文件大小限制)、`auto`(是否自动上传)以及`onProgress`事件处理函数,用于显示进度条。...
服务器端通常需要接收这些文件并保存到指定位置。在Node.js中,可以使用multer中间件处理multipart/form-data类型的请求,而在PHP中,可以使用`$_FILES`全局变量获取上传的文件信息。 最后,需要注意的是,虽然...
本资源"layui文件上传带进度条显示.zip"结合了`layui`与`PHP`,实现了文件上传过程中带有进度条的交互效果,提升了用户体验。 首先,我们要理解`layui`的文件上传组件是如何工作的。`layui`的上传组件基于HTML5的`...
【标题】中的“拖动上传图片带进度条vue+ js+php.zip”表明这是一个使用Vue.js、JavaScript和PHP技术实现的图片上传功能,且具备拖放操作和上传进度条显示。这种功能通常用于提高用户体验,让用户能直观地了解图片...
这个标题为“带进度条的上传文件源码”的项目,是一个myEclipse工程,它提供了一个实现文件上传过程中显示进度条的功能,确保用户在等待文件上传时能够清楚地看到进度,从而降低用户的不耐烦感并增加使用满意度。...
相关推荐
该知识点主要介绍如何通过PHP和JavaScript组合来实现一个动态显示服务器端运行程序的进度条功能。以下为详细知识点阐述: ### PHP实现进度条基础逻辑 首先,通过PHP代码初始化一个数组,用于模拟服务器端需要处理...
服务器端PHP脚本返回已上传的块数,Flash据此更新进度条。 5. **合并文件**:所有文件块上传完成后,PHP脚本将它们合并成原始大文件。这个过程可能涉及到文件追加或使用流式读写操作。 6. **错误处理**:在上传...
因此,实现文件上传进度条的关键在于如何在不阻塞用户界面的情况下,让服务器端与客户端之间进行实时的数据交换。 ### 技术要点分析 #### 前端(JavaScript)实现 1. **HTML结构搭建**:如给定的部分内容所示,...
标题中的“用PHP编写的进度条”指的是使用PHP语言实现的一种动态显示任务进度的技术。在网页应用中,进度条常用于展示数据加载、文件上传、处理过程等操作的进度,给用户一个可视化的反馈,提升用户体验。这个项目...
综上所述,实现PHP文件上传进度条涉及前端和后端的密切配合,包括AJAX、HTML5 File API、分块上传、WebSocket通信、第三方库以及服务器端的进度管理等多个方面。在实际应用中,应根据项目需求选择合适的技术方案。
在文件上传进度条的实现中,AJAX被用来异步获取服务器端上传进度信息,并实时更新页面上的进度条显示,从而提供更流畅的用户体验。 ### 实现步骤 #### 步骤一:创建UploadProgressMeter类 首先,需要创建一个`...
1. **文件上传**:PHP中的文件上传是通过`<input type="file">`表单元素实现的,提交后在服务器端通过`$_FILES`全局数组接收上传的文件信息。在`upload.php`文件中,你需要处理文件的上传操作,包括验证文件类型、...
7. `flush()`:这是一个重要的函数,它会立即将服务器端的输出发送到客户端浏览器,使得用户可以看到进度条实时更新。 8. HTML 和 JavaScript 部分:创建一个简单的HTML页面结构,包括一个进度条容器、状态显示和...
为了实现进度条的动态显示,我们必须了解以下几点关键知识点。 首先,从本文提到的HTML结构开始分析,它包含了一个进度条和相应的文本提示,以及一个按钮用于启动进度条的动态更新。这个进度条使用了HTML和CSS技术...
SwfUpload通过回调函数与JavaScript交互,将上传进度信息传递到前端,然后在网页上动态更新进度条,实现可视化效果。 此外,SwfUpload还支持上传操作的控制。用户可以在上传过程中随时暂停、继续或者取消上传,这...
前端通过AJAX(异步JavaScript和XML)请求向服务器查询任务状态,而后端PHP脚本处理任务并返回当前进度。前端接收到进度信息后,更新HTML中的进度条元素,从而显示给用户。 在"CProgBar Example"中,主要包含以下几...
本教程将详细讲解如何使用H5和JavaScript实现一个具有进度条功能的文件上传功能。 首先,我们要了解HTML5引入的新特性——File API。File API允许开发者在用户浏览器中直接操作文件,如读取、写入和上传。它包括...
标题中的“JS插件plupload.js实现多图上传并显示进度条”指的是使用JavaScript插件plupload.js来处理用户在网页上选择并上传多张图片的功能,并且在上传过程中显示实时的进度条,以便用户了解文件上传的状态。...
AJAXBar通常指的是在页面顶部或底部显示的进度条,当有后台数据请求或处理时,该进度条会动态显示加载进度。 【标签】“php”表明此脚本主要基于PHP编程语言编写,PHP是一种广泛应用于Web开发的开源服务器端脚本...
为了提供更好的用户体验,开发者通常会使用Ajax和JavaScript来实现异步文件上传,并配合进度条显示上传进度。这样,用户无需等待整个文件上传完成就能看到实时进度,提高了交互性。本教程将通过一个可运行的例子详细...
设置参数如`queueID`(队列的ID)、`uploader`(服务器端处理脚本)、`fileExt`(允许的文件扩展名)、`fileSizeLimit`(文件大小限制)、`auto`(是否自动上传)以及`onProgress`事件处理函数,用于显示进度条。...
服务器端通常需要接收这些文件并保存到指定位置。在Node.js中,可以使用multer中间件处理multipart/form-data类型的请求,而在PHP中,可以使用`$_FILES`全局变量获取上传的文件信息。 最后,需要注意的是,虽然...
本资源"layui文件上传带进度条显示.zip"结合了`layui`与`PHP`,实现了文件上传过程中带有进度条的交互效果,提升了用户体验。 首先,我们要理解`layui`的文件上传组件是如何工作的。`layui`的上传组件基于HTML5的`...
【标题】中的“拖动上传图片带进度条vue+ js+php.zip”表明这是一个使用Vue.js、JavaScript和PHP技术实现的图片上传功能,且具备拖放操作和上传进度条显示。这种功能通常用于提高用户体验,让用户能直观地了解图片...
这个标题为“带进度条的上传文件源码”的项目,是一个myEclipse工程,它提供了一个实现文件上传过程中显示进度条的功能,确保用户在等待文件上传时能够清楚地看到进度,从而降低用户的不耐烦感并增加使用满意度。...