AJAX第一次调用正常,第二次不执行
在一个网页上做了一个AJAX 控制“显示/隐藏”按钮的程序。也就是管理一条信息是“显示”还是“隐藏”。
代码如下
页面javascript:
function BtnOnClick(btnType,intId,strValue)
{
var xmlHttp;
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
}
}
}
xmlHttp.open("get","InfoStatus.asp?stateType="+btnType+"&id="+intId);
xmlHttp.onreadyStateChange=function()
{
if(4==xmlHttp.readyState)
{
alert(xmlHttp.status)
if(200==xmlHttp.status)
{
var blnBool=xmlHttp.responsetext;
blnBool=unescape(blnBool);
if(blnBool)
{
var elem=document.getElementById(btnType+intId);
switch(elem.value)
{
case "显示": elem.value="隐藏";break;
case "隐藏": elem.value="显示";break;
default:alert('数据错误!');break;
}
}
else
alert('数据库写入错误,状态修改失败!');
}
}
}
xmlHttp.send(null);
return false;
}
InfoStatus.asp程序
Dim intId,strUserId,blnResult
intId = request.QueryString("id")
strStateType = request.QueryString("stateType")
blnStateValue = request.QueryString("stateValue")
strUserId = "aaa" '需要更改用户名
blnResult = fun_InfoStateUpdate(intId) ' intId--编号
conn.close()
Set conn = Nothing
response.write(blnResult)
fun_InfoStateUpdate(intId,strUserId) 是具体的SQL,SQL语句是" UPDATE Info SET isShow=~isShow WHERE id="&intId&" "
程序第一次调用能正常完成,但是继续点击页面按钮的时候,http返回状态是200,JavaScript 也都执行完成了(按钮的文字更改了) , 不过数据库中的数据并没有做出改变
刚开始用AJAX,不是很明白。望哪位前辈指点一下,感激不尽
------解决方案--------------------xmlHttp.open("get","InfoStatus.asp?stateType="+btnType+"&id="+intId);
加上&d="+new Date().getTime() 看看 。
防止缓存 。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------可以加上一个随机数,是缓存的问题。
------解决方案--------------------没有改变传入参数,缓存问题
增加个随机数参数就OK了