Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение рандома. (https://javascript.ru/forum/misc/15111-opredelenie-randoma.html)

Zeron 13.02.2011 20:45

Определение рандома.
 
У меня в скрипте рандом определяется только при обновлении страничке, а не при каждом обращение к функции myRandom. Как сделать так, чтобы прибавленное время определялось всегда рандомно, а не только при обновлении страничке.
Получается так, что время прибавляется три раза, дапустим по 6 секунд. А мне надо, чтобы время прибавлялось три раза, дапустим на 8, на 5, и на 4 секунды.
Зарание спасибо)


Код:

<html>
<head>
  <title>Installed!</title>
<script type="text/javascript">

function myRandom (from, to) {
return Math.floor((Math.random() * (to - from + 1)) + from);}
var result = myRandom(5,10);

var el = 'download_waiter_remain',
        waiter='download_waiter',
        timer,remain=-1,count=3;
 
function tick(){
        if (count<1) {reset(); return;}
        if (remain==-1) remain = 10;
        show(remain);remain--;
        if (remain==-1){remain=result;count--;}
}
function reset(){
        count=3;remain=-1;
        show(remain);clearInterval(timer);
        timer=null;   
}
function get(Id){
        return document.getElementById(Id);
}
function show(remain){
        get(waiter).style.display=remain>=0?'':'none';
        get(el).innerHTML=remain;
}
function start(){
        if (timer==null) timer = setInterval(tick,1000)
}
</script>
</head>
<body>
  <table id="download_waiter" cellpadding="0" cellspacing="0" style="display:none">
<tbody><tr><td>Ожидайте:</td>
<td><span id="download_waiter_remain"></span></td>
<td>сек.</td>
</tr></tbody></table>
<script type="text/javascript">
start();
</script>
</body>
</html>


B@rmaley.e><e 13.02.2011 21:39

Вы получаете случайное значение 1 раз при загрузке страницы. Что же тогда жаловаться, что оно не меняется?

poorking 13.02.2011 21:52

function tick(){
        if (count<1) {reset(); return;}
        if (remain==-1) remain = 10;
        show(remain);remain--;
        if (remain==-1){remain=myRandom(5,10);count--;}
}


а определение переменной result можно вообще убрать, вроде бы она больше нигде не используется


Часовой пояс GMT +3, время: 11:31.