我有一个每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秒之间随机运行,然后在新的随机时间再次运行。
答案 0 :(得分:1)
我很困惑你想要每隔2-12秒运行一次是什么,而且你所拥有的代码大部分都让我感到恐惧......这个函数一旦被称为永远每秒自称?吓人。
看起来您已经拥有了回答问题所需的所有部分。如果你需要延迟一些javascript你可以使用setTimeout,你有随机数(虽然我认为你的表达需要“圆”而不是“地板”):
setTimeout(functionNameOrAString, Math.round(Math.random() * 10) + 2)