一般来说,使用asp来做聊天程序只能通过定时刷新服务端的方法来与其他用户交互,能不能象socket一样让客户端与服务器保持长连接,由服务端向浏览器推数据呢?下面的代码使用xmlhttp对象的同步获取方法作为进程暂停的手段,然后用无限循环来保持长连接。使用时把该页放入iframe中,根据情况向客户端吐js语句就行了。经过测试,该方法对服务端的cpu占用率影响很小,具有实用价值。
<%@language=javascript%><% Server.ScriptTimeOut=99999 var xh,dv xh=Server.createObject("Microsoft.XMLHTTP") while(1){ Response.write((new Date())+"<br>") Response.flush() dv=new Date().valueOf() while(new Date().valueOf()-dv<1000){ xh.open("GET","http://www.google.com/",false) xh.send() } if(!Response.IsClientConnected){ Session.abandon() break } } %> |
posted on 2006-04-17 10:55
汪杰 阅读(413)
评论(0) 编辑 收藏 引用 所属分类:
asp(javascrpt)