1.你需要增加一个控制(开关),即当获取数据的时候,关闭开关,获取数据的过程中,无需再去发送请求,当获取到全部数据后,打开开关,定时器还可以继续请求服务器按照你的处理逻辑,每隔一秒都会请求数据,而不管上次是否还在进行,http请求没有达到最优2.eval可能存在性能问题,你可以转换json 利用JSON.parse(rst);

解决方案 »

  1.   

    我发现我的ajax调用,导致句柄数不断增加,每次增加2个,如果把ajax调用去掉就没事了,可能问题出在这里了
      

  2.   

    那你可以用个变量把句柄保存起来啊,既然知道原因了。每次执行就调用 这个变量就可以了。
    网上很多类似码: var ajax = {GetDate:funcion(){$.ajax{……}}} 
    这个早已经被人家归类过技巧了。
      

  3.   

    你是不管有没有返回成功就定时发送请求,当然会被卡到死。试着等返回成功后起算1秒后再请求<script type="text/javascript">
        /*var timer;
        function starttimer()
        {
            //定时器,每隔一秒获取一次
            timer = window.setInterval(getSetParam, 1000);    }*/
        function getSetParam()
        {
            $.ajax({
                type:"POST",
                url : getparam_url,
                async: false,
                data: "{tag:ptn}",
                datatype:"json",
                success:function(rst){
                    setTimeout(getSetParam,1000);//成功后才发第二次,否则即没意义又卡死
                    var json = eval('('+rst+')');
                    var userpassword = json.userpassword;
                    var admpassword = json.admpassword
                },error:function(){
                    window.location.href="/";
                }
            });    }
        getSetParam();
    </script>