日期:2014-05-16  浏览次数:20406 次

求教:关闭页面或跳转后修改数据库数据
本帖最后由 Bingo_world 于 2014-02-20 11:05:58 编辑
最近项目遇到一个问题,录入页面需要从数据库调用一个编号(编号已经在数据库一个表中存在),如果同一单位两个用户访问录入界面,会同时调用同一个编号,想实现两个用户调用不同的编号。
解决办法:1、使用锁机制,担心死锁的情况。并且锁机制不太了解。
          2、修改编号的标记和修改标记的时间。遇到一个问题就是 假如用户关闭网页或页面跳转了。标记如   何更改。

使用了第二个办法。JS用onunload()方法。使用ajax修改标记和时间。但是因为页面关闭了,会造成接收不到返回值。其实不用接受返回值。只需要修改标记和时间就可以了。可以实现修改两次。当第三次的时候 就不修改标记和时间了。
求一个合理的解决办法。谢谢
js:
window.onunload=function()
        {
           var birthno=$("#Label1").html();//获取页面中使用的编号
           var count;
           var url="UpdateUnlock.aspx?birthno="+escape(birthno);//UpdateUnlock.aspx 修改编号标记的页面
           var obj=CreateAJAX();
           if(!obj){alert("不能创建对象!");return;}
           obj.open("get",url,false);
           obj.onreadystatechange=function()
           {
           if(obj.readyState==4)
           {
           if(obj.status==200)
           {}
        else
           {
             alert("发生错误!state:"+obj.status);
           }
           }
           }obj.send(null);
        }
       function CreateAJAX()
        {  
          if(typeof(XMLHttpRequest)!="undefined")
             return new XMLHttpRequest();
          if(window.ActiveXObject)
          {
             var objs=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];    
             var xmlhttp;
             for(var i=0;i<objs.length;i++)
             {
               try
               {
                 xmlhttp=new ActiveXObject(objs[i]);
                 return xmlhttp;
               }
    &nb