js中setinterval(js中setinterval用法)

http://www.itjxue.com  2023-02-23 10:41  来源:未知  点击次数: 

JS setInterval暂停和重启

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

setInterval() 没有暂停这一说,只能清除和开启。

title/title

script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"/script

script src="Scripts/jquery-1.4.1.js" type="text/javascript"/script

script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"/script

script type="text/javascript"

$(function () {

var iCount = setInterval(GetBack, 3000);

function GetBack() {

alert("aa");

$.ajax({

type: "POST",

url: "WebForm4.aspx/GetString",

dataType: "text",

contentType: "application/json; charset=utf-8",

beforeSend: function (XMLHttpRequest) {

},

success: function (msg) {

alert("ff");

},

error: function (msg) {

alert(msg);

}

});

}

$("#cOk").click(function (e) {

clearInterval(iCount);

});

});

/script

div

a href="#" id="cOk" sss/a

/div

后台代码

------------------

[WebMethod]

public static string GetString()

{

return "aa";

}

js中setInterval与作用域

setInterval()的第一个参数如果是字符串,这个字符串中的代码就是在全局环境中执行的,作用域固定是全局作用域window

只有第一个参数是函数时,才能有函数创建时所在的作用域。

setInterval(function(){fun()},1000);

js 中 setInterval的执行次数问题

虽然是老问题了,但是好像没看到有人解释一下为什么出错,上来给大家补一个

setInterval被包含在Interval所调用的函数里了,这就意味着每次循环,都会再启动一个Interval

也就是说,第一次的循环

timeDao--;

计数100 - 1 = 99

并且添加一个新的循环 (当前有 2 个循环进程)

第二次循环

99 - 1 = 98

98 - 1 = 97

并且两个现有循环各添加一个新的循环(当前有 4 个循环进程)

第三次循环

97 - 1 = 96

96 - 1 = 95

95 - 1 = 94

94 - 1 = 93

... (不用再往下写了,相信已经说明了问题)

以下为修改代码:

script?type="text/javascript"

var?sh?=?null;??//?时钟对象

var?timeDao?=?100;??//?计数器

//?FUNCTION?::?dao?()

//?计数递减函数

function?dao?()?{

????divD.innerText?=?timeDao;

????if(timeDao?==?0)?{

????????if?(sh?!=?null)?clearInterval(sh);

????????sh?=?null;

????????return;

????}

????timeDao--;

}

//?FUNCTION?::?startsh?()

//?启动计时器

function?startsh?()?{

????sh?=?setInterval("dao()",?1000);

}

/script

div?id="divD"?onclick="startsh()"sdfa/div

js中setInterval()函数只执行一次的原因

原因分析

产生这个问题是因为我们对js函数理解不透彻导致的:

1,show():这样写表示函数执行后的结果

2,show:这样写表示函数的定义

因setInterval()要接收一个函数的定义而非结果,故改正为:

js setInterval循环问题

你在函数内再次用setInterval调用函数本身,就会产生叠加效果,速度会越来越快。应该一次性用setInterval调用函数即可:

script

var?i?=?0;

var?timer?=?setInterval(function(){

???document.getElementById("text").value?=?i++;

},5000);

function?stop2(){

???clearInterval(timer);

}

/script

或者改用setTimeout也可,这是一次性调用的(相当于定时器),那么在函数内再次调用就能实现循环效果了。而setInterval本身就是重复调用的(相当于计时器),不能放在函数内使用:

script

var?i?=?0;

var?timer?=?0;

window.onload?=?function?start2(){

???document.getElementById("text").value?=?i++;

???timer?=?setTimeout(start2,?5000);

}

function?stop2(){

???clearTimeout(timer);

}

/script

js计时器中setTimeout和setInterval的区别和使用

JavaScript 计时器

计时器类型:

一次性计时器(setTimeout):仅在指定的延迟时间之后触发一次。

间隔性触发计时器(setInterval):每隔一定的时间间隔就触发一次。

计时器方法:

一.计时器setInterval()? ? ? ?

? ? ? ? ?? ? ? ? ??

在执行时,从载入页面后每隔指定的时间执行代码。

语法:

setInterval(代码,交互时间);

参数说明:

1. 代码:要调用的函数或要执行的代码串。

2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。

返回值:

一个可以传递给 clearInterval() 从而取消对"代码"的周期性执行的值。

调用函数格式(假设有一个clock()函数):

setInterval("clock()",1000)

setInterval(clock,1000)

我们设置一个计时器,每隔100毫秒调用clock()函数,并将时间显示出来,代码如下:

!DOCTYPE?HTML

html

head

meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"

title计时器/title

script?type="text/javascript"

??var?int=setInterval(clock,?100)

??function?clock(){

????var?time=new?Date();

????document.getElementById("clock").value?=?time;

??}

/script

/head

body

??form

????input?type="text"?id="clock"?size="50"??/

??/form

/body

/html

二.计时器setTimeout()? ? ? ?

? ? ? ? ?? ? ? ??

setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。

语法:

setTimeout(代码,延迟时间);

参数说明:

1. 要调用的函数或要执行的代码串。

2. 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。

当我们打开网页3秒后,在弹出一个提示框,代码如下:

!DOCTYPE?HTML

html

head

script?type="text/javascript"

??setTimeout("alert('Hello!')",?3000?);

/script

/head

body

/body

/html

当按钮start被点击时,setTimeout()调用函数,在5秒后弹出一个提示框。

!DOCTYPE?HTML

html

head

script?type="text/javascript"

function?tinfo(){

??var?t=setTimeout("alert('Hello!')",5000);

?}

/script

/head

body

form

??input?type="button"?value="start"?onClick="tinfo()"

/form

/body

/html

要创建一个运行于无穷循环中的计数器,我们需要编写一个函数来调用其自身。在下面的代码,当按钮被点击后,输入域便从0开始计数。

!DOCTYPE?HTML

html

head

script?type="text/javascript"

var?num=0;

function?numCount(){

?document.getElementById('txt').value=num;

?num=num+1;

?setTimeout("numCount()",1000);

?}

/script

/head

body

form

input?type="text"?id="txt"?/

input?type="button"?value="Start"?onClick="numCount()"?/

/form

/body

/html

(责任编辑:IT教学网)

更多

推荐XML/XSLT文章