理论上程序应该运行完500次然后才显示成功,但是基本只能运行个十来次页面就开始全白(同时网页中载入的标志也消失了),就不再往下继续执行程序了
求助这种问题应该如何解决,谢谢
另外,进度方面不知道应该如何处理。再次感谢
回复讨论(解决方案)
3秒×500= 多长时间?
不死才怪
3秒×500= 多长时间?
没有设置运行时间,不死才怪
nnd,csdn给我500还让我多发了一次……
跟运行时候太长有关系,你还第次休息了3秒
本来是一个采集再写入数据库的程序,这里只是想表达大概的意思 代码少 易看
set_time_limit吧
以下是我原程序的主要内容$_POST["appOAuthkey"], "user"=>$_POST["user"], "pw"=>$_POST["pw"], "appOAuthID"=>$_POST["appOAuthID"], "accessToken"=>$_POST["accessToken"], "appOAuthkey"=>$_POST["appOAuthkey"], "lirun"=>$_POST["lirun"], "uin"=>$_POST["uin"] ); $db->row_update("config",$data,"id=1"); if($db->get_errno()){ alert_back("设置失败!"); }else{ alert_back("设置成功!"); }} $conf=$db->row_query_one("select * from config where id=1"); $data=$db->row_query("select * from data");if($act=="scan"){//$db->row_delete("data","");$itemState = $_POST['itemState'];//商品状态$PageSize = GetPageSize($itemState);//商品页数for ($i=1; $i<=$PageSize; $i++) {$htm = GetItemList($itemState,$i);$xml = simplexml_load_string($htm);$item = $xml->itemList->item;$itemName = $item->itemName;$itemName = iconv('utf-8', 'gb2312', $itemName);$itemState = $item->itemState;$itemCode = $item->itemCode;$itemPrice = $item->itemPrice;$db->row_insert("data",array("ProName"=>$itemName,"item"=>$itemCode,"Price"=>$itemPrice,"itemState"=>$itemState,"add_time"=>$time));//进度信息 PageSize}alert_back("扫描结束,共计信息数:{$PageSize}!");}?>价格及库存管理系统
拍拍平台-价格及库存管理系统系统设置
用户名:
用户密码:
uin:
appOAuthID:
appOAuthkey:
accessToken:
利润:单位:分
设置重置
商品管理商品采集更新:$v){ echo ''.$v.''; } ?>采集更新数据
商品信息管理(共有条信息)
ID商品名称Item价格状态添加时间更新时间操作$val){ echo '
'.$val['id'].''.$val['ProName']."'.$val['Price'].''.$status_str[$val['itemState']].''.date("Y-m-d H:i:s",$val['add_time']).''.date("Y-m-d H:i:s",$val['up_time']).'';$ii ++;//if ($ii>2) break;}?>
set_time_limit吧
加入了这个 程序能顺利运行结束(时间比较长点)
但是这个进度显示好像得运行结束了才一起显示出来。。。
php是一次计算一次输出,即使像CLI那样边计算边输出,也要不断刷屏才能实现进度条效果
进度在客户端显示,你觉得php会在服务器端计算->客户端显示->服务器端计算->客户端显示->……这样么?
如果你想要这样效果,你就要把循环拆开,客户端收到第一个数据,然后ajax向服务器发出next请求,php再计算下一个,向客户端发结果,客户端再ajax……
本文原创发布php中文网,转载请注明出处,感谢您的尊重!