JavaScript与jQuery实现定时器的三种常用方法

作者:异步漫步时间:2026-10-27 11:51:46浏览:109

本文详细解析在JavaScript和jQuery环境下实现定时器的三种核心方案。第一种介绍setInterval间歇调用的基础用法及潜在问题;第二种展示利用setTimeout进行递归调用的稳定实现;第三种结合HTML表单元素,演示如何通过按钮控制计时的开始与停止,涵盖完整的交互逻辑与代码实现。

第一种方法:

使用setInterval实现间歇调用

第一种方法的代码实现如下:

 
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>定时器</title>
<script language="javascript" src="jquery-1.4.2.js"></script>
<script language="javascript">
//使用setInterval间歇调用 (不建议使用该方法)
$(function(){
setInterval(function(){
"#currentTime").text(new Date().toLocaleString());
},1000);
}); 
</script>
</head>
<body>
<div id="currentTime"></div>
</body>
</html>

第二种方法:

利用setTimeout进行递归调用

第二种方法的代码实现如下:

 
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>定时器</title>
<script language="javascript" src="jquery-1.4.2.js"></script>
<script language="javascript">
//使用setTimeout超时调用
function startTime(){
"#currentTime").text(new Date().toLocaleString());
setTimeout('startTime()',1000);
} 
</script>
</head>
<body onload="startTime()">
<div id="currentTime"></div>
</body>
</html>

第三种方法:

结合表单控件控制计时启停

第三种方法的代码实现如下:

 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>定时器</title>
<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="开始计时!" onclick="timedCount()"/>
<input type="text" id="txt"/>
<input type="button" value="停止计时!" onclick="stopCount()"/>
</form>
</body>
</html>
作者最新文章