Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как установить отсрочку выполнения функции (https://javascript.ru/forum/dom-window/70989-kak-ustanovit-otsrochku-vypolneniya-funkcii.html)

Искорка 17.10.2017 08:59

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

Спасибо!

ksa 17.10.2017 09:24

Цитата:

Сообщение от Искорка
Как сделать так, чтобы в течение определенного периода времени, при перезагрузке страницы выводился тот же элемент, который был выбран первоначально?

Как вариант...
- Запоминать время старта и индекс элемента в куки или локальное хранилище.
- При загрузке (перезагрузке) читать эту информацию. Если время не просрочено, использовать этот элемент.

рони 17.10.2017 10:02

localStorage сохранение случайного выбора на сутки
 
Искорка,
в примере 10 сек
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
function guardian_wizard(length, time_limit) {
    var obj = window.localStorage.getItem("obj"),
        time = (new Date).getTime(),
        num = length * Math.random() | 0;
    if (obj === null || (obj = JSON.parse(obj),time > obj.time + time_limit) || length != obj.length) obj = {
        length: length,
        time: time,
        num: num
    };
    window.localStorage.setItem("obj", JSON.stringify(obj));
    return obj.num
};
var num = guardian_wizard(25, 10000)//25 длина массива 10 sec сутки ( 24 * 60 * 60 * 1000 )
$("#slider").html(num)

});
  </script>
</head>

<body>
<div id="slider"></div>

</body>
</html>


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