目前定時的操作有:
一、Html頁面的定時刷新(Refresh--刷新 )
1,Refresh (刷新) 代碼使用說明
說明:讓網(wǎng)頁多長時間(秒)刷新自己,或在多長時間后讓網(wǎng)頁自動鏈接到其它網(wǎng)頁。
用法:<Meta http-equiv="Refresh" Content="30">
<Meta http-equiv="Refresh" Content="5; Url=http://www.baidu.com">
注意:其中的5是指停留5秒鐘后自動刷新到URL網(wǎng)址
2,如何定時操作
你可以在同一個頁面重復刷新,以達到定時操作的效果。
如:<meta http-equiv="refresh" content="5;URL=http://www.baidu.com/test.asp">
缺點:要在瀏覽器打開頁面,不能關(guān)閉。
二、Javascript里面的setTimeout 和 setInterval
1,setTimeout 和 setInterval的區(qū)別
window對象有兩個主要的定時方法,分別是setTimeout 和 setInteval 他們的語法基本上相同,但是完成的功能取有區(qū)別。
setTimeout方法是定時程序,也就是在什么時間以后干什么。干完了就拉倒。
setInterval方法則是表示間隔一定時間反復執(zhí)行某操作。
如果用setTimeout實現(xiàn)setInerval的功能,就需要在執(zhí)行的程序中再定時調(diào)用自己才行。如果要清除計數(shù)器需要 根據(jù)使用的方法不同,調(diào)用不同的清除方法:
例如:tttt=setTimeout('hello()',1000);
clearTimeout(tttt);
或者:
tttt=setInterval('hello()',1000);
clearInteval(tttt);
2,如何定時操作
比如要定時打開頁面 Test.asp(當然Test.asp可以是讀取數(shù)據(jù)庫,生成靜態(tài)頁面......)
<script language="JavaScript" type="text/javascript">
<!--
function hello(){
window.open('Http://www.baidu.com/Test.asp')
}
window.setTimeout(hello(),5000);
//-->
</script>
缺點:要在瀏覽器打開頁面,不能關(guān)閉。
三,ASP使用VB寫的定時組件
ASP中沒有setTimeout這類的定時語句,我們需要利用ASP組件來解決,同樣,可以采用VB6來編制,具體操作方法參考
上一編組件的做法,為了掛起線程,我們需要運用WIN32API函數(shù)Sleep,同樣新建一個Active Dll工程,起名字為Timer,
類名為sleep。
sleep這個WIN32API函數(shù)可以用VB6自帶的API文本瀏覽器中找到它的聲明方法
現(xiàn)在類sleep的程序如下,這個組件程序很簡單的,我不多解說了。
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private m_set As Long
Public Property Get setup() As Long
setup = m_set
End Property
Public Property Let setup(strset As Long)
m_set = strset
End Property
Public Function Sleeptime()
Sleep (setup)
End Function
把它編譯一下,就生成timer.dll這個組件dll,如果您不會寫VB程序,那么您也可以在下載的文件包里找到timer.dll
這個文件。把它copy到windows目錄下,在MS-DOS方式中輸入
c:\windows\regsvr32 timer.dll
完成組件注冊,同樣可以使用這個定時組件。
現(xiàn)在解說剛才按個列子的ASP調(diào)用文件??纯催@個組件如何使用
*定時器的應用
<html>
<title>定時器的應用</title>
<head>
</head>
<body>
<%
‘這個是腳本執(zhí)行時間,默認為90秒,需要改長一點,不然在90秒后程序會被中斷'3600為一小時
Server.ScriptTimeOut=3600
set obj=server.createobject("timer.sleep")
'參數(shù)1000為線程掛起一秒鐘,可以隨意設(shè)定
obj.setup=1000
do while true
obj.sleeptime
'執(zhí)行定時操作,
If Not Response.IsClientConnected Then
set obj=nothing
session.abandon
End If
loop
%>
</body>
</html>
優(yōu)點:在這里只是隨便用VB寫了一個測試的dll,但是用VB肯定可以在dll里面寫一個定時執(zhí)行的操作。
缺點:感覺VB寫的這個dll可能會優(yōu)點占資源。
四,結(jié)合電腦的任務(wù)計劃的定時操作,我個人認為是目前最好的方法。
這個個人感覺是目前實現(xiàn)定時操作的最好方法。
就是先在服務(wù)器上寫好要定時操作的頁面,如Test.asp
然后寫一個vbs文件,如下:
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
'運行你的 URL
ie.navigate("http://www.baidu.com/Test.asp")
ie.visible=1
'Clean up...
Set IE = Nothing
1,可以在服務(wù)器使用“任務(wù)計劃”
2,也可以在客戶機使用“任務(wù)計劃”
具體使用“任務(wù)計劃”的使用,請參考http://www.pclala.com/Pc/Skill/200851912807.Html
優(yōu)缺點:頁面會定時的彈出頁面Test.asp,但是會有一個解決方法,就是在Test.asp頁面加入定時關(guān)閉代碼:
<script LANGUAGE="JavaScript">
<!--
setTimeout('window.close();', 500);
// -->
</script>
總結(jié),由于目前部分網(wǎng)頁語言的限制,在定時操作上有一定的困難,但是經(jīng)過我多次的求證,發(fā)現(xiàn)第四種方法無疑是效果最好的,最省心的。