+ -
当前位置:首页 → 问答吧 → 实现服务器“推”技术时 Jquery 与 Session的问题

实现服务器“推”技术时 Jquery 与 Session的问题

时间:2009-07-31

来源:互联网

如题,在一个项目中我需要模拟服务器“推”技术,具体实现是用jq中的ajax  + 服务端阻塞实现的。

下面具体讲程序构成:
页面default.aspx :在该页面中,有两个ajax方法,GetMsg()用于从服务器获取数据,SendMsg()用于向服务器提交数据。
其中GetMsg()是一个不停自我调用的方法。

问题的集中表现:

如果在default.aspx.cs 中含有Session["XXX"]的时候,调用SendMsg()后,需要很长时间(从几秒到几十秒不等)才会提交成功;如果将Session["XXX"]去掉或者换成ViewState["XXX"],调用SendMsg()后提交速度很快,瞬间完成。

请问,这个问题的根本原因在哪,怎么解决,请大家支招。

作者: wangjtapp   发布时间: 2009-07-31

页面default.aspx :在该页面中,有两个ajax方法,GetMsg()用于从服务器获取数据,SendMsg()用于向服务器提交数据。
其中GetMsg()是一个不停自我调用的方法。

这根本不是服务器推啊,方法和效果都不是

作者: keakon   发布时间: 2009-07-31

“推”技术的关键在服务端,如果有符合条件的结果则处理完请求后立马反馈数据结果,如果没有符合条件的数据怎服务端陷入一个等待状态,等有符合条件的数据后才反馈,直至超时。

作者: wangjtapp   发布时间: 2009-07-31

客户端是不会超时的,至少几个小时内都不会超时

服务器推的关键是客户端不去获取服务器端的数据,而是服务器端主动向客户端输出数据。好处就是客户端不需要做无用的轮询,节省了流量和带宽。

你的做法只是单纯的AJAX,而且没有任何PUSH的优点,只有阻塞这个缺点。

作者: keakon   发布时间: 2009-07-31

服务器推技术,请参考HTTP长连接

作者: jquerysz   发布时间: 2009-08-02

引用
引用第3楼keakon于2009-07-31 14:54发表的  :
客户端是不会超时的,至少几个小时内都不会超时

服务器推的关键是客户端不去获取服务器端的数据,而是服务器端主动向客户端输出数据。好处就是客户端不需要做无用的轮询,节省了流量和带宽。

你的做法只是单纯的AJAX,而且没有任何PUSH的优点,只有阻塞这个缺点。



谢谢指点,我这个也是试验项目,所以思路不是很清晰,可否深入的指点下?

作者: wangjtapp   发布时间: 2009-08-03

最初我是研究eurasia来了解服务器推的:
http://www.keakon.cn/bbs/thread-1044-1-1.html

详细情况你可以看看这个项目,虽然是Python的,不过有助于了解原理:
http://code.google.com/p/eurasia/

有不懂的可以去这个论坛问问,版主很了解这个技术,你可以直接和他交流:
http://groups.google.com/group/eurasia-users

作者: keakon   发布时间: 2009-08-03

相关阅读 更多