영원한사랑

기능 :
1. 데이터 로딩중 표시.
2. 데이터처리 건수 표시
3. 소요시간 표시

Special Thanks : BL님





<?
#### 로딩부분 첫번째 단락 ####

function mtime()
{
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];

    return $sec + $usec;
}

$t_start = mtime();

// 로딩중입니다 표시 header start
$loading_html = "
<div id='delay' name='delay' style='position:absolute; left:0;top:0;z-index:1;display:none;width:100%;height:100%'>
<table border='0' cellpadding='0' cellspacing='0' width='100%' height='100%'>
<tr><td align='center'>로딩중입니다.<br><span id='countBox'></span><br><span id='countData'></span><br><img src='./imgs/nowloading.gif'></td></tr>
</table>
</div>
<script language='javascript'>
<!--
document.all.delay.style.display = '';

var min_inc = 0;
var sec_inc = -1;
function countUp(){
    if (sec_inc == 59) min_inc++;
    sec_inc = (sec_inc + 1) % 60;
    var min_no = min_inc;

    if (sec_inc >= 10)
        var sec_no = sec_inc;
    else var sec_no = '0' + sec_inc;

    if (min_no != 0)
    {
        min_no_val = min_no+\"분 \";
    }else {
        min_no_val = \"\";
    }

    document.getElementById('countBox').innerHTML = \"소요시간 : \" + min_no_val + sec_no+\"초\";
   
    setTimeout(\"countUp()\", 1000);
}
    setTimeout(\"countUp()\", 1000);
//-->
</script> ";
echo $loading_html;
flush();

// 로딩중입니다 표시 header end
#### 로딩부분 첫번째 단락 ####
?>



<?
**** 데이터 처리부분 시작****

#### 로딩부분 두번째 단락 ####
    $count_data++;
    if (($count_data % 10) == 0) {
        print "<script>document.getElementById('countData').innerHTML = \"처리건수 : \" + $count_data+\"건 \"; </script><br>\n";
        flush();
    }

#### 로딩부분 두번째 단락 ####

**** 데이터 처리부분 종료****
?>


<?
#### 로딩부분 세번째 단락 ####

$t_end = mtime();
$t_gap = sprintf("%2.3f" ,$t_end - $t_start);

$count_data = number_format($count_data);
?>

<!-- // 로딩중입니다 표시 tail start -->
<script language="javascript">
<!--
document.getElementById('delay').style.display = "none";
//-->
</script>
<!-- // 로딩중입니다 표시 tail end -->

<?
### 안내문출력
echo ("<script>alert!!('데이터를 추가하였습니다.\\n\\n총소요시간 : $t_gap 초\\n총건수 : $count_data 건');</script>")
;
#### 로딩부분 세번째 단락 ####
?>


------------------------------------------------------------------------------


다른거..


<script type="text/javascript">
<!--
function setProgress(nPercent){
    var DIV = document.getElementById('IDS_DIV_PROGRESS')
    DIV.childNodes[0].style.width = nPercent + "%";
    DIV.childNodes[1].innerHTML = nPercent + "%";
}
function setProgressMsg(str){
    var DIV = document.getElementById('IDS_DIV_PROGRESS_TEXT')
    DIV.innerHTML = str;
}
//-->
</script>
<table cellspacing="2" bgcolor="#FFFFFF" cellpadding="2" width="200" class="cssProgress" ID="IDS_PROGRESS_FRAME" style="display:none;">
<tr>
    <td>
        <div style="border:#000080 1px solid;position: relative;padding:1px" id="IDS_DIV_PROGRESS"><div style="width:0%;" class="cssProgressBar"></div><div style="text-align:center;;top:0px;width:100%;position:absolute;color:#000000;padding-top:2px">0%</div></div>
        <div style="padding-top:2px" id="IDS_DIV_PROGRESS_TEXT"></div>
        </div>
    </td>
</tr>
</table>
<iframe name="fraExecute"></iframe>
------------------------------------
IFRMA 소스
------------------------------------
<?php
    function displayTime($nSec){return sprintf("%02d:%02d:%02d",  Round($nSec / 3600, 1), Round(($nSec / 60) % 60, 1), Round($nSec % 60));}

    $tmBegin = time();
    $nRows = 데이터 총 데이터 수;
    $nIndex =0; // 레코드 순번
?>
<script>
    parent.document.getElementById('IDS_PROGRESS_FRAME').style.display='';
    parent.setProgress(0);
    parent.setProgressMsg('서버로 부터 상품 정보 갱신 중... 몇분의 시간이 소요될 수 있습니다.<br>0/<?=number_format($nRows)?> 건, 경과: 00:00:00');
</script>
<?php
    flush();
    while($Row = $Ora->Assoc()):
        $nIndex++;
        $nDiff=time()-$tmBegin;
        $sTerm = displayTime( ($nDiff / $nIndex) *$nRows );
        $nCurrPercent = (INT)(($nIndex / $nRows ) * 100);
?>
<script>
    parent.setProgress(<?=$nCurrPercent?>);
    parent.setProgressMsg('서버로 부터 상품 정보 갱신 중... 몇분의 시간이 소요될 수 있습니다.<br><?=$nIndex?>/<?=number_format($nRows)?> 건, 경과: <?=$sTerm?>');
</script>;
<?
        flush();
    endwhile;
?>