Tuesday, December 19, 2006

让javascript等一等

这两天和javascript又对上了哈。
要做的事情就是让javascript同学不要跑那么快,在俺想让它停的地方歇一下。实现这个功能呢,我们使用 window.setTimeout(code, delay) 这个标准函数。这个函数相当于一个延迟器,使用它相当于是埋定时炸弹。当然这个定时炸弹也非无药可解,要想中止爆炸,我们可以借用setTimeout的姐妹 window.clearTimeout(timeoutID)。俺完成的代码长这个样子哈。
var total_count = 0,iReport = 0,outputWin,timeoutID;

// when button clicked
function runPrint(){
total_count = xxx;
iReport = 0;
// print first page
doPrintOut();
// print next page after 2 seconds
timeoutID = window.setTimeout(waitForPrintOut, 2000);
}
// the print method
function doPrintOut(){
var sendData = "acceptID:bchNum:corpCode:poCode:poOfficeDiv:authCheckFlg";
var url = createQueryString('OutputAction.do', sendData);
outputWin = window.open(url, "outputWin_" + iReport, "height=100,width=100,left=450,top=330");
iReport = iReport + 1;
}
// waiting for print next page
function waitForPrintOut(){
// after print out last data, clearTimeout
if (iReport == total_count) {
window.clearTimeout(timeoutID);
alert('Finished!');
} else {
// wait until the before print done
if (outputWin.closed) {
doPrintOut();
}
// print next page after 2 seconds
timeoutID = window.setTimeout(waitForPrintOut, 2000);
}
}

No comments:

Post a Comment