복붙노트

[JQUERY] 왜 브라우저 원인 같은 ASP.NET MVC 액션에 여러 개의 동시 AJAX 호출을 차단하는 것?

JQUERY

왜 브라우저 원인 같은 ASP.NET MVC 액션에 여러 개의 동시 AJAX 호출을 차단하는 것?

해결법


  1. 1.대답은 내 얼굴을 응시했다.

    대답은 내 얼굴을 응시했다.

    성가 시게 정말 대담한 문장의 전체에 미치는 영향에 복용하지 주 이것을 커플 전에 분리 한 단락을 것입니다. 나는 간단하게 "당신이 세션 상태를 만지거나, 직렬화하지 상관없이 여부, 모든 요청을"요청이 동일한 세션에서 온 경우 "세션 상태에 대한 액세스를 직렬화"를하지 않는 것이 읽었다.

    다행히 세션이없는 컨트롤러를 제작하는 ASP.NET MVC3에서 해결하려면 그 수는있다. 스콧 거스리는이 여기에 대해 이야기 :

    나는 MVC3 RC2를 설치하고 프로젝트를 업그레이드했습니다. 함께 해당 컨트롤러 데코레이션 [sessionState의 (SessionStateBehavior.Disabled)는 상기 문제를 해결한다.

    물론 보통의 난 그냥 몇 분 전에 스택 오버플로이 발견 :


  2. 2.나는이 재현하려고하지만, 수 없습니다되었다. 여기에 내 테스트는 다음과 같습니다

    나는이 재현하려고하지만, 수 없습니다되었다. 여기에 내 테스트는 다음과 같습니다

    private static readonly Random _random = new Random();
    
    public ActionResult Ajax()
    {
        var startTime = DateTime.Now;
        Thread.Sleep(_random.Next(5000, 10000));
        return Json(new { 
            startTime = startTime.ToString("HH:mm:ss fff"),
            endTime = DateTime.Now.ToString("HH:mm:ss fff") 
        }, JsonRequestBehavior.AllowGet);
    }
    

    그리고 전화 :

    <script type="text/javascript" src="/scripts/jquery-1.4.1.js"></script>
    <script type="text/javascript">
        $(function () {
            for (var i = 0; i < 6; i++) {
                $.getJSON('/home/ajax', function (result) {
                    $('#result').append($('<div/>').html(
                        result.startTime + ' | ' + result.endTime
                    ));
                });
            }
        });
    </script>
    
    <div id="result"></div>
    

    그리고 결과 :

    13:37:00 603 | 13:37:05 969
    13:37:00 603 | 13:37:06 640
    13:37:00 571 | 13:37:07 591
    13:37:00 603 | 13:37:08 730
    13:37:00 603 | 13:37:10 025
    13:37:00 603 | 13:37:10 166
    

    그리고 파이어 버그 콘솔 :

    당신이 볼 수 있듯이 AJAX 작업을 병렬로 맞았다.

    최신 정보:

    내 초기 테스트에서 요청이 실제로 () $ .getJSON을 사용하는 경우 파이어 폭스 3.6.12과 크롬 8.0.552.215에서 대기중인 것으로 보인다. 그것은 IE8에서 잘 작동합니다. 내 테스트는 ASP.NET MVC 2 프로젝트, VS2010, 카시니 웹 서버, 윈도우 7 64 비트를 수행 하였다.

    지금은 모든 브라우저에서 잘 작동) $ 갔지와 $ .getJSON ()을 (대체합니다. 그 리드 나 큐에 요청을 발생할 수 있습니다이 $ .getJSON () 뭔가가 있다고 생각합니다. 아마 jQuery를 프레임 워크의 내부를 더 잘 알고있는 사람은이 문제에 더 많은 빛을 흘릴 수있을 것입니다.

  3. from https://stackoverflow.com/questions/4428413/why-would-multiple-simultaneous-ajax-calls-to-the-same-asp-net-mvc-action-cause by cc-by-sa and MIT license