下面的代码执行开始按钮好像运行了30秒钟才弹出对框(时间到),setTimeout函数默认1不是代表1毫秒吗?
而1000毫秒=1秒,所以3000毫秒应当是3秒啊?不知道哪里出错,请大家批评指正。
<input type="text" value="3000" id="t" /><input type="button" value="开始" onclick="ks()">
<script language="javascript">
var obj = document.getElementById("t");
function ks()
{
setTimeout(function()
{
if(parseInt(obj.value) >0)
{
obj.value = parseInt(obj.value)-1;
setTimeout(arguments.callee,1);
}
else
{
alert("时间到");
}
},1);
}
</script>
而1000毫秒=1秒,所以3000毫秒应当是3秒啊?不知道哪里出错,请大家批评指正。
<input type="text" value="3000" id="t" /><input type="button" value="开始" onclick="ks()">
<script language="javascript">
var obj = document.getElementById("t");
function ks()
{
setTimeout(function()
{
if(parseInt(obj.value) >0)
{
obj.value = parseInt(obj.value)-1;
setTimeout(arguments.callee,1);
}
else
{
alert("时间到");
}
},1);
}
</script>
解决方案 »
- 在线求助,要在此方法上写多个应用
- 纠结..........
- javascript传值问题????
- 如何实现文本框放大镜功能?
- ****************能找到applet的ID吗?
- javascript或VBScript如何得到用戶的window登錄名?
- 急救!eLong网首页上的日历怎么实现?
- 怎样取出document中某一个input项的 value
- 怎么才能知道是在移动终端上浏览网页?
- uploadify 上传图片 请求多了个404 路径?还有两次多余的请求uploadify.swf?preventswfcaching=?如何只有一次请求呢?
- ExtJs4 treeStore自动加载问题
- 热衷bootstrap的人开始醒醒吧!bootstrap与jquery mobile对比
那么可以算出每5ms执行一次。那么改为5ms一次,一次减5,预期是3秒。
测试后通过。
总结:win7系统。chrome浏览器下的时间精确是5ms
为了递归啊,不想用setInterval 哈哈
代码执行 代码的调用开销 还有系统调度 都有时间的 实际只是保证 至少在1毫秒后 执行 你的代码但是 桌面浏览器最小调度开销至少是 10
移动设备至少是 12用settime精确到1毫秒级别是没意义的更精确计算时间过渡 只有用时间差
http://www.nczonline.net/blog/2011/12/14/timer-resolution-in-browsers/也可以在线测试一下
http://jsfiddle.net/rgrove/rQtUU/embedded/result/
为了递归啊,不想用setInterval 哈哈一个setTimeout就可以递归了.最外面那个可以去掉的.不信你试试
为了递归啊,不想用setInterval 哈哈一个setTimeout就可以递归了.最外面那个可以去掉的.不信你试试
+1