简体   繁体   English

Javascript:表格数据控件-如何在时间间隔上使用movenext

[英]Javascript: Tabular Data Control - how to use movenext on a time interval

I have read data from a .txt file using tabular data control but what I wanted to do is to make the data change on a time interval (the recent data will be replaced by the next data). 我已经使用表格数据控件从.txt文件中读取数据,但是我想做的是使数据按时间间隔更改(最近的数据将由下一个数据替换)。

I thought of using .moveNext() and delay, but it seems that I got the delay implementation wrong. 我考虑过使用.moveNext()和delay,但是似乎我弄错了delay实现。

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);
}

When delay is executed (I think), the script become unresponsive. 当执行delay (我认为),脚本将变得无响应。 I think it happens because it's doing too much recursion but i don't know how to fix it. 我认为这是因为它进行了太多的递归,但我不知道如何解决它。

i make my another function just for this and i think it's more convenient. 我为此做了另一个功能,我认为这更方便。 it can help move() to focus on its own job(which will be called later) while doing the recursive on the right interval. 它可以帮助move()专注于自己的工作(稍后将进行调用),同时在正确的时间间隔上进行递归。

here's the function: 这是函数:

function automove()
{               
    if (!rs2.BOF) rs2.movePrevious();
    else rs2.moveLast();
    set();

    if(delay)
        clearTimeout(delay);
    delay = setTimeout(automove, 2000);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM