我是一个前端开发新手,之前做了一年的c++计算机应用程序。现在转到自己感兴趣的前端开发把遇到的问题与共同学习的朋友分享。
开始学习时发现js没有多线程这个概念,那他是怎么实现异步的呢?一次在使用setTimeout()时发现,多次触发setTimeout()时,会运行多个setTimeout()中的函数,触发的函数在同一时间运行。clearTimeout()时要调用与setTimeout()触发次数相同的次数才能完全清除timeout。
<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}
function stopCount()
{
clearTimeout(t)
}
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()"> //多次点击按钮则多次触发
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body>
</html>