繁体   English   中英

如何在不刷新页面的情况下每5秒刷新一次方法?

[英]How to refresh a method for each 5 second without refreshing a page?

我只有一个简单的方法叫a()我需要每5秒钟刷新一次此方法,所以我在这里使用了setInterval它工作正常。

 a(); setInterval(function () { a(); }, 5000) function a() { alert('method refreshed!!') } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

问题是,如果我对该方法进行了任何更改并将其保存,更改将不会更新,直到刷新页面为止。

例如,我从我的方法中删除了alert()并保存了它,但是alert()框被触发直到刷新页面。 但是我想在不刷新页面的情况下更新更改,该怎么做?

您必须保存对初始setInterval的引用才能清除它,并使用新函数再次开始一个间隔。

 function a1() { console.log('first a'); } a1(); const firstInterval = setInterval(a1, 1000); setTimeout(() => { function a2() { console.log('second a'); } clearInterval(firstInterval); const secondInterval = setInterval(a2, 1000); }, 2500); 

另一种选择是像这样简单地重新分配a

 let a = () => console.log('first a'); a(); const firstInterval = setInterval(() => { a(); }, 1000); setTimeout(() => { a = () => console.log('second a'); }, 2500); 

(您必须使用函数表达式( a = () =>a = function() { ),而不是函数声明( function a() { ),因为悬挂了函数声明。)

但是,仍然尝试避免重新分配功能,这是非常糟糕的做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM