Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2017, 08:59
Интересующийся
Отправить личное сообщение для Искорка Посмотреть профиль Найти все сообщения от Искорка
 
Регистрация: 11.06.2015
Сообщений: 12

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

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2017, 09:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Искорка
Как сделать так, чтобы в течение определенного периода времени, при перезагрузке страницы выводился тот же элемент, который был выбран первоначально?
Как вариант...
- Запоминать время старта и индекс элемента в куки или локальное хранилище.
- При загрузке (перезагрузке) читать эту информацию. Если время не просрочено, использовать этот элемент.
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2017, 10:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35