周梦康 发表于 2014-06-03 2430 次浏览

一个页面循环发送ajax请求(就算只有一个ajax请求),同一浏览器再访问该域名的其他内容居然就被锁住了,需要等前面的ajax请求全部发送完毕才能刷新出来。前面这些我都是在chrome里面。

<script type="text/javascript">

    var id = '{$id}';
    var idArr = id.split(',');
    var url = '{:U('CollectArticle/Collect/index')}';
    function doCollect(){
        while(idArr.length){
            var webid = parseInt(idArr.pop());
            $("span[webid="+ webid +"]").html('<span style="color:#ff5751;">正在执行</span><img src="/statics/images/loading.gif" >');
            $.ajax({
                type:'POST',
                url:url,
                data:{id:webid},
                //async: false,
                dataType:'json'
            }).always(function(data) {
                    $("span[webid="+data.info+"]").html('<span style="color:#23ca5b;">执行完毕</span>');
            });
        }
    }

    doCollect();
</script>

而被请求的地址什么都没做,仅仅是sleep(3)

我再在chrome里发送请求,然后在firefox里面打开,则不会出现等待的情况。

我把代码单独拿出测试却没有出现那样的情况。

评论列表