setTimeout和setInterval的区别

setTimeout()定义和用法

关于setTimeout方法的介绍

定义

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

语法

setTimeout(code,millisec)
参数
code:必需。要调用的函数后要执行的 JavaScript 代码串。
millisec: 必需。在执行代码前需等待的毫秒数。

提示

setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()

function test(){
alert("test");
}
//使用方法名字执行方法
var t1 = window.setTimeout(test,1000);
var t2 = window.setTimeout("test()",3000);//使用字符串执行方法
window.clearTimeout(t1);//清除定时器

setInterval()定义和用法

//实时刷新时间单位为毫秒
setInterval('refreshQuery()',8000); 
/* 刷新查询 */
function refreshQuery(){
   $("#mainTable").datagrid('reload',null);
}

业务场景

  • setTimeout用于延迟执行某方法或功能
  • setInterval则一般用于刷新表单,对于一些表单的假实时指定时间刷新同步

settimeout传参数的几种方法,直接函数句柄调用传参会导致settimeout失效:

1)字符串调用传参

function test(name) {
    alert('hello' + ' ' + name);
}
let param = 'Jack';
setTimeout('test(param)',1000);

2)将函数调用放在一个匿名函数里直接传参

function test(name) {
    alert('hello' + ' ' + name);
}
let testName='assistant'
setTimeout(function () {
    test(testName);
}, 1000); //可以获取到外层参数

3)匿名函数或函数句柄调用可以通过settimeout传参

setTimeout(
  function(value1,value2){
    console.log(value1+"+"+value2);
    console.log(value1+value2)},2000, 1,2)

 

posted @ 2020-07-19 20:46  追求极致  阅读(1916)  评论(0编辑  收藏  举报