setTimeout()与setInterval() 问题

简介:

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

1. setInterval(code,millisec[,"lang"])  setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 

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

也许你曾碰到过这样的问题,不管是setInterval()还是setTimeout(),当code参数里放一个带参函数时,定时器都会失效,看下面这个例子: 

function test(str){ 
alert(str); 
} 
var a = "abcde" ;
setTimeout(test(a),3000); 

执行上面代码,页面不会延迟3秒调用test(a),而是会立即执行test(a),IE、FF、Chrome下都会出现这个问题,如果你经常用到定时器,这个问题应该应该经常会碰到,那么要怎样去解决呢? 

方法1:用匿名函数包裹

复制代码
function test(str){ 
alert(str); 
} 
var a = "abcde" ;
setTimeout(function(){ 
test(a); 
},3000); 
复制代码

方法2:用引号包裹需调用的函数 

function test(str){ 
alert(str); 
} 
var a = "abcde" ;
setTimeout("test('+a+')",3000); 

项目实践

页面删除收藏后,停留0.5秒,再跳转。

复制代码
function jump(){
    location.href = "{sh::U('Collect/index',array('token'=>$token))}";
}
function del_collect(){
    var ids = "";
    $(".collect_checkbox").each(function(){
        if($(this).is(':checked')){
            ids += ','+$(this).val();
        }
    });
    ids = ids.substring(1);
    $.ajax({
        type:"post",
        url:"{sh::U('Collect/ajax',array('token'=>$token))}",
        data:"do=delcollect&ids="+ids,
        success:function(data){
            var data = JSON.parse(data);  // 解析成json对象
            if(data.success == 1){ // 删除成功
                //window.setInterval("jump()",500); // 停留0.5秒跳转,没隔一段时间就执行一次,页面跳转后失效
                //window.setTimeout("jump()",500);
                window.setTimeout(function(){jump();},500);

            }
            return floatNotify.simple(data.error_code);
        }
    });
}
复制代码

开始时怎么用都不行,后来尝试加双引号,都有效果了。


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/4979721.html,如需转载请自行联系原作者

相关文章
|
JavaScript 数据处理
JS 取整,取余操作
JS 取整,取余操作
501 0
|
缓存
【已解决】npm安装依赖报错: npm ERR! cb() never called! npm ERR! This is an error with npm itself.
【已解决】npm安装依赖报错: npm ERR! cb() never called! npm ERR! This is an error with npm itself.
3547 0
|
JavaScript Windows 内存技术
nvm 安装 node 成功,npm 却安装失败?
nvm 安装 node 成功,npm 却安装失败?
2669 0
nvm 安装 node 成功,npm 却安装失败?
|
2天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1027 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1722 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
667 152