programing

jquery의 ajax 함수에서 비동기 false 및 비동기 true를 사용하는 경우

linuxpc 2023. 3. 17. 19:39
반응형

jquery의 ajax 함수에서 비동기 false 및 비동기 true를 사용하는 경우

Ajax 콜에서 비동기 false 또는 비동기 true를 사용하는 경우성능 면에서 차이가 있습니까?

예:

$.ajax({
        url : endpoint,
        type : "post",
        async : false,
        success : function(data) {
                if (i==1){  
                getMetricData(data)}

                else if (i==2)
                {
                    capture = data;
                }

        }
    });

퍼포먼스와는 상관없는...

브라우저가 다른 코드로 전달되기 전에 Ajax 요청을 완료해야 하는 경우 비동기 설정을 false로 설정합니다.

<script>
    // ...
    $.ajax(... async: false ...); // Hey browser! first complete this request, 
                                  // then go for other codes

    $.ajax(...); // Executed after the completion of the previous async:false request.
</script>
  1. 비동기 설정이 false로 설정되어 있는 경우, 비동기 콜이 아닌 동기 콜이 발신됩니다.
  2. jQuery AJAX 함수의 비동기 설정을 true로 설정하면 jQuery Asynchronous 콜이 실행됩니다.AJAX 자체는 Asynchronous JavaScript 및 XML을 의미하므로 비동기 설정을 false로 설정하여 Synchronous로 하면 AJAX 호출이 되지 않습니다.
  3. 상세한 것에 대하여는, 이 링크를 참조해 주세요.

(상호 의존성이 없는) 여러 작업을 병렬로 수행할 수 있는 경우 비동기화하는 것이 가장 좋습니다.다음 로드를 계속하기 위해 이 옵션을 완료해야 하는 경우 동기화를 사용할 수 있지만 이 옵션은 동기화 오용 방지를 위해 권장되지 않습니다.

jQuery.ajax() 메서드의 비동기 옵션이 폐지되었습니다.이제 어떻게 해야 하나요?

기본적으로 동기 요구는 요청에서 응답이 수신될 때까지 기다렸다가 코드 처리를 계속합니다.처음에는 이것이 좋은 것처럼 보일지 모르지만, 절대 그렇지 않다.

앞서 언급한 바와 같이, 요청이 진행되는 동안 브라우저는 대부분의 브라우저의 JS 엔진이 (효과적으로) 싱글 스레드이기 때문에 모든 스크립트의 실행과 UI의 렌더링을 중지합니다.즉, 사용자에게 브라우저가 응답하지 않는 것처럼 보일 수 있으며 프로그램이 응답하지 않는다는 OS 수준의 경고가 표시될 수 있으며 프로세스를 종료해야 하는지 여부를 묻는 메시지가 표시될 수 있습니다.이러한 이유로 동기 JS가 더 이상 사용되지 않으며 devtools 콘솔에서 해당 JS의 사용에 대한 경고가 표시됩니다.

비동기 요청의 대체 방법은 단연코 더 나은 방법이며 가능한 한 항상 사용해야 합니다.즉, 비동기 요구가 완료되었을 때 응답을 처리하기 위해 콜백이나 약속을 사용하는 방법 및 이 패턴에 대응하도록 JS를 구성하는 방법을 알아야 합니다.예를 들어, 이 문제를 다루는 많은 리소스가 이미 있으므로 여기서는 설명하지 않겠습니다.

동기 요구가 필요한 경우는 거의 없습니다. 제가 할 수 은 '할 때'밖에요.beforeunload이벤트 핸들러를 사용해도 동작하지 않을 수 있습니다.

요약하면.모든 요구에서 비동기 패턴을 학습하고 사용해야 합니다.동기요구는 일반적으로 해결되는 것보다 더 많은 문제를 일으키는 안티패턴이 되었습니다.

언급URL : https://stackoverflow.com/questions/18366118/when-to-use-async-false-and-async-true-in-ajax-function-in-jquery

반응형