【问题标题】:Generate a random number based on another variable根据另一个变量生成随机数
【发布时间】:2009-07-15 18:16:27
【问题描述】:

我有一个每 10 秒抓取一个文件的计时器:

if((Timer%10=="0")||(Timer=="1")){

我还有一个随机数生成器:

var randomNum = Math.floor(Math.random() * 10) + 2;

我还有一个存储剩余时间的变量:

Timer=0;
function countdown(auctionid)
{
    var auctions;
    var divs;

    Timer=Timer+1;

    if((Timer%10=="0")||(Timer=="1")){
        $.get("current.php", {id:auctionid},
            function(data) {
                auctions=data.split("||");
                for(n=0;n<=auctions.length;n++)
                {
                    if(auctions[n] != undefined)
                    {
                        divis=auctions[n].split("##");
                        $('#futu'+divis[0]).html(divis[1]);
                    }
                }
            }
        );
    }
    var cauctionid="auctionid";
    var tauctions=auctionid.split("|");
    for(i=0;i<=tauctions.length;i++)
    {
        if(tauctions[i] != undefined)
        {
            var dd=$('#futu'+tauctions[i]).text();
            var cdd=dd-1;
            $('#futu'+tauctions[i]).html(cdd);

            dd=dd*1000;
            dday=Math.floor(dd/(60*60*1000*24)*1)
            dhour=Math.floor(dd/(60*60*1000)*1)
            dmin=Math.floor((dd%(60*60*1000))/(60*1000)*1)
            dsec=Math.floor(((dd%(60*60*1000))%(60*1000))/1000*1)

            if(dday==0&&dhour==0&&dmin==0&&dsec==0) {
                $('#Bid'+tauctions[i]).html("SOLD");
                //return
            }
            if(dhour <=9)
            {
                dhour = "0"+dhour;
            }
            if(dmin <=9)
            {
                dmin = "0"+dmin;
            }
            if(dsec <=9)
            {
                dsec = "0"+dsec;
            }

            if(dd>=1000)
            {
                var valll=dhour+":"+dmin+":"+dsec;
            }

            if(dd<1000)
            {
                var valll="00:00:00";
            }

            $('#Bid'+tauctions[i]).html(valll);
        }
    }
    refreshID=setTimeout("countdown('"+auctionid+"')",1000);
}

我需要做的是在它运行后生成一个新的随机数,等待它再次运行几秒钟。我需要这个 Javascript 在 2 到 12 秒之间随机运行,然后在新的随机时间再次运行。

【问题讨论】:

标签: javascript random


【解决方案1】:

我对您希望每 2-12 秒运行一次是什么感到困惑,而且大多数情况下您拥有的代码让我感到害怕...一个一旦被调用,就会永远每秒调用自身的函数?吓人。

看起来您已经拥有了回答问题所需的所有内容。如果你需要延迟一些javascript,你可以使用setTimeout,并且你有随机数(虽然我认为你的表达需要“round”而不是“floor”):

setTimeout(functionNameOrAString, Math.round(Math.random() * 10) + 2)

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多