您的位置:首页精文荟萃软件资讯 → 实现 asp 的服务器无刷新推技术

实现 asp 的服务器无刷新推技术

时间:2004/10/7 19:16:00来源:本站整理作者:蓝点我要评论(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 "我晕...
"
'================================
Response.Flush
ASPpush.wait 100 '后面的数字以毫秒为单位(1000毫秒=1秒),指定推送的速度
Loop
set ASPpush=nothing
%>


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

----------
附注:

批量文件播种机最新版:网站程序制作必备工具
http://jh.1he.net/yes/down/list.asp?id=106

前些天写了一个小软件:模拟精灵,虽然很简单,不过很实用,也很好玩
也是必备的桌面工具,推荐下载:

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本