关于多个Ajax请求 被阻塞的问题

2017-08-28 09:02 出处:360java.com 作者:360java  阅读()
我现在有五个Ajax, function MutipulyInvoke() { $.ajax({success:function(){}}); $.ajax({success:function(){}

我现在有五个Ajax,

 

function MutipulyInvoke()

{

  $.ajax({success:function(){}});

  $.ajax({success:function(){}});

  $.ajax({success:function(){}});

     $.ajax({success:function(){}});

  $.ajax({success:function(){}});

}

 

现在出现的一个问题就是:我第二个Ajax必须要请到第一个请求完成,它才会执行!!

理论上不应该如此吧!!因为这几个请求的周期不一样!!第一个要3秒,第二个只要0.1秒!!

第三个只需要5秒等等!!应该是哪个成功先执行哪个吧!!但是实际情况却是先等到第一个成功后才执行第二个!!

< >
最佳答案

不知道你用的什么浏览器做的开发的。

如果用火狐那么请下载一个firebug,打开控制台面板,然后刷新你的页面,看看这些ajax的请求到底是怎么执行的。

如果用谷歌那么直接Ctrl+Alt+J,打开Network面板,然后刷新你的页面,看看这些ajax的请求到底是怎么执行的。

如果你用IE请无视我。

哥哥!!关于多个Ajax请求 被阻塞的问题

看到没……!它是等到第一个结果调用后才去调用第二个的!!

 

第一个请求默认为五秒!而第二个却只有0.01秒!!

但是却非要等 到第一个调用完成后,才去调用第二个!!

我不是你哥哥,麻烦你测试以下代码。

<script type="text/javascript" language="javascript">
        $(function () {
            $.get("Handler/Handler1.ashx", function (result) {
                alert(result);
            });
            $.get("Handler/Handler2.ashx", function (result) {
                alert(result);
            });
        });
    </script>
public class Handler1 : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";

        System.Threading.Thread.Sleep(1000 * 5);

        context.Response.Write("Handler1");
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}
public class Handler2 : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Handler2");
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

你的为什么就可以!!!

 

我的代码为什么就不可以呢???!

 

$.ajax();和$.get();不一样么???求解答!!!

$.get()是对$.ajax()的封装。

$(function () {
            $.ajax({
                "url": "Handler/Handler1.ashx",
                "success": function (result) {
                    alert(result);
                }
            });
            $.ajax({
                "url": "Handler/Handler2.ashx",
                "success": function (result) {
                    alert(result);
                }
            });
            //$.get("Handler/Handler1.ashx", function (result) {
            //    alert(result);
            //});
            //$.get("Handler/Handler2.ashx", function (result) {
            //    alert(result);
            //});
        });
分享到:
本文标签: jquery, Ajax, 阻塞, ASP.NET Ajax, Aj

相关文章

发表评论(共条评论)愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

Copyright (C) java学习 360java 360java.com, All Rights Reserved.

苏ICP备16022210号