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