Случайные числа каждые несколько секунд

S
На сайте с 08.02.2017
Offline
7
1174

Всем привет. Нужен простенький скрипт, который будет без перезагрузки страницы, через N количество секунд выводить в случайном порядке числа от 0 до 100. Например человек заходит на страницу и видит число 26, через 5 секунд число меняется на 54 и т.д.

S
На сайте с 13.10.2014
Offline
171
#1


function GenerateData() {
var min = 0;
var max = 100;
var data = Math.floor(Math.random() * (max - min + 1)) + min;
alert(data);
}
var myTimer = setInterval(GenerateData, 5000);

как то так

S
На сайте с 08.02.2017
Offline
7
#2
silicoid:

function GenerateData() {
var min = 0;
var max = 100;
var data = Math.floor(Math.random() * (max - min + 1)) + min;
alert(data);
}
var myTimer = setInterval(GenerateData, 5000);



как то так

А как вывести это в нужном месте, конкретно в сайдбаре?

S
На сайте с 13.10.2014
Offline
171
#3

вместо алерта поставить

document.getElementById('Id_вашего_блока_куда_пихать_данные').innerHTML = data;

id указывается без "сетки"

S
На сайте с 08.02.2017
Offline
7
#4

silicoid, а можно сделать, чтобы первое число появлялось не через 5 секунд а сразу с загрузкой страницы?

u3Bepr
На сайте с 03.03.2011
Offline
60
#5
siew:
silicoid, а можно сделать, чтобы первое число появлялось не через 5 секунд а сразу с загрузкой страницы?

просто вызовите функцию перед таймером:


GenerateData();
var myTimer = setInterval(GenerateData, 5000);
S
На сайте с 13.10.2014
Offline
171
#6

u3Bepr, да. это самый простой вариант. но может случиться так, что будет вызвана функция еще до того, как будет сформировано дерево dom

например, если JS-ка воткнута в head, что приведет к ошибке

гораздо лучше поставить слушалку

document.addEventListener('DOMContentLoaded', function(){ 
GenerateData();
});

это полный аналог

$(document).ready(function(){ })
из jQuery
S
На сайте с 08.02.2017
Offline
7
#7

silicoid, а как выводить на странице 2 отдельных числа, чтобы одно менялось каждые 5 секунд, а другое каждые 10?

S
На сайте с 13.10.2014
Offline
171
#8

надо на обработчик (GenerateData) повесить четное/нечетное и соответственно две фукнции вывода.

S
На сайте с 13.10.2014
Offline
171
#9

Вариант на несколько блоков


function GenerateData(target)
{
var min = 0;
var max = 100;
var data = Math.floor(Math.random() * (max - min + 1)) + min;
document.getElementById(target).innerHTML = data;
}

document.addEventListener('DOMContentLoaded', function()
{
GenerateData('block1');
GenerateData('block2');

var myTimer1 = setInterval(function(){GenerateData('block1');}, 5000);
var myTimer2 = setInterval(function(){GenerateData('block2');}, 10000);
});

пожалуй, на сегодня хватит

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий