向服务器发送了两个异步请求 结果却总是同时返回

js代码

  window.onload = function ()
        {
            gp();
            gp1();
        }

                function gp() {
                $.ajax({
                    type: "post",
                    url: "Filepro.aspx",
                    data: {
                        type: "gp"
                    },
                    success: function (data) {
                        alert(data);
                        setTimeout("gp()", 500);
                    },
                    error: function (data) {

                    }
                })
            }
        }

        function gp1() {
                $.ajax({
                    type: "post",
                    url: "Filepro1.aspx",
                    data: {
                        type: "gp"
                    },
                    success: function (data) {
                        alert(data);
                        setTimeout("gp1()", 500);
                    },
                    error: function (data) {

                    }
                })
        }

asp.net 代码

//Filepro.aspx
 String tag = Request.Form["type"];
        String a = "";
        if (tag.Equals("gp"))
        {

            Thread.Sleep(5000);
                Response.Write("我是0");
                Response.End();
        }

                //Filepro1.aspx
                 String tag = Request.Form["type"];
        String a = "";
        if (tag.Equals("gp"))
        {
                Response.Write("我是1");
                Response.End();
        }

前台就是简单的发了两个异步请求出去 服务器有两个页面分别处理这两个请求,其中一个做了延时,我想要的效果是在大概五秒时间里 服务器返回N个“我是1”返回一个“我是0”但现在的现像是这两个请求总是大概五秒一次的同时返回,是服务器把这两个异步请求当成一个去处理了吗?其中一个Sleep的时候 另一个也被指挂起了? 我想要的那种效果应该怎么实现 请指教!

1个回答

貌似你这两个请求都会进入 if (tag.Equals("gp")),都会停顿,而且你也没有同步,所以可能是分别停顿了互不影响的5秒,最后一起返回

w359030056
Where___ 恩  我试了一下我把function gp() 的参数改成了type:"gp1" Filepro.aspx里的判断也改成了if (tag.Equals("gp1")) 效果还是一样的 没有变化
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问