最近的项目中有这样的需求:    用户在一段时间内没有操作(离开或什么也不干)系统(WEB应用程序的客户端,下简称系统)系统将自动退出,退出前做些处理(象离线等)。    这就象MSN的离线功能一样。这看起来是个非常好的功能,所以用户提出了。那是因为在原来的C/S的系统中有这样的功能,所以用户要求现在的系统中也应该有。可是……哎……     有谁知道思路或MSN的离线功能的原理,都可以留下你宝贵意见。Thanks! ... 

解决方案 »

  1.   

    请先定义出"什么也不干",比如,不动鼠标 or 不动键盘,还是不动鼠标 and 不动键盘,然后用JS进行判断,过了N秒以后发送ajax请求到服务器进行离线操作.
      

  2.   

    就是MSN中的图标的变化功能,当用户在一定时间没有操作电脑,图标就变成离线的图标。
    在我们系统中的表现是如果操作人员离开或一段时间没有操作(如果在编辑页面内容但没提交后台也叫操作)我们的web应用系统则退出我们的web应用系统同时做些其它的操作。
    回phoenixsbk(凤之泪痕) ( ) :
    这样的js应该放到哪个页面呢?如我有很多弹出页面,怎么判断呢?
      

  3.   

    单独设置一个js文件,在页面上进行包含就可以了,保证在打开的每个页面中都包含这个js.
      

  4.   

    在tomcat中,正常的退出等可以用sessionListener来监听,但是非正常情况,好像直接关掉IE,这样,sessionListener是没法知道的,必须要等到seesion的有效时间到了,才会回收它的,如果只有一个页面,target不能为 _blank等的,这种情况下还可以用 js在IE关掉的时候发送一个指示给tomcat,告诉客户端退出了这个问题也害我n久了~~`
      

  5.   

    按照你的思路,如果要控制web页面的话,只能写js了。因为后台的服务器是不能请求web页面的。只能是页面请求,服务器应答来通信。 js中的事件机制应该可以实现。
      

  6.   

    同意LS的建议.SESSION的超时尽量设置的短一点.或者弄个JS背后间隔时间向服务器发送用户状态,不过这样似乎太耗费资源了.
      

  7.   

    据说javascript确实有一个函数可以判断
      

  8.   

    首先你要明白之所以会有C/S和B/S之分,就是因为它们有些地方是不同的,不可能将C/S的所有功能都能很好地移植过来,如果能完全移植,就不会有2个概念了。
    其次,需要使用js进行检测,然后使用ajax(xmlhttp)进行清理工作。
    Web上类似屏幕保护的代码可以参考
      

  9.   

    net_lover(【孟子E章】) 
    -----------
    哪里有Web上类似屏幕保护的代码可以参考??
    这里的要求和session没什么关系,因为它根本就不经过服务端!!
    只是客户端操作员的行为!!
    有没有更好的办法,控件也可以!!!?
      

  10.   

    cwq09mm() ( ) :
        _________    你的问题解决了吗?