日期:2014-05-16  浏览次数:20546 次

php获取数据更新进度的问题
本帖最后由 aier520 于 2013-12-06 00:59:45 编辑
update.php 页大概如下:


//此页面执行时间比较长,可能要几分钟
$sql = "select * from news";
//执行sql 得到数组 $news_arr 具体代码省略
$news_count=count($news_arr )-1;统计数组数量,以便计算更新的进度
//开始循环数组且更新数据
foreach($news_arr as $key => $value){
    //从别数据库获得数据 且更新到本地数据,代码省略
    $_SERVER['wait']=floor($key/$news_count*100); 把更新进度保存进session
}


getdata.php 页是输出session中保存的更新进度,代码如下

echo $_SERVER['wait'];


html页内容大致如下:
<input name="inhedir" type="button" class="ibn bgn" title="批量更新数据" />
当点击这个按钮时触发一个js(jquery写的)

$(".bgn,.bgy").click(function() {
url="http://localhost/update.php"; //数据更新的操作页
$.get(url);//用ajax的方法去执行更新程序
function getwait() {
$.get(
"http://localhost/getdata.php", //获得数据更新的进度
function(redata) {
//问题出在这里  在上面的 $.get(url) 去执行更新,
//如果php的更新脚本没有执行完成(就是update.php 这个页的程序没有执行完成),
//这里不会有任何数据返回,请问朋友们,这个问题我要怎么解决呢?
alert(redata);
//这里做更新进度条的处理
},
"text")
}
setInterval(getwait, 1000);
})



------解决方案--------------------
你要做进度条 在前端做一个定时器 定时的去提交数据 返回结果 提交一次10%...不用我说了吧 大概这个意思吧