#javascript
Вопрос:
У меня есть код ниже
var amount = document.getElementById('downloads-t76a');
var current = 3700;
document.getElementById("downloads-t76a").innerHTML = localStorage.userTotal;
function update()
{
amount.innerText = format(current);
}
setInterval(function(){
current = Math.floor(Math.random() * 10);
localStorage.setItem('userTotal', current);
update();
},2000);
function format(amount)
{
var d = Math.floor(amount).toString().split('');
var c = (Math.round((amount%1)*100)/100).toString().split('.')[1];
if(typeof c == 'undefined'){
c = '00';
}else if(c.length == 1){
c = c '0';
}
var str = '';
for(i=d.length-1; i>=0; i--){
str = d.splice(0,1);
if(i%3 == 0 amp;amp; i != 0) str = ',';
}
return str;
}
В основном после первого перехода пользователя на сайт значение начинается с 3700, значение обновляется каждые 2 секунды. Проблема в том, что при обновлении значение окна снова начинается с 3700, но я хочу, чтобы оно было последним обновленным значением до обновления пользователя.
Комментарии:
1. Вы можете просто получить значение при загрузке страницы с помощью localStorage.GetItem . Затем установите его на 3700, если он не существует. Имейте в виду, что localStorage всегда возвращает строку, поэтому вам нужно разобрать ее на число после выполнения
localStorage.getItem
Ответ №1:
При обновлении ваш скрипт запускается заново. Таким образом, ничто из предыдущего кода недоступно. Именно по этой причине вы используете localStorage.
var storageValue = localStorage.getItem('userTotal') ;
var current = storageValue === null ? 3700 : ( JSON.parse(storageValue));
Использование
оператора в качестве GetItem() возвращает строку DOMString. Нам нужно преобразовать его в число.