我正在处理一个项目,其中图像上的文本必须每小时更改一次。
我使用 javascript setinterval()
,不知道它是如何工作的。
如果网站的用户重新加载页面,那么间隔会重新开始吗?
如果是,我怎样才能防止它重新启动?
我正在处理一个项目,其中图像上的文本必须每小时更改一次。
我使用 javascript setinterval()
,不知道它是如何工作的。
如果网站的用户重新加载页面,那么间隔会重新开始吗?
如果是,我怎样才能防止它重新启动?
是的,当用户重新加载时,间隔将重新开始。您可以使用Date
对象来确定要显示的文本,例如:
var texts = [
'Hello!',
'You rock!',
'Have a nice day.',
'Welcome :)'
];
var text = texts[Math.floor((new Date).getTime()/3600000)%texts.length];
// text will update every hour (when the page is refreshed)
演示(修改为每 10 秒更新一次)
当用户加载网页时,setinterval 将开始,但是当他们刷新或导航到不同的页面时,setinterval 将不会继续计数。
最好的方法是在 javascript 中使用日期。
所以你可以做类似的事情。
上午 9 点 - 显示此图像 上午 10 点 - 显示此图像等...
识别浏览器刷新事件并将时间间隔存储在缓存或本地存储中。浏览器刷新完成后恢复间隔值