先看兩個簡單的小例子。
setTimeout()的使用:
[javascript]
<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方法的第一個參數,可以為 字串,也可以為方法的指標
如果為字串的時候必須寫括弧,指標時不用寫括弧,
如:
[javascript]
window.setTimeout("sleep()", 100);
window.setTimeout(sleep, 100);
兩者效果一樣。
另: 可以指定參數,如
[javascript]
window.setTimeout("sleep('" + document.all.aa.value + "')", 100);
window.setTimeout(sleep(document.all.aa.value), 100);
然後再sleep方法裡可以取到參數的值。
再看看window.setInterval() :
[javascript] view plaincopy
<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>
應用在加密鎖中自動識別加密鎖,隨時監測到加密鎖的插入。
[javascript]
<span style="white-space:pre"> </span>//設定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);
}
[javascript]
<span style="white-space:pre"> </span>//當頁面載入時運行上述兩個js方法
[javascript] view plaincopy
<span style="white-space:pre"> </span>$(document).ready(function() {
OnPageLoad();
IA300_StartCheckTimer(500);
});