项目需求:
一天内只在第一次打开的时候触发某个事件?
需要一个标志位 ,比如flag ,记录一下某个事件被触发的时间戳。
某事件比如是点击按钮button时,alert 一句话 “hello world”。
问题是这个flag 存哪?localstorage里面,用户一清除缓存就清了。
所以这个flag 应该是存在于服务端的,然后你的项目一起来,就要去服务端去获取flag。
当去触发这个事件的时候(点击按钮),判断时间戳是不是在今天内(范围就是今天零点到点击按钮的那一刻)。
flag在这个范围内,那就是触发过了,不再alert ‘hello world’;
flag不在这个范围内,那就是今日未曾触发,alert ‘hello world’;并且设置flag=点击按钮的那一刻的时间戳。向服务端发请求,存入数据库。
上面都是新手拙见,有错误请指正哈。大家不要笑话我。。
重新整理一下语言:
当去触发这个事件的时候(点击按钮),从localstorage中获取flag的值。
1、 如果flag存在,判断时间戳是不是在今天内(范围就是今天零点到点击按钮的那一刻)。
——> flag在这个范围内,那就是今日触发过了,不再alert ‘hello world’;
——> flag不在这个范围内,说明flag的值就是今天之前的某个时间,那就是今日未曾触发,可以 alert ‘hello world’;并且设置flag=点击按钮的那一刻的时间戳。请求后台接口,将flag的值存入数据库、并且写入localstorage中(今天再点就直接从localstorage中取值了)。
2、如果flag不存在(可能是用户清除了缓存、也可能是从未点击过),请求后台接口读取flag的值。
——> 如果flag不存在,说明此处从未点击过。那就点呗。
——> 如果flag存在,那就是说用户清过缓存,那就回到1。
完了。
这个本质是需要一个标志性信息,然后vue可以利用这个标志信息。
这个信息可以是
1.从服务器端获取,
2.也可能是本地的诸如cookie、localStorage信息的处理。
但更多的是1和2的结合。
8 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
3 回答10.4k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答9.9k 阅读
localStorage,然后设置过期时间做判断是否是在一天内