?php//防止執(zhí)行超時set_time_limit(0);//清空并關(guān)閉衡襪森輸出緩存ob_end_clean();//需要循環(huán)的數(shù)據(jù)for($i = 0; $i 188; $i++){ $users[] = 'Tom_' . $i;}//計算數(shù)據(jù)的長度$total = count($users);//顯示的進(jìn)度條長度,單位 px$width = 500;//每條記錄的操作所占的進(jìn)度條單位長度$pix = $width / $total;//默認(rèn)開始的進(jìn)度條百分比$progress = 0;?htmlheadtitle動態(tài)顯示服務(wù)器運(yùn)行程序的進(jìn)度條/titlemeta http-equiv="Content-Type" content="text/html; charset=utf-8" /stylebody,div input { font-family: Tahoma; font-size: 9pt}/stylescript 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/headbody div style="margin:50px auto; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: ?php echo $width+8; ?咐畝px" 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(); //將輸出發(fā)送給客戶端瀏覽器foreach($users as $user){ // 在此處使用空循環(huán)模擬較為耗時的操作,實(shí)際應(yīng)用中需將其替換; // 如果你的操作不耗時,我想你就沒必要使用這個腳本了 :) for($i = 0; $i 1000000; $i++) { } ?script language="JavaScript" updateProgress("正在操作用戶 ?php echo $user; ? ....", ?php echo min($width, intval($progress)); ?);/script?php flush(); //將輸出發(fā)送給客戶端瀏覽器,使其可以立即執(zhí)行服務(wù)器端輸出的 JavaScript 程序。 $progress += $pix;} //end foreach?script language="JavaScript" //最后將進(jìn)度條設(shè)置成最好明大值 $width,同時顯示操作完成 updateProgress("操作完成!", ?php echo $width; ?);/script?phpflush();?/body/html
成都創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為瀾滄企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作,瀾滄網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
一般實(shí)現(xiàn)下載進(jìn)度條常用的兩種解決方案是:御春一種是需要用socket保持與客戶端通信,返回已下載的數(shù)據(jù)大小,然后可以JS+css顯示下載速度,以及進(jìn)度條之類;二種是php與flash交互,顯示進(jìn)度條。另外PHP5.4起 開始支持租激 進(jìn)度條 Upload progress,你鎮(zhèn)型耐可以了解下!
發(fā)送2個ajax請求讀取2個不同的服務(wù)器頁面就可以了
function submitForm(){
//第一個請求,將表單數(shù)據(jù)提交到某服務(wù)器頁面
//第二個請求進(jìn)度頁面,也就是讀取session,
}
callback是必須在等到服務(wù)器頁面執(zhí)行完成并輸出返沖結(jié)果后才會調(diào)用的
雖然第一個處理表單的頁面可能還沒全部執(zhí)行晌隱完成,但是sesesion應(yīng)當(dāng)是已經(jīng)產(chǎn)生了的,
而第二個請求每間隔一段時間宴世廳久請求進(jìn)度頁面一次,讀取當(dāng)前的session值