我有一个 PHP 程序,需要循环调用 XMLRPC 500 次左右,运行 20 多分钟。当程序运行的时候,客户端只有一片空白的页面,浏览器的状态一直是 load。作为用户来说,这种等待是漫长的,埋怨也就多了。
解决思路
如果有个进度条呈现在用户面前,告诉用户服务器端正在干嘛,当前运行了多少,问题就可以得到基本解决,虽然没有减少服务器端的运行时间,但用户的心里会有微妙的变化,感觉不再是枯燥无味的等待,至少等待还有个盼头 :) 。
考虑到每一次调用 XMLRPC 比较耗时,所以可以在每一次调用时使用 PHP 的 flush() 函数输出一段 JavaScript 对客户端浏览器中进度条显示进行动态更新。
![](https://i-blog.csdnimg.cn/blog_migrate/411708b06ec1efaa60d8777d0d70064b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6faa85aa88b40dedc6b7ba34b5dcc9.gif)
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6faa85aa88b40dedc6b7ba34b5dcc9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/411708b06ec1efaa60d8777d0d70064b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/99781f188f1f5b87872e472b55521981.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7d8e72f98a6e66a439610634a963090b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6faa85aa88b40dedc6b7ba34b5dcc9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/411708b06ec1efaa60d8777d0d70064b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e7eec45f00804cecaf8f30cb6fb5e2f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e7eec45f00804cecaf8f30cb6fb5e2f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/99781f188f1f5b87872e472b55521981.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7d8e72f98a6e66a439610634a963090b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e7eec45f00804cecaf8f30cb6fb5e2f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e7eec45f00804cecaf8f30cb6fb5e2f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e7eec45f00804cecaf8f30cb6fb5e2f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3b0d8883c3a023cc50705b491eafbbd0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/05e5da966157287caeff82ff013c0edf.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6faa85aa88b40dedc6b7ba34b5dcc9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/411708b06ec1efaa60d8777d0d70064b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/05e5da966157287caeff82ff013c0edf.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6faa85aa88b40dedc6b7ba34b5dcc9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/411708b06ec1efaa60d8777d0d70064b.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/98a2b35e8026886f64376e9b06b95b96.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/05e5da966157287caeff82ff013c0edf.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/e40e6c90c2e98ebcf9bf1e6c592f3892.gif)