求教:关闭页面或跳转后修改数据库数据
本帖最后由 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