川口士:高分--如何让代码间隔一秒后执行

来源:百度文库 编辑:高校问答 时间:2024/05/09 15:37:03
我有一个ASP采集代码,现在没有时间限制,经常发生太占CPU资源的问题,现在需要一段代码,让它每隔一秒采集一条信息,或者每采集10秒暂停1秒再采集也可以,请大家给一段详细的限制时间的代码,谢谢。请代码尽量详细一点,我好把它加入到我的采集代码中。

我想你的ASP代码会占太高CPU不是说每秒运行一次就可以了,因该是代码格式或代码出错。并不是说的占CPU问题

要不然就是占的CPU太多的意思我不太懂。是不是占40-50左右?还是80以上?还是99?

Rs.open "Select * From [User]"
Fro i=0 To Rs.Recordcount - 1 Step 0
Response.write(Rs(i))
Response.write(Rs(i).value)
Next

这样使用数据库之类的代码吗??
上面这段就会经常占CPU很高。因为是死循环
不会退出循环的。再加上有些程序开头加了
On Error Resume Next
所以造成死循环的程度比较大。代码改成

Rs.open "Select * From [User]"
Fro i=0 To Rs.Recordcount - 1 Step 0
If Rs.Eof Then
Exit For
End If
Response.write(Rs(i))
Response.write(Rs(i).value)
i=i+1
Rs.MoveNext
Next

就会解决上面的问题。~

setTimeOut(funname,100)

ASP不支持 推 技术,但仍能实现延时,代码如下
<%Sub delaySec(DelaySeconds)
SecCount = 0
Sec2 = 0
While SecCount < DelaySeconds + 1
Sec1 = Second(Time())
If Sec1 <> Sec2 Then
Sec2 = Second(Time())
SecCount = SecCount + 1
End If
Wend
End Sub
delaySec(1)%>
delaySec后括号里的值为延时秒数
但并不建议使用这种方法,使用此代码只会让你得不偿失,此代码的原理中不断判断时间,相当于一个死循环,与你的初衷相背。前面就说了,ASP里根本就没有真正的推技术
真正要实现推技术,你不能使用IIS,只有使用netbox服务器软件,这是一个国产软件,能兼容现在的ASP程序,还支持推技术,要使用此软件先必需停止IIS,然后运行此程序。netbox的readme中有推技术的用法

不懂什么意思,晕死,我是不是过时了。
不过楼上有位兄弟说setTimeOut(funname,100)这个办法。如果我的理解没错的话,这个应该可以,当然还要加一些。
用一个session,单数次打开(就是说刷新一次以后)时,不执行,在第二次刷新时,再执行。别忘了在每次操作时,修改session值,让下次能进行不同的操作。不知道你明不明白。呵呵。
顺便问下,ASP采集代码是什么意思啊?

window Form 的可以

Application.Sleep(1000);

asp.net的就不清楚了。

Response.write(Rs(i).value)
Next

这样使用数据库之类的代码吗??
上面这段就会经常占CPU很高。因为是死循环
不会退出循环的。再加上有些程序开头加了
On Error Resume Next
所以造成死循环的程度比较大。代码改成

Rs.open "Select * From [User]"
Fro i=0 To Rs.Recordcount - 1 Step 0
If Rs.Eof Then
Exit For
End If
Response.write(Rs(i))
Response.write(Rs(i).value)
i=i+1