#javascript #html
#javascript #HTML
Вопрос:
У меня есть этот код здесь:
<script>
const stored = localStorage[location.href]
const number = stored || Math.floor(Math.random() * 6) 2
document.getElementById("n1").innerHTML = number
if ( !stored ) localStorage[location.href] = number
</script>
<div>
The first number is <span id="n1"></span>.
</div>
Это отображает случайное число в диапазоне от 2 до 6 и сохраняет его в кэше пользователя, поэтому, если он перезагрузит страницу, тот же номер появится снова. Но то, что я пытаюсь сделать сейчас, это отобразить второе число, и я пытаюсь это:
<script>
const stored2 = localStorage[location.href]
const number2 = stored2 || Math.floor(Math.random() * 8) 3
document.getElementById("n2").innerHTML = number2
if ( !stored2 ) localStorage[location.href] = number2
</script>
<div>
The second number is <span id="n2"></span>.
</div>
Но <span id="n2"></span>
всегда отображается тот же номер, что и в <span id="n1"></span>
. Я предполагаю, что это как-то связано с локальным хранилищем в кэше пользователя. Как заставить его отображать 2 разных числа, но сохранять эти числа в кэше пользователя, чтобы при перезагрузке страницы отображалось то же 2 числа?
Заранее спасибо
Комментарии:
1. localStorage[location.href] <- итак, вы используете одно и то же и удивляетесь, почему это одно и то же?
Ответ №1:
Вы сохранили оба числа localStorage
под одним и тем же ключом ( location.href
), поэтому второе перезаписывает первое.
Вам нужно использовать разные ключи или сохранить числа в словаре JSON и сохранить это вместо этого.
Комментарии:
1. Привет, спасибо за ответ! Да, в этом проблема. Но я не могу изменить этот ключ, потому что он сопоставляет его с текущим URL. Таким образом, сгенерированное скриптом число может измениться, если пользователь перейдет на другую страницу, но останется прежним, если он просто перезагрузит страницу. Есть ли какой-либо способ сгенерировать 2 разных числа и сохранить их в localStorage, но сопоставить с URL-адресом страницы?
2. Вы можете просто добавить некоторую известную строку в конец URL-адреса (numberOne и numberTwo или что-то подобное). Таким образом, ключ остается неизменным между посещениями, но отличается для чисел.
3. Большое спасибо! Можете ли вы дать мне какой-нибудь пример кода, основанный на моем?
4. Посмотрите на эту документацию developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…