例如我要在设计一个商品的倒计时,那么
- 为了防止服务器宕机,我就得把倒计时间保存到数据库里对吧?
- 然后我每次用户访问我就从数据库里读出倒计时间,然后前端用js实时倒计时显示。
假如是这样实现的,那么这2个问题我不明白:
- 假如我有很多商品,那每个商品都在后台用
setinerval
在倒计时,每次用户访问都读数据,这不是频繁的读写了吗? - 万一服务器宕机了,在服务器宕机和恢复的这段时间失去的时间怎么办?
请问我理解的对吗?
赶脚应该DB存的是截止时间吧~
维护一个js文件,里面写好对应的商品id和开始时间,页面加载后,跟当前时间比较,做倒计时 不是数据库里的数据才叫数据,变量,数组都算数据吧
@CarlosRen 那在哪个环节是可以判断商品有没有到期的? 我想到的只有在服务端有一个商品对应的 setinerval 一直在运行着。
可以放到客户端啊 ,从静态文件里读取{商品信息,截止时间}你的setinerval 函数根据获得当前系统时间,就可以做倒计时了吧
第一个问题,你需要持久化中间件
商品详情页这样这个可以根据商品数据,存储截止时间戳,在展示的时候,与当前时间做减法计算出时间差,js做定时器就行了吧
我明白客户端可以根据后端给出的时间来显示倒计时。
想问的是,假如没有客户端访问,那么服务端也需要有一个setinerval
吧,不然在什么时候改变商品的过期状态?
在下一次有访问的时候吗?
@think2011 像这种情况在做数据库设计的时候就要考虑了,应该存这个商品的类型,比如是限时特卖,然后有开卖时间和结束时间,而不是用是否过期来表示。 自豪地采用 CNodeJS ionic
@think2011 简单的, 你商品过期不过期, 你不是可以根据过期时间戳判断出来,不用更改状态也是可以, 除非你有特殊需求
恩,我想多了,根据过期时间来判断,不需要更改状态,谢谢各位!