2
回答
javascript计时器原理
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

昨天在w3c上学javascript的计时器的时候,写了个计时程序。

源码很简单:

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script>
	function show()
	{
		document.getElementById('a').value=new Number(document.getElementById('a').value) + 1
		t=setTimeout("show()",1000);
	}
	function stop()
	{
		clearTimeout(t);
	}
</script>
</head>
<body>
<input type="button" value="开始计时" onclick="show()"/>
<input type="button" value="暂停计时" onclick="stop()"/>
<input id="a" type="text" value="1" readonly="true"/>
</body>
</html>

运行的时候,我突然发现,多次点击开始计时的话,每点一次,就会多一个计时器,时间增加的越来越快。

原以为是启动了多个线程,于是看了看任务管理器:

无论点多少下,线程总数始终不变。查了一下说javascript是单线程的,那么问题来了。。。它是用什么原理计时当得?



<无标签>
举报
cassia_
发帖于2年前 2回/103阅
顶部