您的位置:程序门 -> java -> web 开发



(web开发)大家来讨论客户端session问题,我有一些灵感了


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


(web开发)大家来讨论客户端session问题,我有一些灵感了[已结贴,结贴人:qichunren]
发表于:2007-06-11 18:04:28 楼主
一直都说session在web中不好控制,基于   http协议的,是无状态的,当客户端向服务器发送了一个请求后,服务器会马上建立一个新的tcp/ip连接,在该会话结束语后,如页面完全载入后,这个连接就关闭了。所以服务器端无法知道访客是什么时候走的。这是一个很大的问题,它不同于以往的c/s构架的系统:服务器端和客户端的连接会话是时时存在的。
http协议的这个无状态特点会对我们在开发web系统时给我们带来很多的问题。

如:精确统计网站当前在线人数,精确统计某一个客户在线时间及离开时间,web聊天系统的在线名单,
还有,在一个web系统中如果要求客户必须通过 "注销系统 "来退出登录,以便于服务器端对此用户做一些信息保存或其它处理之类   的,可是并不是每一个用户都是那么听话的,他们也许就直接通过占击网页上的关闭按钮或alt+f4,这样服务器就不能做我刚才说的那些工作了。。

我一直在想,http的session在这种特点多不爽啊,哎。真的好想找到一个解决的办法。

最近在看ajax,前些天又在看javascript,看到了网页中一个“网页关闭”事件,如
<body   onunload= "exit() "> 网页内容 </body> ,我看到有这样的一个事件,心里面好激动啊,我又在想,那在客户端的javascript中可不可以调用服务器上的代码呢?
我突然就想到了ajax,可以通过ajax来调用服务器上的文件!!!

哈哈,那这样是不是就可以解决了我上面所提出的基于http的session的无状态所产生的一系列的问题呢?

我觉得问题不是我想的这么简单。

我想在网页关闭时,通过ajax来调用服务器上的处理方法时,这之间总得有一个时间间隔吧。客户端会不会卡或者什么呢,具体的会出现什么情况,我也不知道。因为我还没去试过。

以上就是我想到了,写的有些乱。

我想大家来一起讨论一下在java   web开发的如果对待sessoin问题,以及我在上面所说的这种思路。


发表于:2007-06-11 18:14:571楼 得分:0
我自己来顶一下
发表于:2007-06-11 18:26:232楼 得分:0
session有默认的刷新时间,一般为20秒
发表于:2007-06-12 13:32:473楼 得分:0
zelision,不是这样吧/     它是默认在用户30分钟后没有任何动作就失效
发表于:2007-06-12 14:08:144楼 得分:7
默认时间是可以改变的,   就在session销毁后,保存用户信息(如果用户已经登陆了)
发表于:2007-06-12 14:15:175楼 得分:7
可以用javascript来监听窗口关闭,     然后提交一个表单给服务器,   这样就可以运行服务器端程序了
发表于:2007-06-12 16:24:586楼 得分:2
用onunload做能够解决一部分问题,很多人讨论过了。


像网络中断、关机、断电、等等,还是需要session监听,大概模拟用户在线情况。
发表于:2007-06-12 17:07:007楼 得分:1
在页面刷新时,也会触发onunload的
发表于:2007-06-13 09:44:238楼 得分:0
ycoolb(神经病):可以用javascript来监听窗口关闭,     然后提交一个表单给服务器,   这样就可以运行服务器端程序了
__________________________________________
好方法

9441(不知道):在页面刷新时,也会触发onunload的
_________________________________________
哦,刷新也会触发onunload事件?
发表于:2007-06-13 10:35:449楼 得分:1
session有个timeout时间的,设置一下就可以了。
就可以销毁会话。
发表于:2007-06-13 10:49:1710楼 得分:0
关键是http是无状态的啊
发表于:2007-06-13 10:53:4711楼 得分:1
刷新也会触发onunload事件,是这样的。
发表于:2007-06-13 11:50:1712楼 得分:0
感觉session是不好控制,学习学习!
发表于:2007-06-13 12:35:0113楼 得分:0
大家说,我在上面所说的方法好不好啊,你们还有没有更好的方法来精确控制session呢?
发表于:2007-06-15 13:05:3014楼 得分:0
再d
发表于:2007-07-19 13:24:0415楼 得分:0
再d
发表于:2007-07-19 13:29:4816楼 得分:1
页面跳转\刷新\关闭都会触发onunload时间.
实际上,有必要那么精确的统计在线人数吗?我觉得这个需求本身就没有任何意义.如果非要的话,在每一个页面里面嵌入一段脚本,每隔x秒就用异步请求向服务器提交一个标记,表明 "我还活着 ",但是这样换来的服务器负载也是不值得的.
发表于:2007-07-19 13:33:1017楼 得分:0
我觉得:在关闭网页的前触发一些事件,这样的思路应该是很不错的。至于怎么实现,还有待深入研究啊。
发表于:2007-07-25 16:26:3418楼 得分:0
session的注销时间是可以改变的啊
如果把时间改了
那么所有的操作都应该是可以实现的
发表于:2007-07-25 16:43:1219楼 得分:0
页面跳转\刷新\关闭都会触发onunload时间.
实际上,有必要那么精确的统计在线人数吗?我觉得这个需求本身就没有任何意义.如果非要的话,在每一个页面里面嵌入一段脚本,每隔x秒就用异步请求向服务器提交一个标记,表明 "我还活着 ",但是这样换来的服务器负载也是不值得的.
 
-------------------------------------------------

那也不是及时的啊,那也有延迟   x   秒哦
发表于:2007-10-03 08:52:5620楼 得分:0
但是有时候要精确控制session啊


快速检索

最新资讯
热门点击