问题描述
- 随着时间后台数值添加的问题
-
我有一个页面,我想让它显示个每隔多少分钟就加一的数字,比如说现在我看这个数字是100,十分钟后就是101,再过5分钟就是102,并且不受访客和页面刷新影响。中间这个时间要在5分钟10分钟20分钟这三个内随机。不知怎么做到,asp、php、html、js、jq均可。随机做不到可以不做
解决方案
var thisNum;//定义
var timeArray=[5,10,20];//定义随机时间数组
var timeT=timeArray[Math.round(Math.random()*2)]*60*1000;//随机取出一个值赋值给timeT
function addNum(){
if(window.localStorage.getItem('thisNum')!=''){
thisNum=window.localStorage.getItem('thisNum');//获取本地的数据
}else{
thisNum=100;
}
thisNum+=1;
window.localStorage.setItem('thisNum',thisNum);//设置本地的数据
console.log(window.localStorage.getItem('thisNum'));
setTimeout(addNum(),timeT);
timeT=timeArray[Math.round(Math.random()*2)]*60*1000;
}
window.onload=addNum();
其实楼上说的对,只不过我用的是localstorage。功能上实现出来了,但是,如果用户清理浏览器缓存数据,一样会从初始数据开始
解决方案二:
你在后台做就行了,用线程之类的随机一个等待时间,负责更新数据库,客户端就用计时器定时从数据库获取值
解决方案三:
前端做是最好的,不然还需要push数字到页面,可以把你的数字、等待时间、更新时间这些内容存放在cookie;
页面刷新可以读取cookie里面设置timeout的时间已经timeout设定的时间,重新计算设计就ok啦。不刷新的话可以不用读取cookie内容;
cookie只是保存的一个副本,这样不要耗费流量,并且及时,也不用做轮询。
希望可以帮到你。