请问如何判断页面刷新还是关闭浏览器,主要是处理浏览器异常关闭

Java_er 2014-03-28 10:18:42
请问如何判断页面刷新还是关闭浏览器,主要是处理浏览器异常关闭


1.我尝试用onbeforeunload方法
发现不管用,我咋搞个超链接,点击的时候也触发了obbeforeunload事件呢

2、怎么判断浏览器是刷新还是关闭呢


其实我主要是想做关于浏览器异常退出、直接关闭,断电等情况的处理,
就是当这些情况发生之后,我能执行退出系统,销毁session的操作,谢谢。
...全文
1156 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2014-05-12
  • 打赏
  • 举报
回复
引用 楼主 Javainging 的回复:
请问如何判断页面刷新还是关闭浏览器,主要是处理浏览器异常关闭 1.我尝试用onbeforeunload方法 发现不管用,我咋搞个超链接,点击的时候也触发了obbeforeunload事件呢 2、怎么判断浏览器是刷新还是关闭呢 其实我主要是想做关于浏览器异常退出、直接关闭,断电等情况的处理, 就是当这些情况发生之后,我能执行退出系统,销毁session的操作,谢谢。
session的生存期 不能在前端主导 因为前端是不可靠的 前端可以通告 说我结束了 删除session 但是后台还是要 认为前端会不告而别 所以还是会定义 timeout 超过时间删除
Go 旅城通票 2014-05-12
  • 打赏
  • 举报
回复
或仔细看10#,我说的是session对应的cookie id被注销,不是服务器端的session自动注销,服务器端要等有效期过了才会自动注销
Go 旅城通票 2014-05-12
  • 打赏
  • 举报
回复
引用 14 楼 Javainging 的回复:
[quote=引用 13 楼 showbo 的回复:] [quote=引用 12 楼 Javainging 的回复:] [quote=引用 11 楼 showbo 的回复:] 我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。[/quote] 那cookie验证 有80%的可能,session的话又可能你代码加了ip相同判断什么的,自己看代码 session验证的话不可能正常关闭后一样的。。因为session对应的客户端cookie会不一样 我登录的时候是用的session,并没有显示的设置cookie啊,,你的动态技术会自动生成一个httpreadonly的cookie,已经告诉过你了,自己去了解这方面的知识[/quote] 版主大人可以看看这篇文章 http://crud0906.iteye.com/blog/575661 关闭浏览器,session会自动过期 这是大错特错的。[/quote] ⊙﹏⊙b汗。。。我没说关闭浏览器session自动销毁好不。。我是说session过期后服务器会自动销毁。。,请仔细看5#
引用 5 楼 showbo 的回复:
无解。。。session过期服务器会自动销毁的 异常关闭firefox之类会保存你相关信息,不用你特别写代码
关闭浏览器后session对应的cookie会话id不一样了。。都说要自己看下session和cookie的关系了
龙飞tgbmlp 2014-05-11
  • 打赏
  • 举报
回复
session是在服务器端存储的,可以设置session超时时间,当超过一定时间后,session会被服务器清除的。 浏览器关闭后,session是存活一段时间,在到达超期时间后,session会被清除,不会一直在服务器端存储的。
Java_er 2014-05-11
  • 打赏
  • 举报
回复
引用 13 楼 showbo 的回复:
[quote=引用 12 楼 Javainging 的回复:] [quote=引用 11 楼 showbo 的回复:] 我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。[/quote] 那cookie验证 有80%的可能,session的话又可能你代码加了ip相同判断什么的,自己看代码 session验证的话不可能正常关闭后一样的。。因为session对应的客户端cookie会不一样 我登录的时候是用的session,并没有显示的设置cookie啊,,你的动态技术会自动生成一个httpreadonly的cookie,已经告诉过你了,自己去了解这方面的知识[/quote] http://sishuok.com/forum/blogPost/list/3403.html
Java_er 2014-05-11
  • 打赏
  • 举报
回复
引用 13 楼 showbo 的回复:
[quote=引用 12 楼 Javainging 的回复:] [quote=引用 11 楼 showbo 的回复:] 我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。[/quote] 那cookie验证 有80%的可能,session的话又可能你代码加了ip相同判断什么的,自己看代码 session验证的话不可能正常关闭后一样的。。因为session对应的客户端cookie会不一样 我登录的时候是用的session,并没有显示的设置cookie啊,,你的动态技术会自动生成一个httpreadonly的cookie,已经告诉过你了,自己去了解这方面的知识[/quote] 版主大人可以看看这篇文章 http://crud0906.iteye.com/blog/575661 关闭浏览器,session会自动过期 这是大错特错的。
cde32 2014-05-11
  • 打赏
  • 举报
回复
引用 12 楼 Javainging 的回复:
[quote=引用 11 楼 showbo 的回复:] 我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。[/quote]感觉你这样即使做出来了,对浏览器的兼容也很差!
Java_er 2014-05-11
  • 打赏
  • 举报
回复
引用 16 楼 tgbmlp 的回复:
session是在服务器端存储的,可以设置session超时时间,当超过一定时间后,session会被服务器清除的。 浏览器关闭后,session是存活一段时间,在到达超期时间后,session会被清除,不会一直在服务器端存储的。
..................
Go 旅城通票 2014-05-09
  • 打赏
  • 举报
回复
引用 12 楼 Javainging 的回复:
[quote=引用 11 楼 showbo 的回复:] 我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。[/quote] 那cookie验证 有80%的可能,session的话又可能你代码加了ip相同判断什么的,自己看代码 session验证的话不可能正常关闭后一样的。。因为session对应的客户端cookie会不一样 我登录的时候是用的session,并没有显示的设置cookie啊,,你的动态技术会自动生成一个httpreadonly的cookie,已经告诉过你了,自己去了解这方面的知识
Go 旅城通票 2014-05-08
  • 打赏
  • 举报
