| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1672 人关注过本帖
标题:延时问题
只看楼主 加入收藏
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
结帖率:100%
收藏
 问题点数:0 回复次数:10 
延时问题
ss=second(time)
do
ss2=second(time)
if ss>ss2 then ss2=ss2+60
if ss2-ss>4 then exit do
loop
我的程序中有上传解压缩过程
因为shell了winrar
而程序在shell完了后就直接进入下一步运行,而我下一步程序中需要使用到这个解压出来的东东,而解压的东东还在解的过程中,所以我使用了上述程序用以延时(延时为4秒).
不知道各位有没有更好的延时程序?
搜索更多相关主题的帖子: 延时 shell second 东东 
2007-03-05 19:01
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
原因是我发现这4秒钟内CPU为100%
感觉winrar不会达到100%的.
所以一定是这个程序的关系.

2007-03-05 19:06
麻花疼
Rank: 2
等 级:论坛游民
帖 子:167
专家分:36
注 册:2005-12-10
收藏
得分:0 
用ASP在服务器端延时只能用循环(一段时间内的死循环
可以用结合客户端的方式,这是这样控制的时间不准,延时的时长收客户端带宽速度的影响很大。
不过好像对服务器端的程序起不到延时效果

QQ:10000
2007-03-05 19:59
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
那么谁知道远程时间长,又尽量少占用CPU的语句吗?
我把那个语句放到循环中总会好一点的吧?

2007-03-05 20:48
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
对了,好象
vbscript
可以runat server
它有一个
settimeout 函数的
可vnscript用得少,特别是runat server更是用得少.
不习惯用啊.
特别要在那里面操作数据库.

2007-03-05 20:53
cdwyj
Rank: 1
等 级:新手上路
威 望:1
帖 子:127
专家分:0
注 册:2007-2-21
收藏
得分:0 
可否把程序分成两份……
4秒后启动下一段程序?

2007-03-05 22:01
cdwyj
Rank: 1
等 级:新手上路
威 望:1
帖 子:127
专家分:0
注 册:2007-2-21
收藏
得分:0 

转了个帖……

关于推送技术
-----------------------------
转载请注明出处:一鹤.NET_WWW.1HE.NET

Client PULL(客户端拉技术)
通常,聊天室通过不断刷新来显示服务器的最新信息,即所谓的Client PULL(客户端拉技术)Client PULL必须不停的建立连接,刷新信息,断开连接,这样效率很低,而且速度很慢.(如果加快速度,频繁的建立断开连接刷新页面都会增加服务器与客户端的资源消耗)

Server Push(服务器推技术)
推技术就是建立一个连接以后,由服务器主动的把最新信息源源不断的推送到客户端
不需要不停的建立断开连接,不需要刷新页面,相比之下,推技术效率更好速度最快

但是很可惜,一直以来,ASP都不能实现erver Push技术

曾经看过微软网站提供的ASP推送技术方案,用死循环达到服务器的延时实现Server Push技术,这种代码只要一个客户端执行,CPU占用立即达到百分之百,最重要的是受到ASP线程限制,打开这个页面,其他的ASP页都必须排队等待这个页面执行完毕。

实现 asp 的服务器无刷新推技术
-----------------------------
转载请注明出处:一鹤.NET_WWW.1HE.NET

首先我用C++写了一个ASPpush.DLL,通过ASP代码的配合达到零负载的延时效果
下载ASPpush.DLL:http://www.1he.net/ASPpush/ASPpush.exe

使用ASP指令EnableSessionState=False突破ASP的线程限制
(这就是最关键的地方了,其实ASP本身是多线程的之所以你在ASP中只能得到单线程其原因是ASP对每一个会话产生一个线程,如果在ASP页面前用上EnableSessionState=False指令,就可以得到一个独立的线程与TCP连接用来源源不断的向客户端推送新的信息)

使用ASP的Response.IsClientConnected属性判断连接及时回收资源

使用以上方法,我制作了一个聊天室,
经过测试,一百人在线聊天,系统的全部CPU占用不超过百分之五(Windows 2003),
无论在内存占用还是CPU占用都没有超过使用客户端刷新的聊天室

实际上,使用客户端刷新的方法,仍然是一个对服务器持续的资源占用,而且必须频繁的建立连接断开连接,对于聊天室来说,客户端刷新的聊天室的资源占用是没有任何优势的,而且速度非常慢


准备工作
-----------------------------
转载请注明出处:一鹤.NET_WWW.1HE.NET

下载ASPpush.DLL:http://www.1he.net/ASPpush/ASPpush.exe

解压缩后首先请运行:Com.reg(这个文件会在右键菜单中添加注册COM组件的子菜单)

将ASPpush.dll 拷贝到系统目录
windows2000 $:/winnt/system32
windows2003 $:/windows/system32

右键点击system32/ASPpush.dll
点击右键菜单中出现的“注册DLL”
(当然你可以在命令行中注册:Regsvr32 $:/windows/system32/ASPpush.dll)

注意:$: 更换为系统盘


示例代码
-----------------------------
转载请注明出处:一鹤.NET_WWW.1HE.NET

下面是使用ASPpush.DLL实现服务器推送的示例代码:

<%@ Language="VBScript" codepage ="936" EnableSessionState=False %>
<%
Response.Buffer = True

set ASPpush = Server.CreateObject("ASPpush.page")
Do While Response.IsClientConnected
'================================
'在这里修改或自定义要执行的ASP代码
Response.Write "我晕...<br/>"
'================================
Response.Flush
ASPpush.wait 100 '后面的数字以毫秒为单位(1000毫秒=1秒),指定推送的速度
Loop
set ASPpush=nothing
%>


本文主要介绍推技术在ASP中实现的原理,至于具体的实现可能还需要您自已发挥了


2007-03-05 22:05
cdwyj
Rank: 1
等 级:新手上路
威 望:1
帖 子:127
专家分:0
注 册:2007-2-21
收藏
得分:0 
另一个转帖




ASP不用循环进行延时的最简单方法,需SQL2000支持2006-07-14 20:14<!--#include file="conn/conn.jsp"-->
<html>
<body>
<%
waittime="waitfor delay '00:00:01'" '在sql服务器端延时1秒,这是关键
for i=1 to 1000
if i mod 100=0 then
Response.Write "正在处理第"&i&"条记录<br>"
Response.Flush
conn.execute(waittime)
end if
next
%>
</body>
</html>

2007-03-05 22:10
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
6楼到是个思路,7\8楼的,与我的问题相去甚远
根据6楼的思路,我把页面分成二个,第一个页只显示正在上传,然后把文件上传完成,并解压缩,4秒后再跳转第二个页面,进行上传后的数据处理.
不过7/8数的东东到是一个全新的思路,为以后写一些即时的东东多一个写的思路.
先收藏了.

2007-03-06 08:08
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
不知道这个方法与AJAX那一个更好.
AJAX可以由客户端发出指令,服务器端只发送客户端需要的内容,在客户端用JS实现无刷屏显示新内容.
感觉只是AJAX多了一个发送的请求.

2007-03-06 08:18
快速回复:延时问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036848 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved