先看两个简单的小例子。
setTimeout()的使用:
<SCRIPT LANGUAGE="JavaScript">
function test() {
//100毫秒后执行sleep方法, 但这100毫秒程序不会等待,会继续执行setTimeout后面的代码
//效果就是 先alert(2); 后 alert(1);
window.setTimeout("sleep()", 100);
alert(2);
}
function sleep(){
alert(1);
}
test();
</SCRIPT>
关于setTimeout方法的第一个参数,可以为 字符串,也可以为方法的指针
如果为字符串的时候必须写括号,指针时不用写括号,
如:
window.setTimeout("sleep()", 100);
window.setTimeout(sleep, 100);
两者效果一样。
另: 可以指定参数,如
window.setTimeout("sleep('" + document.all.aa.value + "')", 100);
window.setTimeout(sleep(document.all.aa.value), 100);
然后再sleep方法里可以取到参数的值。
再看看window.setInterval() :
<SCRIPT LANGUAGE="JavaScript">
var timer;//声明一个定时器
var count = 0;
function test()
{
//每隔500毫秒执行一次add()方法
timer = window.setInterval("add()",500);
}
function add(){
alert(++ count);
if (count == 5)
{
//如果count值达到5,清空定时器
window.clearInterval(timer);
}
}
test();
</SCRIPT>
应用在加密锁中自动识别加密锁,随时监测到加密锁的插入。
//设置timer全局变量,当找到加密锁时停止timer
var timer;
function IA300_GetInstance()
{
if(_IA300Client == null)
{
_IA300Client = document.getElementById("IA300Client");
}
_IA300Client.Model = 0;
return _IA300Client;
}
var flag = false;
//页面加载时调用此函数方法
function OnPageLoad() {
var browser = DetectBrowser();
if (browser == "Unknown") {
alert("不支持该浏览器, 如果您在使用傲游或类似浏览器,请切换到IE模式");
return;
}
//createAdminElementIA300() 对本页面加入IA300插件
createElementIA300();
//DetectActiveX() 判断IA300Admin是否安装
var create = DetectIA300Plugin();
if (create == false) {
alert("插件未安装,请安装开发套件Plugin文件夹下的管理层插件。");
return false;
}
}
//查找本地
function IA300Find() {
var rtn = IA300_CheckExist();
if (0 < rtn) {
/*alert("找到"+rtn+"把锁, 请在列表中选择你需要设置的加密锁. 注意请自行排除管理员锁!");*/
document.getElementById("userUK").options.length = 0; //初始化列表
for (i = 0; i < rtn; i++) { //获取所有加密锁硬件ID
var id = IA300_GetHardwareId(i);
if (id == "") {
alert("获取第" + (1 + i) + "把锁硬件ID失败,错误码:"
+ IA300_GetLastError());
} else {
document.getElementById("userUK").options[i] = new Option(
id, id);
alert("检测到加密锁,请进行登录!");
//检测到加密锁退出timer
if(document.getElementById("userUK").options[i].value == id){
window.clearInterval(timer);
}
}
}
} else {
//alert("未找到加密锁!");
document.getElementById("userUK").options.length = 0;
document.getElementById("userUK").options[0] = new Option(
"");
return false;
}
}
//开始检查timer
function IA300_StartCheckTimer(interval)
{
//_TimerErrorMessage = errMsg;
// _ExpireUrl = logonUrl;
//定时检测
timer = window.setInterval(IA300Find, interval);
}
//当页面加载时运行上述两个js方法
$(document).ready(function() {
OnPageLoad();
IA300_StartCheckTimer(500);
});