session - 同一网络会话中的永久计数器
问题描述
试图在网页上设置一个计数器,该计数器不会在同一用户会话中的每个不同页面视图上重新启动。当前使用此代码(感谢Praveen Kumar Purushothaman),但每次查看不同页面时此计数器都会重置。
setTimeout(start, 0);
var i = 0;
var num = document.getElementById("number");
function start() {
increase();
setInterval(increase, 1000);
}
function increase() {
if (i < 100000) {
i += 10.41;
num.innerText = i.toFixed(2);
}
}
<span id="number"></span>
解决方案
我的建议是将变量存储到会话存储中。我在评论中添加了更多细节:
setTimeout(start, 0);
// You're saving your current value here.
// Let's use localStorage. Set the i value if it doesn't exist for the first time.
if (!localStorage.getItem("i")) {
localStorage.setItem("i", 0);
}
var num = document.getElementById("number");
function start() {
increase();
setInterval(increase, 1000);
}
function increase() {
var i = localStorage.getItem("i");
if (i < 100000) {
i += 10.41;
// When you're making any changes, make changes to the localStorage too.
localStorage.setItem("i", i);
num.innerText = i.toFixed(2);
}
}
推荐阅读
- javascript - Django Rest Framework + ReactJS:我的 API 有什么问题?
- variables - SSRS 更改变量值的操作
- r - 在集群上使用批处理工具提交作业的问题
- gwt - 直到哪个版本的 chrome 支持 GWT Classical Dev Mode?
- python - Python-GStreamer:使用固定参数访问回调函数内的类成员
- tabs - 如何导航超出面板范围的 Google 应用制作工具标签
- python-3.x - _pickle.PicklingError: 来自 __newobj__ args 的 args[0] 在 tensorflow 项目中有错误的类
- julia - 在 Julia 1.0 中,当昏暗进入暮光区时会发生什么?
- postgresql - PostgreSQL & BDR:BDR真的是多主控吗,2019年1.x的开源和EOL吗?
- r - 在数据框中的列表元素的第一页上查找单词