回复
我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
Go 旅城通票 2014-05-08
  • 打赏
  • 举报
回复
引用 9 楼 Javainging 的回复:
[quote=引用 8 楼 showbo 的回复:]
[quote=引用 7 楼 Javainging 的回复:]
[quote=引用 5 楼 showbo 的回复:]
无解。。。session过期服务器会自动销毁的

异常关闭firefox之类会保存你相关信息,不用你特别写代码


我直接关闭IE浏览器,无论过多久,这个session都不会过期,
异常关闭firefox 会保存啥相关信息呢?谢谢

IE呢?因为浏览器主要还是IE用户多啊[/quote]

不可能的。。。

关闭浏览器后重新打开session对应客户端cookie会话id就不一样了

如果没要你重新登陆,那么应该cookie记录了某些信息,下次访问页面从cookie获取登陆信息什么的[/quote]

怎么不可能,我好几个系统都是这样,如果你直接关闭浏览器、异常退出等,session是不可能会过期的,不信你试试。
google还悬赏10万美元来解决这个问题呢[/quote]

楼主去了解什么是会话和客户端的对应的cookie id

异常关闭(浏览器崩溃,任务管理直接结束浏览器进程),浏览器下次打开会提示是否恢复之前打开的页面,这种情况session对应的cookie id是被自动恢复到崩溃前状态,这个是浏览器自己实现的

正常关闭,session生成的客户端cookieid会被注销(这个是内存cookie),但是服务器session要等到过期后才会自动注销

你说的google的那个应该是异常关闭浏览器的,不会是正常关闭浏览器的
Java_er 2014-05-08
  • 打赏
  • 举报
回复
引用 11 楼 showbo 的回复:
我好几个系统都是这样 ---------- 如果是正常关闭,说明你浏览器有bug或者不是session验证,而是cookie来验证,并且cookie设置了有效期,不是内存cookie
我直接关闭浏览器,不点退出或者注销算异常关闭不呢,我浏览器就是IE8啊,我登录的时候是用的session,并没有显示的设置cookie啊, 而且我直接关闭浏览器之后,第二天再开,session还是会存在,直接就进系统了。
Java_er 2014-05-07
  • 打赏
  • 举报
回复
引用 8 楼 showbo 的回复:
[quote=引用 7 楼 Javainging 的回复:] [quote=引用 5 楼 showbo 的回复:] 无解。。。session过期服务器会自动销毁的 异常关闭firefox之类会保存你相关信息,不用你特别写代码
我直接关闭IE浏览器,无论过多久,这个session都不会过期, 异常关闭firefox 会保存啥相关信息呢?谢谢 IE呢?因为浏览器主要还是IE用户多啊[/quote] 不可能的。。。 关闭浏览器后重新打开session对应客户端cookie会话id就不一样了 如果没要你重新登陆,那么应该cookie记录了某些信息,下次访问页面从cookie获取登陆信息什么的[/quote] 怎么不可能,我好几个系统都是这样,如果你直接关闭浏览器、异常退出等,session是不可能会过期的,不信你试试。 google还悬赏10万美元来解决这个问题呢
Go 旅城通票 2014-05-06
  • 打赏
  • 举报
回复
无解。。。session过期服务器会自动销毁的 异常关闭firefox之类会保存你相关信息,不用你特别写代码
码无边 2014-05-06
  • 打赏
  • 举报
回复
session保存在内存中,随着浏览器的关闭,自动消失。
Go 旅城通票 2014-05-06
  • 打赏
  • 举报
回复
引用 7 楼 Javainging 的回复:
[quote=引用 5 楼 showbo 的回复:] 无解。。。session过期服务器会自动销毁的 异常关闭firefox之类会保存你相关信息,不用你特别写代码
我直接关闭IE浏览器,无论过多久,这个session都不会过期, 异常关闭firefox 会保存啥相关信息呢?谢谢 IE呢?因为浏览器主要还是IE用户多啊[/quote] 不可能的。。。 关闭浏览器后重新打开session对应客户端cookie会话id就不一样了 如果没要你重新登陆,那么应该cookie记录了某些信息,下次访问页面从cookie获取登陆信息什么的
Java_er 2014-05-06
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
无解。。。session过期服务器会自动销毁的 异常关闭firefox之类会保存你相关信息,不用你特别写代码
我直接关闭IE浏览器,无论过多久,这个session都不会过期, 异常关闭firefox 会保存啥相关信息呢?谢谢 IE呢?因为浏览器主要还是IE用户多啊
BCance 2014-05-06
  • 打赏
  • 举报
回复
我也碰到过类似的问题,当时搜了好久,貌似没法判断。
Java_er 2014-05-05
  • 打赏
  • 举报
回复
老大难的问题啊 ,大神们。。
Java_er 2014-03-29
  • 打赏
  • 举报
回复
引用 1 楼 Rommel_Gao 的回复:
这里有onbeforeunload的解释:http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx 关闭窗口,刷新页面,页面提交,导航到其他页面(链接,直接输地址,location.href等)都会触发这个事件。 浏览器异常关闭貌似前端没有什么方法来处理吧。 断电?还用考虑session么?
其实我主要是想做关于浏览器异常退出、直接关闭 等情况的处理, 就是当这些情况发生之后,我能执行退出系统,销毁session的操作,谢谢。
加载更多回复(1)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