AJAX 后台有时执行方法,有时执行,有时不执行问题 - Web 开发 / Ajax
我经常碰见这样的问题
我想用JS执行后台方法,为什么有时候执行,有时候不执行
代码如下:
var request;
HTML code
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
}
createRequest();
var requesturl = '<%=request.getContextPath()%>/trainplan/addLeafNode.shtml?objectivename='+document.all.objectivename.value+'&objectivecontent='+document.all.objectivecontent.value+"&paterid="+paterid;
request.open("GET", requesturl, true);
request.onreadystatechange = openResponse;
按道理说,AJAX应该执行<%=request.getContextPath()%>/trainplan/addLeafNode.shtml 地址后台里面的方法
因为我里面有修改数据库的操作
但有时候添加数据库记录,有时候不添加数据库记录,到底怎么解决,我只想搞明白,没别的意思
那位大大能解释一下
我后台代码肯定没问题,如果我是正常提交,然后页面刷新的话,是正确的
------解决方案--------------------
------解决方案--------------------我觉得后面加个 time比较合适, 比如你不想他每次请都都更新缓存, 就可以后台跟个时间, 以分钟或小时为标准, 即在同一时间段内发送的后面跟随数字是相同的...
------解决方案--------------------
------解决方案--------------------UP
------解决方案--------------------缓存问题
方法一:
xmlHttp.open("GET", "default.aspx", true);
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.send(null);
方法二:
xmlHttp.open("GET", "default.aspx?param="+Math.random(), true);
或者
xmlHttp.open("GET", "default.aspx?param="+new Date().getTime(), true);
------解决方案--------------------
------解决方案--------------------加随机数行,加时间也行,目的只有一个,不用缓存,每次都去数据库取,就不会出现问题了。
------解决方案--------------------mark
------解决方案--------------------