【发布时间】:2016-05-15 13:40:44
【问题描述】:
我有一个可以工作的函数,但是如果我增加记录数,就会出现十五秒超时错误。我已经看到“批量化”一个函数,将其分解成块,以欺骗处理器重新开始 15 秒的暗示,但似乎无法让它工作。 代码:
startBatch=0;
private function findDupes():void {
var el:Number; //elapsed time variable
timeoutTime = getTimer();
for (var i:int = startBatch; i < numTix; i++) { // numTix = total number of records
for (var j:int = i + 1; j < numTix; j++) {
if (individualTicket[i] == individualTicket[j]) {
// mark duplicate
}
}
el = getTimer() - timeoutTime;
if (el > 1000) {
trace("batched out");
batchOut(i);
return;
}
}
weAreDone();
}
private function batchOut(i:int):void {
updateTB2(i); //attempts to update a textbox and FAILS to do so
trace("Out at # ", i);
if (i < numTix) {
startBatch = i;
findDupes();
}
else {
weAreDone();
}
}
因此,它每秒都会“分批”并在新编号 (startBatch) 处重新启动 findDupes() 函数。我曾希望这会重置超时错误,但结果却是一团糟。
谁能指出我正确的方向?
【问题讨论】:
-
需要检查内循环的时间,然后保存外循环的值,以便下一帧处理剩余部分。
标签: actionscript-3 timeoutexception