alert对ajax阻塞调查(IE, Chrome, FF)

前阵子作保守工做,对一个js效果进行了改进,因为本身在chrome下测试没问题就丢给同事测试,同事用的是FF,发现不正常,后来又发现这个js在IE10下也不行,不得不调查,结果发现Chrome的alert对ajax是彻底阻塞的,可是IE10和FF即便弹出alert,也不会影响正在ajax的访问,也就是不阻塞ajax。php

附上测试代码ajax

<div id="result"></div>

<script>
    function loadXMLDoc(url) {
        var xmlhttp;
        xmlhttp = null;
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                if (xmlhttp.responseText == '1') {
                    alert(1);
                    document.getElementById('result').innerHTML='';
                }else if(xmlhttp.responseText == '2') {
                    document.getElementById('result').innerHTML='123456';
                }
            }
        };
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
    }

    loadXMLDoc('http://localhost/echo.php?s=1');//返回1,为了让alert弹出
    loadXMLDoc('http://localhost/echo.php?s=2');//返回2,为了让div#result部分修改值
</script>

会发如今ff和ie10下,alert弹出后及时不关闭它也不会阻塞住后面对div#result部分修改的代码的执行chrome

但chrome下只有点了ok以后才会修改div#result部分测试

相关文章
相关标签/搜索