当前位置: 首页 > 知识库问答 >
问题:

javascript - setInterval每次刷新页面都会重新执行?

安泰平
2023-04-22

vue2开发
需求是没间隔多上时间请获取一次token、token是10分钟有效、我需要在7分钟的时候刷新一次token、然后我使用的是setInterval()方法 没7分钟请求一次,
但是出现的问题是、页面刷线以后setInterval()方法又重新执行了一次、导致没有正常刷新token

  1. 如何解决setInterval页面刷新以后不再重新执行
  2. 或者利用其他方法

    setInterval(() => {
       console.log('没30s执行一次')
     }, 30000);
    

共有3个答案

杜烨伟
2023-04-22

页面销毁前清除定时器

created() { 
    this.intervalId = setInterval(
    () => { console.log('没7分钟执行一次') }, 7 * 60 * 1000) 
    // 每7分钟执行一次 
    } 
beforeDestroy() { clearInterval(this.intervalId) }
欧旻
2023-04-22

使用浏览器缓存,将获取到的token和获取时间存入localStorage,定时器判断时,根据上次获取时间判断,超出7min的话去后台拿token,覆盖存入localStorage。

关于localStorage你可以参考:
https://www.runoob.com/w3cnote/localstorage-spec.html

或者看看有没有鉴定token有效性的接口,在必要操作时进行token有效性校验,如果失效了再重新获取。

薛烨
2023-04-22

可以设置下一次更新时间,通过当前时间是否超过设置的时间(可提前xx秒),然后更新token,再次设置下一次更新时间

 类似资料:
  • 我有一个关于android camerax架构的问题。我使用的是预览视图,效果非常好。问题与片段之间的事务有关。片段1具有previewView。当我切换到fragment2并返回fragment1时,我会再次绑定previewview,使它首先出现黑屏,然后预览显示在屏幕上。我不想看到黑屏。这个问题有什么解决办法吗?

  • 问题内容: 如何强制Web浏览器通过JavaScript硬刷新页面? 硬刷新意味着获取页面的新副本并刷新所有外部资源(图像,JavaScript,CSS等)。 问题答案: 尝试使用: 当此方法接收一个值作为参数时,它将导致该页面始终从服务器重新加载。如果为false或未指定,浏览器 可能会 从其缓存中重新加载页面。

  • 问题内容: 我有一个文件,其中我在页面顶部显示外部页面(使用iframe),其他部分是写在文件中的html代码的输出。 HTML代码如下所示: 现在,我想以编程方式刷新页面而不刷新。 我的问题是我可以不刷新页面就刷新页面吗? 答案/提示将不胜感激。 问题答案: 该嵌在主HMTL页面(或在JSP)。因此,如果刷新页面,则肯定会再次加载iframe。 为了避免这种情况,我可以考虑以下两种选择: 使用A

  • 每当从我的要素文件开始执行新方案时,就会启动一个新浏览器。我希望浏览器只在我的第一个场景执行时启动一次,在场景的其余部分,不应打开新的浏览器。 我已经把我的浏览器打开代码写进了类下的注释中。

  • 我想在注销后刷新/重新加载页面(屏幕上的消息在5秒钟内可见)。当前代码不会刷新它,所以我仍然在标题中看到用户名,而不是像登录按钮这样的东西。 我已经检查了这篇文章,但没有什么变化。

  • 问题内容: 我有一个C#Windows窗体,其中包含几个文本框和按钮。它还具有显示sql表的datagrid视图。我创建了一个刷新按钮,使我可以刷新表,以便可以看到表中的更新项。我想知道有没有办法自行刷新表。就像每10秒一次,或者代替表格,也许每10秒就会自动加载或刷新整个表格吗? 问题答案: 使用Timer控件,它调用了UI线程,并且可以通过表单设计器使用该控件。