js中setinterval(js中setinterval用法)
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
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