注册 登录
编程论坛 ASP技术论坛

请教 asp 每隔一段时间 执行一个处理代码 问题

xidae1005 发布于 2014-06-13 09:34, 605 次点击
程序代码:

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 页面是远程访问某页面读取数据  比如 www.baidu.com/read.asp     然后判断是新数据就存入数据库的操作

async:false,  这个属性是后加的,  之前没有这个属性 这时候运行流畅 可偶尔会重复存入数据 应该是延迟 或者 丢包等问题吧。 所以就加上 async:false,  作为同步

可这时候问题出现了。  卡的要死。  然后动不动就出error   不知道有没有别的办法能做到这个功能  每隔一段时间做一次操作。  现在问题就是台卡了。浏览器好像假死 还有执行了几次以后就不行了。  好像卡死。 请各位高手指点。
1 回复
#2
yms1232014-06-25 09:47
var time_doAjax;
function doAjax() {
    time_doAjax=setTimeout("doAjax()", 1000);
    $.ajax( {
        url : "/ajax/Bath_do.asp",
        dataType : "html",
        cache:false ,     //cache
        type : "get",
        async:false,
        beforeSend:function(){
            //加载开始前停掉计时器
            window.clearTimeout(time_doAjax);
        },
        error : function(msg) {
            alert("error.");
            //错误停掉计时器
            window.clearTimeout(time_doAjax);               
        },
        success : function(text) {
            document.getElementById("pt").innerHTML =  text;
            doAjax();//加载成功后再次调用自身来启动计时器
        }
    });
}
原理参考这篇文章:
jquery发送ajax请求时loading功能的实现 - The important thing in life is to have a great aim ,and the determination to attain it! -- Freeman - ITeye技术网站 http://duchengjiu.
1