ie7的行为就像在jquery中将async设置为false一样

时间:2011-08-03 16:29:00

标签: javascript jquery ajax asynchronous internet-explorer-7

我正在开发一个项目(与昨天的:)相同),它涉及大量的后台ajax加载以保持页面更新。我的问题是ie7似乎表现得好像async被设置为false - 它只是在调用ajax请求时冻结。起初这是可以忍受的,但是现在脚本变得更加复杂,它会冻结大约6秒钟,解冻1或2,然后不断重复。

我把它缩小到这个重复发生的后台调用(当我不重复调用它时它工作正常),每5秒调用一次:

var currentPerformance=0;
function updatePerformanceCodes(){
    $.post("performanceCodes.php",{id:performances[currentPerformance], timestamp: updates[performances[currentPerformance]]},
        function(data){
            if(data!="."){
                if(performanceCodes[performances[currentPerformance]]==""){
                    performanceCodes[performances[currentPerformance]]+=data.split('?')[0];
                    }
                else{
                    performanceCodes[performances[currentPerformance]]+=","+data.split('?')[0];
                    }
                }
            drawCurrentSeats();
        $.post("familyCodes.php",{id:performances[currentPerformance], timestamp: updates[performances[currentPerformance]]},
        function(data){
            if(data!="."){
                if(familyCodes[performances[currentPerformance]]==""){
                    familyCodes[performances[currentPerformance]]+=data.split('?')[0];
                    }
                else{
                    familyCodes[performances[currentPerformance]]+=","+data.split('?')[0];
                    }
                updates[performances[currentPerformance]]=data.split('?')[1];
                }
            drawCurrentFamilies();
          });
        if(currentPerformance<performances.length-1){
            currentPerformance++;
            updatePerformanceCodes();
            }
        else{
            currentPerformance=0;
            }
        });
    }

我读过,即有时候有缓存问题,使用post会阻止这种情况,但这似乎没有帮助。我在页面上还有许多其他AJAX组件,即使在同时调用5或6时也能正常工作,这使得这更加令人困惑。

任何人都可以想到我可以修改这段代码的任何方式,以便ie7在运行时不会冻结吗?

0 个答案:

没有答案