Javascript .onchange?
В настоящее время я пытаюсь найти способ автоматического сохранения предыдущей цены товара до его обновления. Например, если на моем веб-сайте я показываю обмен валют, пусть он будет в долларах США к евро, и я получаю только цену обмена в реальном времени, как я могу использовать javascript для отображения предыдущего значения в одной строке и отображения обновленного значения в другой строке. Это пример кода, предполагающий, что случайное число является ценой обмена между валютами.
Разметка:
<p id="price"></p>
<p id="previous"></p>
JavaScript:
<script>
var price = Math.round((Math.random() + 1)*100)/100;
document.getElementById("price").innerHTML = price;
</script>
В этом случае появляется случайное число, например 1.11. После этого я обновляю страницу, сценарий запускается снова, и случайное число меняется на 1,43. Я хочу отобразить новое случайное число, которое равно 1.43 под #price, и старое (или предыдущее) случайное число, которое в этом случае было 1.11 под #previous. Как я могу использовать JavaScript для этого?
До сих пор благодаря @Terry я пришел к чему-то вроде этого:
<p id="price"></p>
<p id="previous"></p>
<script>
var price = Math.round((Math.random() + 1)*100)/100;
document.getElementById("price").innerHTML = price;
localStorage.previous = price;
document.getElementById("previous").innerHTML = localStorage.previous;
</script>
Есть ли способ использовать localStorage, чтобы сохранить предыдущую цену (или старое случайное число) после обновления страницы?
2 ответа
Это скрипт:
<script>
document.getElementById("previous").innerHTML = localStorage.getItem("previous");
var price = Math.round((Math.random() + 1)*100)/100;
document.getElementById("price").innerHTML = price;
localStorage.setItem("previous", price);
</script>
Обновление всей страницы снова запустит весь сценарий, так что есть 2 возможных решения
- Использование ajax-запроса для загрузки новой цены и множество библиотек, которые могут помочь вам в этом, таких как JQuery
- Если вам нужно обновить страницу, и у вас есть код на стороне сервера, то сохраните старое значение в скрытом поле и обновите логику на стороне сервера и на стороне клиента, чтобы иметь значение внутри скрытого поля.