使用javascript </script>更改javascript(或<script>标记)

时间:2012-07-04 10:29:55

标签: php javascript ajax

希望你能帮助我。

我正试图找出一种使用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);

所以基本上,我想以某种方式阻止第一个在第二个开始之前运行......有什么想法?

提前感谢。

2 个答案:

答案 0 :(得分:1)

我认为您可以将setInterval分配给变量并在下次调用时清除它

 var a = setInterval(function and code for clock with format 1,1000);

 clearInterval(a);

http://www.w3schools.com/jsref/met_win_clearinterval.asp

答案 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);