小看了setTimeout()
来源:cssrain 发布时间:2009-12-04 12:44:00
今天做项目时,有一个这样的需求,需要动态删除的Tab,比如:可以删除某一个,可以删除多个。
每一个Tab对应一个iframe。
本来我的代码是这么写的:
//...前面代码省略
eqdiv.children("iframe")[0].contentWindow.location.replace("about:blank");
eqdiv.remove();
//...后面代码省略
上面的代码可以实现删除。但我突然奇思妙想,给remove()来个setTimeout吧,自己的内心总觉得延迟个50毫秒执行好些,于是把代码改为:
//...前面代码省略
setTimeout(function(){
eqdiv.children("iframe")[0].contentWindow.location.replace("about:blank");
eqdiv.remove();
},50);
//...后面代码省略
改了后,当时也没仔细测试,后来终于被测试员找出问题,夜晚2点被叫到公司找bug。。。
于是我慢慢找bug,发现有如下情况:
在单独关闭一个Tab时,没有问题。
在同时关闭多个Tab时,问题来了。于是我对删除Tab的代码进行了一句句调试,终于找出问题所在。
最终代码还是之前的:
//...前面代码省略
eqdiv.children("iframe")[0].contentWindow.location.replace("about:blank");
eqdiv.remove();
//...后面代码省略
之后仔细一想,的确setTimeout在做循环删除时,会有问题。
举个很简单的例子:
var a = $("#t");
$("<p>1</p>").appendTo(a);
setTimeout(function(){
$("<p>2</p>").appendTo(a);
},500);
$("<p>3</p>").appendTo(a);
运行结果肯定是: 1 , 3 , 2
但我脑子里 当时 怎么就忘记setTimeout() 的这个特性了呢 , 循环时真的要注意啊 。
猜你喜欢
- 上段时间,团队内部有过好几次几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了写口语化的描述,留作备案。一、讲个故事吧澄清在
- VBScript似乎已经成为ASP服务器端开发的首先语言,VBScript函数库丰富、而且使用起来也很容易上手,即使平时不太编程的朋友,只要
- 这个可以说属性选择符的JS版,用来遴选元素是适合不过。在开始之前,我们复习一下CSS2的属性选择符,JQuery高手可以跳过。属性选择符:名
- 如果你经常浏览网页一定见过很多网站在form表单中的文本域(textarea)中添加了的背景图片,一般是使用网站的logo,我记得我最早注意
- 一共4个页面:form.asp; chk.asp; num.asp; count.asp得到一个随即数字。加密
- 突然想到写这个话题,是基于最近在设计产品界面时,年糕一直在给我们灌输设计的品牌概念以及文化内涵要求而产生的,因之前在界面设计中也遇到一些困惑
- 【原文地址】New "Orcas" Language Feature: Query Syntax 【原文发表日期】 Sa
- asp学习入门经验介绍,本文初步介绍了初学asp的一些相关知识,如VBScript语法简介,循环控制语句的使用,asp数据库的简单操作查询,
- 在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定。 一.表空间的自由空间 通过对表空
- 接着上一篇《服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)》继续讲讲ServerXMLH
- 尽管甲骨文收购Sun交易尚在等待最终结果,业界对开源数据库MySQL的未来命运也十分担忧,但Sun的开发者依然在继续努力研发该开源数据库。他
- 编者按,网站中让人惊喜的往往是那一点细节,只要用心留意你将发现那些美好的用户体验就在身边。新蛋网想自主控制链接在原窗口还是新窗口中打开?看看
- Windows 8 终于发布了,虽然现在可用的只是开发者预览版,好消息是,IE 10 也随着发了,虽然现在还只有Windows 8可用。我们
- XMLHttpRequest 最近在 W3C 标准之路上又迈进了一步,W3C Web API&nbs
- IE6绝对定位的bug及其解决办法。position:absolute定位在IE6下存在left和bottom的定位错误问题:<!–I
- 自从2005年8月11日阿里巴巴宣布收购雅虎中国的全部资产后,做为阿里巴巴集团的创始人马云心里盘算的事应该是如何把雅虎中虎整合进阿里巴巴这个
- 上期回顾:亚马逊购物用户体验分析 (一)“查找内部”功能书是在亚马逊最常被购买的产品之一,所以毋庸置疑亚马逊的开发小组已经建立了一个关于“查
- 成天都要与样式打交道的朋友,相信对CSS选择符(CSS Selectors)都不会陌生。不过对于刚接触或者还不是很熟悉css的朋友来说,能够
- 矛盾出来了,像我们这些小作坊,基本都是设计布局一人搞定。甚至还有加后台程序的。假设设计的时候考虑布局了,我们都有这个能力进行调整。但像大公司
- 各位大哥: 在javascript中如何取整?比如: var