会员的一个操作, 要查询更新几百次数据库.  是真的.我怕会员在执行过程中, 关闭了浏览器..求解决方案.

解决方案 »

  1.   

    有交互的话,用js的unbeforeonload事件进行通知,阻止用户关闭
    如果没有交互的话,用php的ignore_user_abort一直执行完毕
      

  2.   

    有交互的话,用js的unbeforeonload事件进行通知,阻止用户关闭
    如果没有交互的话,用php的ignore_user_abort一直执行完毕
      

  3.   

    你可以在用户正常浏览页面的同时,在页面上做一个隐藏的iframe,里面的脚本执行长时间的数据操作,且忽略用户关闭浏览器的信号。
      

  4.   

    治标不治本:[Javascript]onbeforeunload事件
    同事说想要用户离开当前页面时执行一个事件,我能想到的就是window.onunload和window.onbeforeunload两个事件。比如原来关闭窗口时经常会遇到跳出个广告窗口就是这么做的。而window.onbeforeunload是在关闭窗口前执行,因此,我们还可以利用它做点别的东西,前两天玩开心网的买房子组件,如果你在动了房子内的摆设而没有保存的就想要离开当前页的话,就会跳出个提示,只有点了确认才能离开当前页面,这就是一个很好的应用。window.onbeforeunload = function(e){
        e = e || window.event;
        e.returnValue="真的要走?";
    } 如果打算使用Mootools的事件来完成,就要稍微变动一下,因为Mootools对浏览器的事件进行了包装,我们可以通过e.event来得到原来的事件,前面的这个e就是Mootools包装后的事件:
    window.addEvent('beforeunload',function(e){
        e.event.returnValue="真的要走?";
    })示例 
    由于刷新,关闭,前进后退等行为都会触发window.onbeforeunload事件,因此无法直接通过onbeforeunload来区分用户的刷新和关闭行为,网上有代码说能实现,我看了下,只适应于IE6。因此,为了保险起见,不建议那么做。
    分类: Javascript
      

  5.   

    PHP是有相关内置函数的:
    ignore_user_abort 设置是否在客户端断开连接时结束PHP代码的运行,但要注意的是PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止,所以我们配合set_time_limit()函数 和一个死循环就可以实现此功能了。<?php
    ignore_user_abort (true);
    set_time_limit (0); 
    while(1){ 
        if(connection_status()!=CONNECTION_NORMAL){ 
            break; 
        }
        echo '要执行的代码.....';
    }
    ?>
      

  6.   


    ignore_user_abort (true);
    set_time_limit (0); 忽略用户的请求  就算是关掉他也是执行完