2013-08-14 5 views
1

모두, UI 콘텐츠의 부분 업데이트가 필요한 DashBoard에서 작업 중이며 비동기식 Jquery.ajax으로 구현하려고했지만 비동기 요청이 완전히 작동하지 않는 것으로 나타났습니다. 모든 내용은 마지막 요청이 완료되었을 때만 업데이트되었습니다. 그래서 나는 작은 시험을 치고 그 결과를 알아 내려고 노력합니다.여러 비동기 요청

아래 코드는 제 코드입니다. 검토해주십시오.

asp.net 페이지에서 시험 결과는 그것은 단지 파이어 폭스에서 작동이다

protected void Page_Load(object sender, EventArgs e) 
    { 
     string sTime = Request.Params["WaitTime"]; 
     if (!string.IsNullOrEmpty(sTime)) 
     { 
      Thread.Sleep(int.Parse(sTime) * 1000); 
      Response.Write(sTime); 
     } 
    } 

, 나는 파이어 폭스에서 의미 코드 숨김 코드 모든 요청은 독립적으로

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <script language="javascript" type="text/javascript"> 
     $(function() { 
      $("#btnMultipleRequest").bind("click", function() { 
       $("#imgLoading").show(); 
       $("#divResponse").empty(); 
       loopRequest(); 
      }); 

      $("#imgLoading").hide(); 
     }); 

     function loopRequest() { 
      var arr = [1, 2, 3, 4, 5]; 
      $.each(arr, function() { 
       var i = this; 
       $.ajax({ 
        type: "Get", 
        async: false, 
        url: "server.aspx?waittime=" + i, 
        success: function (data) { 
         $("#divResponse").append("<br>" + data); 
         if (data == "5") { 
          $("#imgLoading").hide(); 
         } 
        } 
       }); 
      }); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="btnMultipleRequest" value="BeginMultipleRequest" type="button" /> 
     <img src="img/wait.gif" id="imgLoading" alt=""/> 
     <div id="divResponse"> 
     </div> 
    </div> 
    </form> 
</body> 
</html> 

페이지 업데이트는 모든 기다리지 않습니다 완료 될 요청의 응답. 하지만 IE와 Chrome에서는 작동하지 않습니다. 마지막 요청이 끝날 때까지 페이지가 업데이트되기 때문입니다. 내가 뭔가를 놓치면 나도 도와 줘.

답변

1

무엇 당신이 그렇게 코드를 수정하려고 제거 동기하게 async false와 아약스 호출을 호출 여기서 뭐하는 async: false,

안녕, @iBlue는, 사실 위의 샘플 코드, 내가 다른에서 다른 결과를 얻었다
+0

브라우저. 이것은 나를 혼란스럽게 만든다. 왜 그런지 알아? 감사. –