社区
Ajax
帖子详情
我用ASP和AJAX写了一个聊天室,但有个致命问题!
george910726
2009-05-23 01:33:15
加精
我的聊天室执行可以。发送可以,更新可以。照理说,测试过程中所有功能完善……
但是有个致命的弱点就是……
当聊天室里的人数>=2人时响应速度变得超慢……甚至有死掉的感觉……
谁能提供个一针见血的问题原因?
...全文
2350
119
打赏
收藏
我用ASP和AJAX写了一个聊天室,但有个致命问题!
我的聊天室执行可以。发送可以,更新可以。照理说,测试过程中所有功能完善…… 但是有个致命的弱点就是…… 当聊天室里的人数>=2人时响应速度变得超慢……甚至有死掉的感觉…… 谁能提供个一针见血的问题原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
119 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zouhaifeng2012
2010-09-02
打赏
举报
回复
关注。。
subendong
2010-07-16
打赏
举报
回复
[Quote=引用 7 楼 iruobb 的回复:]
首先不要把性能问题归罪于ASP,ASP是语言,性能是把握在你的手里
你在本地测试很顺,说明程序是正常的
服务器上面不顺,因为你忽略了网络因素,200毫秒,你太离谱了
[/Quote]
支持
你竟然设置为200毫秒,你太有诚意了,大哥。
如果你同时跟数据库也打交道,那我可以说:你的服务器肯定OVER。
ASP只是解释性的语言,再慢也慢不到哪儿去。
刀、剑、棍孰强孰弱?关键还是看使用的人。。。
方工
2010-01-29
打赏
举报
回复
没看到源代码,采用asp? 建议采用 HttpHandler, 写一个一般处理程序 .ashx,这样不用构建页面
hackstudio
2010-01-20
打赏
举报
回复
学习、、、
cuixiping
2009-12-20
打赏
举报
回复
没贴源码,这儿是白讨论
seamanhy
2009-06-02
打赏
举报
回复
学习到了,比较同意是线程和ajax发送时间间隔的问题。
nittynitty
2009-06-01
打赏
举报
回复
程序问题,响应速度也有问题,值太小了。
itian
2009-06-01
打赏
举报
回复
http://topic.csdn.net/u/20090601/11/aa9079f2-ba25-4984-bb74-97ed731a33c5.html
这个是我写的在线客服系统,里头有个专门给客服聊天的就是个聊天室
chinatzbcn
2009-06-01
打赏
举报
回复
ASP写聊天室的程序很多的,以前我也写过,但是不存在你的现象;
建议你从最初的ASP调试起;一点点把你的全部功能完善以排除问题;
如果刷新过快的话,建议你调整一下时间,然后在测试一下;
SY_ToG
2009-06-01
打赏
举报
回复
用你那方法每次0.2秒刷新到最后肯定会慢
华亭真人
2009-06-01
打赏
举报
回复
直接用C++写个组件得了
forplay
2009-06-01
打赏
举报
回复
楼主把怀疑出问题的代码copy过来大家看看咯
tony_dagoo
2009-06-01
打赏
举报
回复
er 聊天室满占资源的.
tianfang25
2009-06-01
打赏
举报
回复
回贴 拿分下载 资源去咯
Atai-Lu
2009-06-01
打赏
举报
回复
恩,数据库用完之后,没有及时关闭连接,如果单个人的时候,可能看不出来对程序有什么影响,
但是当使用的人越来越多的时候,及时关闭数据库连接与否的效果就有比较明显的区别了。
Atai-Lu
2009-06-01
打赏
举报
回复
小声的问下:能否把你的所有js部分的代码贴出来瞧瞧?
是不是你返回的聊天记录比较多?
或者是,显示的时候没有把上一次的记录清空,直接在后面拼接新的查询结果,导致拼接出来的字串过长?
就你所描述的问题,咋一看似乎就是客户端程序的问题,但想想,我还是觉得服务器端代码、客户端代码都有些问题。
因为单个人的时候很流畅,多人的时候才开始卡起来。而不管人多与否,客户端程序不可能会跑其它用户去运行。
那么,问题可能是:服务器端代码设计不够合理,每次查询聊天数据消耗的资源比较多,
甚至是可能你查询数据库之后没有及时关闭掉链接。
这样,当客户端请求越来越多的时候,服务器端显然就反应不过来,响应时间开始变慢。
然后客户端的ajax程序访问服务器端的时候,等待服务器端响应的时间也会越来越长,
但是呢,客户端的ajax又再不停不断的发送请求,而前面的请求尚未响应完毕,ajax程序开始陷入繁忙状态,最终导致了你说的这种情况。
解决方法:
优化服务器端代码提高查询速度就不必说了。
客户端代码最好尽可能的避免当上一次请求还未响应完毕的时候,就开始再次发送请求。
方法如下:
定义一个全局变量
var isActive=false;
...
if(!isActive){
isActive=true;
//执行ajax代码
...
if(xmlHttp.readyState==4){
//响应完毕
isActive=false;
}
...
}
...
我看你有戏
2009-05-31
打赏
举报
回复
聊天数据不要直接写数据库
先放内存里
放application中
marsara
2009-05-31
打赏
举报
回复
[Quote=引用 13 楼 george910726 的回复:]
我现在改成了两秒一次,但是人一多还慢,我对着360看了一下浏览器的占内存量,以平均每秒0.25M的速度增长。怀疑真是内存泄漏。有会的联系我:547084615
[/Quote]
每秒0.25M呵,吃内存吃得够厉害呵,不知道和服务器本身有没有关系呢?
歪歪
2009-05-31
打赏
举报
回复
晕的,还是在说时间的问题。
<script language="javascript" type="text/javascript">
var step = 1; //毫秒 1000毫秒=1秒
var over = false; //状态标识
setInterval(function(){
if(over == false) return; //状态监测
/*
-------实际ajax处理的代码块-------
*/
},step);
</script>
自己copy去式下看。。。。
mimimao_47
2009-05-31
打赏
举报
回复
0.2?
加载更多回复(92)
ASP
.NET 第八季
ajax
技术
主讲内容: 第一讲
asp
.net
ajax
简介 第二讲 ScriptManager脚本管理控件 第三讲 ScriptManager脚本管理控件 (2) 第四讲 UpdatePanel局部更新控件 第五讲 Timer定时器控件实例
【艾琪出品】《计算机应用基础》【试题汇总2】
自备留用 《Java语言程序设计》20春期末考核 1. 接口体中不应包含( )。...C 在Java中
一个
类不能同时继承
一个
类和实现
一个
接口 D 在Java中接口只允许单一继承 4. 编译并且执行以下代码,会出现什么情况...
梦成真——
一个
普通学校计算机系学生的出国梦
2月24 号,周四,正如看手相那个人跟我说的...至此,我才有勇气去为这一路
写
一个
总结,向自己微笑。。为了这一天,我付出了太多太多。这一路上,帮助过我的人太多太多。关于过去这四年。。。有很多很多话想说。。。。。
软件开发 项目进展 软件架构 指南
这其实是
一个
很大的
问题
,我从事软件开发这么多年,仍然未见到国内有任何一家公司真正做到,这个
问题
也是我一直到思考的。一直以来我也尝试推行这种模式,但是仍然未见起色,从中我不仅学习到一些经验,但是也深知...
php面试题汇总
2、当集群中的某
一个
节点故障时,redis还可以继续处理客户端的请求。 2、集群的方案: redis-cluster集群,采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,主要通过节点的配置,辅以...
Ajax
52,797
社区成员
25,305
社区内容
发帖
与我相关
我的任务
Ajax
Web 开发 Ajax
复制链接
扫一扫
分享
社区描述
Web 开发 Ajax
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章