希望你能帮助我。
我正试图找出一种使用javascript更改javascript代码的方法。
如果那是不可能的,那么如果你可以建议另一种方式让我完成我想做的事情,那就太好了。
基本上,用户选择选项,为时钟生成自定义的javascript代码(通过ajax技术使用php)。现在,此代码使用eval语句运行,时钟显示在特定元素中。
每次通过AJAX从服务器收到响应时都会运行eval()语句。
问题是,因为它是一个时钟,我使用setInterval()来不断更新时间。现在,如果运行多个ajax调用,则多个函数开始在循环中运行。
,即在第一次服务器调用后,我们运行了这个:
setInterval(function and code for clock with format 1,1000);
和
setInterval(function and code for clock with format 2,1000);
所以基本上,我想以某种方式阻止第一个在第二个开始之前运行......有什么想法?
提前感谢。
答案 0 :(得分:1)
我认为您可以将setInterval分配给变量并在下次调用时清除它
var a = setInterval(function and code for clock with format 1,1000);
clearInterval(a);
答案 1 :(得分:0)
setInterval
返回创建的时间间隔的数字标识符,您可以将其传递给clearInterval
以停止它。只需将标识符存储在某个变量中,然后在开始新间隔之前将其停止。
var intervalID;
// When creating the first interval
intervalID = setInterval(function() { ... }, 1000);
// When creating the second interval
clearInterval(intervalID);
intervalID = setInterval(function() { ... }, 2000);
如果您不确定某个间隔是否已经开始,您可以先检查是否设置了intervalID
并在必要时将其清除。
if(intervalID) clearInterval(intervalID);
intervalID = setInterval(function() { ... }, 1000);