function doAjax() {
$.ajax( {
url : "/ajax/Bath_do.asp",
dataType : "html",
cache:false , //cache
type : "get",
async:false, //
error : function(msg) {
alert("error.");
},
success : function(text) {
document.getElementById("pt").innerHTML = text;
}
});
setTimeout("doAjax()", 50000); //
return false;
}
Bath_do.asp 页面是远程访问某页面读取数据 比如 http:// www.baidu.com/read.asp 然后判断是新数据就存入数据库的操作
async:false, 这个属性是后加的, 之前没有这个属性 这时候运行流畅 可偶尔会重复存入数据 应该是延迟 或者 丢包等问题吧。 所以就加上 async:false, 作为同步
可这时候问题出现了。 卡的要死。 然后动不动就出error 不知道有没有别的办法能做到这个功能 每隔一段时间做一次操作。 现在问题就是台卡了。浏览器好像假死 还有执行了几次以后就不行了。 好像卡死。 请各位高手指点。
5 个解决方案
#1
你在上一次请求完毕后在执行就好了。。
function doAjax() {
$.ajax({
url: "/ajax/Bath_do.asp",
dataType: "html",
cache: false,
type: "get",
async: true,//还是异步的
error: function (msg) {
alert("error.");
doAjax()//////////////////////
},
success: function (text) {
document.getElementById("pt").innerHTML = text;
doAjax()//////////////////////
}
});
return false;
}
#2
回复 1楼 :
这样的话 服务器受不了吧? 这像是死循环 不停地访问。 得在 success 里加个 定时器 在执行 doAjax?
这样的话 服务器受不了吧? 这像是死循环 不停地访问。 得在 success 里加个 定时器 在执行 doAjax?
#3
如果是多个人会用这个功能服务器时有点受不了。。用setTImeout延时执行下就好了
function doAjax() {
$.ajax({
url: "/ajax/Bath_do.asp",
dataType: "html",
cache: false,
type: "get",
async: true,//还是异步的
error: function (msg) {
alert("error.");
setTimeout(doAjax, 50000); ////////////////////////
},
success: function (text) {
document.getElementById("pt").innerHTML = text;
setTimeout(doAjax, 50000); ////////////////////////
}
});
return false;
}
#4
注意ajax操作时都需要先禁用原按钮,待ajax有返回结果后再启用按钮,防止重复提交。至于async建议异步执行体验较好,同步会造成浏览器假死现象。
#5
function doAjax() {
$.ajax( {
url : "/ajax/Bath_do.asp",
dataType : "html",
cache:false ,
type : "get",
error : function(msg) {
alert("error."); //失败后停止循环插入数据
},
success : function(text) {
document.getElementById("pt").innerHTML = text;
setTimeout(function(){
doAjax();
}, 5000); // 成功插入数据5秒后再次插入
}
});
}
#1
你在上一次请求完毕后在执行就好了。。
function doAjax() {
$.ajax({
url: "/ajax/Bath_do.asp",
dataType: "html",
cache: false,
type: "get",
async: true,//还是异步的
error: function (msg) {
alert("error.");
doAjax()//////////////////////
},
success: function (text) {
document.getElementById("pt").innerHTML = text;
doAjax()//////////////////////
}
});
return false;
}
#2
回复 1楼 :
这样的话 服务器受不了吧? 这像是死循环 不停地访问。 得在 success 里加个 定时器 在执行 doAjax?
这样的话 服务器受不了吧? 这像是死循环 不停地访问。 得在 success 里加个 定时器 在执行 doAjax?
#3
如果是多个人会用这个功能服务器时有点受不了。。用setTImeout延时执行下就好了
function doAjax() {
$.ajax({
url: "/ajax/Bath_do.asp",
dataType: "html",
cache: false,
type: "get",
async: true,//还是异步的
error: function (msg) {
alert("error.");
setTimeout(doAjax, 50000); ////////////////////////
},
success: function (text) {
document.getElementById("pt").innerHTML = text;
setTimeout(doAjax, 50000); ////////////////////////
}
});
return false;
}
#4
注意ajax操作时都需要先禁用原按钮,待ajax有返回结果后再启用按钮,防止重复提交。至于async建议异步执行体验较好,同步会造成浏览器假死现象。
#5
function doAjax() {
$.ajax( {
url : "/ajax/Bath_do.asp",
dataType : "html",
cache:false ,
type : "get",
error : function(msg) {
alert("error."); //失败后停止循环插入数据
},
success : function(text) {
document.getElementById("pt").innerHTML = text;
setTimeout(function(){
doAjax();
}, 5000); // 成功插入数据5秒后再次插入
}
});
}