Как заставить JS хранить случайные элементы в кеше? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть этот код:

<span id="result"></span>



        <script>
        document.getElementById("result").innerHTML =
        Math.floor(Math.random() * 6) + 2;
        </script>

Работает нормально, генерирует число от 2 до 6, но я хотел бы сохранить это число в кеше пользователя, поэтому, если он перезагрузит страницу, появится тот же номер. Но мне также хотелось бы, чтобы, если пользователь переходил на другой URL, но с тем же кодом, отображалось другое число.

В сумме:

Если пользователь сначала загружает мой веб-сайт и генерируется число 3, отображается номер 3, если пользователь возвращается на тот же веб-сайт, номер 3 будет отображаться, но если пользователь перейдет по другому URL-адресу на моем веб-сайте с тот же код, тогда он должен сгенерировать другое число.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Попробуйте сохранить случайное число в localStorage пользователя и сопоставить его с текущим URL:

const stored = localStorage[location.href]
const number = stored || Math.floor(Math.random() * 6) + 2

document.getElementById("result").innerHTML = number

if ( !stored ) localStorage[location.href] = number
0 голосов
/ 28 марта 2019

Попробуйте с этим:

// Change yousite.com
let lastSite = document.referrer.search(/yoursite.com/gi);

if(lastSite =! -1) {
    document.getElementById("result").innerHTML = localStorage.getItem('random');
}
else {
    localStorage.setItem('random', Math.floor(Math.random() * 6) + 2);
    document.getElementById("result").innerHTML = localStorage.getItem('random');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...