100分,聊天室中那个不断滚动的发言信息叶面是动态网页吗,怎么就会这么不停的滚呢,原理? 聊天室是动态页面,而且是真正意义上的动态页面,它是用asp,jsp,php等动态语言写的,和一般意义上说的javascript的“动态”是两回事,前者是服务器端的“动”,是页面代码的“动”,后者只是客户端的“动” 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用隐含帧的jsp文件不断刷新,读取新的聊天信息,再用document.write向显示帧的htm文件实现无闪烁写屏至于滚动,一般是每次写屏后让该页面滚动到最底,以察看最新信息,可以用个checkbox来控制是否自动滚(滚得太快晃眼) 你可以下几个看看嘛 地址:www.aspcool.com 用frameset或iframe,一个frame用于接受服务器的信息,然后写到另一个frame中,每写一次就执行一个脚本来判断滚动条。 <div id=m></div><textarea id=h></textarea><input onclick='m.innerHTML+=h.value;window.scrollTo(1,100000000)' value="你可以滚的" type=button> to seabell(百合心): 我觉得你说的有道理,可以用隐含帧的jsp文件不断刷新,读取新的聊天信息,再用document.write向显示帧的htm文件实现无闪烁写屏好像每个句子多是一个技术难点,我多不会,呵呵,来说一下,请教了 晕,这样太累了像sina,163的聊天室,都是真正的push技术,根本不需要刷新的 to,fantiyu 如何用推技术,说一下好吗,我资料一点多没。 我想如果靠刷新网页,然后叫它重新请求好象效率太低了。 sorry这两天很忙,没来给你看个简单例子吧,无闪烁写屏的不过只是本机静态的而已,实际做时,send是提交到一个jsp文件,该文件把聊天信息写入Vector对象数组,同时一个隐含的jsp文件不断刷新读取Vector中的新信息,往show中写<frameset name=myfrmset rows="80%,*,0"><frame name=show src=show.htm><frame name=send src=chat.htm></frameset>chat.htm<body onload=document.all.message.focus()><form onsubmit="parent.show.document.write(document.all.message.value+'<br>')"><input name=message><input type=button value=send onclick="parent.show.document.write(document.all.message.value+'<br>');document.all.message.value='';document.all.message.focus()"><input type=button onclick="parent.show.document.close();parent.show.document.write('');document.all.message.focus()" name="clearScreen" value="clear"></form> 我的理解:"推"技術是指:server告知client,你該更新數據了而不是client去問server,是不是要更新數據。有人在這方面有研究嗎?交流一下 我的理解:"推"技術是指:server告知client,你該更新數據了而不是client去問server,是不是要更新數據。有人在這方面有研究嗎?交流一下 用ASP无法实现"推"吧因为网页下载完成后就完成链接了呀!想要实现推,只有用 client/server技术而不能用browser/server吧 “server告知client,你該更新數據了”:http 协议可能实现这一点吗?http是基于请求应答的形式的,有可能一个服务器能在没有请求的情况下访问客户端吗?愿闻其详!使用XmlDocument 应该也可以做到非常快的刷新效果吧。 这个用脚本语言没办法做,只能在服务器端做偶就做了一个这样的聊天室,不是Server告知Client该更新,而是这个网页一直处于没完全打开状态,Server有数据就输出一点,网络始终没断开 ASP的方法是:<%@Language=JScript%><!-- #include file="chatlib.asp" --><%PreSendChatHeader();var mc=new ActiveXObject("MyComponent.Uilities");while(Response.IsClientConnected){ SendChatMessages(); Response.Flush(); Server.ScriptTimeout+=10; mc.Sleep(5000);}%>但是可惜,ASP中,同Session的请求会排队的。所以,这个页面不停止,其他ASP页面没有办法运行。ASP。NET没有这个问题。 不过说归说。用push是很差的做法。IE只允许同一域下同时最多只有两条下载进程。 to Lostinet(迷失网络)宝贵得提示,十分感谢。PS:好像在这方面Java的解决方案好得多能谈谈JMS? to fantiyu我们想到一块儿了。 那么如果一个连接正在请求,需要5分钟,这时又进来10个请求,那么他们会被并行处理吗? 我的服务动态网页就是针对每个请求生成相应数据的。如果能并行,那么聊天客户共享这个页面是可以的,性能过得去,如果服务段不能多线程并行,那么服务器端就的有多少聊天客户就相应准备多少张动态页面 就是这样啦,永远无法完毕的动态网页服务器端用普通的asp,php之类的脚本语言没法做的 http://www.google.com/search?num=100&hl=zh-CN&inlang=zh-CN&ie=GB2312&newwindow=1&q=%C1%C4%CC%EC%CA%D2+%CD%C6%BC%BC%CA%F5&btnG=Google%CB%D1%CB%F7&lr= 使用 Jquery 解析Web Service XML 文件,求高手指点!!! 添加checkbox 排它问题? js读取xml html分页显示 怎么学JavaScript 初学,问问运行完函数后页面完为什么会自动刷新。 ▲ 向大家问好了!发发牢骚,顺便请教个操作系统方面的问题。 急问:如何打开一个无边框的窗口?要在ie6下有效的。 look look study study 谁能把这个转换成JScript????? javascript怎樣才能將string 變成int? 请问学javascript有什么好的方法或好书? 怎样打印Frame中的内容,很急!
至于滚动,一般是每次写屏后让该页面滚动到最底,以察看最新信息,可以用个checkbox来控制是否自动滚(滚得太快晃眼)
<textarea id=h></textarea>
<input onclick='m.innerHTML+=h.value;window.scrollTo(1,100000000)' value="你可以滚的" type=button>
我觉得你说的有道理,
可以用隐含帧的jsp文件不断刷新,读取新的聊天信息,再用document.write向显示帧的htm文件实现无闪烁写屏
好像每个句子多是一个技术难点,我多不会,呵呵,来说一下,请教了
像sina,163的聊天室,都是真正的push技术,根本不需要刷新的
如何用推技术,说一下好吗,我资料一点多没。
我想如果靠刷新网页,然后叫它重新请求好象效率太低了。
给你看个简单例子吧,无闪烁写屏的
不过只是本机静态的而已,实际做时,send是提交到一个jsp文件,该文件把聊天信息写入Vector对象数组,同时一个隐含的jsp文件不断刷新读取Vector中的新信息,往show中写
<frameset name=myfrmset rows="80%,*,0">
<frame name=show src=show.htm>
<frame name=send src=chat.htm>
</frameset>chat.htm
<body onload=document.all.message.focus()>
<form onsubmit="parent.show.document.write(document.all.message.value+'<br>')">
<input name=message>
<input type=button value=send onclick="parent.show.document.write(document.all.message.value+'<br>');document.all.message.value='';document.all.message.focus()">
<input type=button onclick="parent.show.document.close();parent.show.document.write('');document.all.message.focus()" name="clearScreen" value="clear">
</form>
"推"技術是指:server告知client,你該更新數據了而不是client去問server,是不是要更新數據。有人在這方面有研究嗎?交流一下
"推"技術是指:server告知client,你該更新數據了而不是client去問server,是不是要更新數據。有人在這方面有研究嗎?交流一下
使用XmlDocument 应该也可以做到非常快的刷新效果吧。
偶就做了一个这样的聊天室,不是Server告知Client该更新,而是这个网页一直处于没完全打开状态,Server有数据就输出一点,网络始终没断开
<%@Language=JScript%>
<!-- #include file="chatlib.asp" -->
<%PreSendChatHeader();
var mc=new ActiveXObject("MyComponent.Uilities");while(Response.IsClientConnected)
{
SendChatMessages();
Response.Flush();
Server.ScriptTimeout+=10;
mc.Sleep(5000);
}%>
但是可惜,ASP中,同Session的请求会排队的。
所以,这个页面不停止,其他ASP页面没有办法运行。ASP。NET没有这个问题。
IE只允许同一域下同时最多只有两条下载进程。
能谈谈JMS?
那么如果一个连接正在请求,需要5分钟,这时又进来10个请求,
那么他们会被并行处理吗?
我的服务动态网页就是针对每个请求生成相应数据的。如果能并行,
那么聊天客户共享这个页面是可以的,性能过得去,如果服务段不能
多线程并行,那么服务器端就的有多少聊天客户就相应准备多少张动态
页面
服务器端用普通的asp,php之类的脚本语言没法做的