我已经使用表格数据控件从.txt
文件中读取数据,但我想做的是按时间间隔更改数据(最近的数据将被下一个数据替换)。
我想过使用.moveNext()
和延迟,但似乎我把延迟实现弄错了。
var rs2 = CHAR.recordset;
var delay;
function set()
{
if(!rs2.EOF && !rs2.BOF)
{
var temp = "Characters/"+rs2(1);
document.getElementById('txt').innerHTML = rs2(0);
document.getElementById('pic').src = temp;
}
}
function begin()
{
rs2.moveFirst();
set();
delay = setTimeout(move(2), 1000);
}
function move(idx)
{
switch(idx)
{
case 1: if (!rs2.BOF) rs2.movePrevious();
else rs2.moveLast();
break;
case 2: if (!rs2.EOF) rs2.moveNext();
else rs2.moveFirst();
break;
}
set();
if(delay)
clearTimeout(delay);
delay = setTimeout(move(2), 1000);
}
当delay
被执行时(我认为),脚本变得无响应。我认为发生这种情况是因为它做了太多的递归,但我不知道如何解决它。
我为此制作了另一个函数,我认为它更方便。 它可以帮助move()
专注于自己的工作(稍后会调用),同时在正确的间隔上执行递归。
函数如下:
function automove()
{
if (!rs2.BOF) rs2.movePrevious();
else rs2.moveLast();
set();
if(delay)
clearTimeout(delay);
delay = setTimeout(automove, 2000);
}