programing

jQuery: 동기 AJAX 요청 수행 중

codeshow 2023. 2. 26. 10:20
반응형

jQuery: 동기 AJAX 요청 수행 중

예전에 jQuery를 몇 번 해봤는데, 완전히 빠져버렸어.동기식 AJAX 콜의 장단점은 알고 있습니다만, 여기에서는 필수입니다.

리모트 페이지는 로드(fire bug로 제어)되지만 반환은 표시되지 않습니다.

기능을 제대로 되돌리려면 어떻게 해야 하나요?

function getRemote() {

    var remote;

    $.ajax({
        type: "GET",
        url: remote_url,
        async: false,
        success : function(data) {
            remote = data;
        }
    });

    return remote;

}

동기 요청을 할 때, 그 요청은

function getRemote() {
    return $.ajax({
        type: "GET",
        url: remote_url,
        async: false
    }).responseText;
}

예: http://api.jquery.com/jQuery.ajax/ #syslog-3

주의: 비동기 속성을 false로 설정하는 것은 권장되지 않으며 삭제 입니다(링크).Firefox 및 Chrome을 포함한 대부분의 브라우저는 다음과 같은 경우 콘솔에서 경고 인쇄를 이미 시작했습니다.

크롬:

메인 스레드의 동기 XMLHttpRequest는 최종 사용자의 경험에 악영향을 미치기 때문에 권장되지 않습니다.상세한 것에 대하여는, https://xhr.spec.whatwg.org/ 를 참조해 주세요.

파이어폭스:

메인 스레드의 동기 XMLHttpRequest는 최종 사용자의 경험에 악영향을 미치기 때문에 권장되지 않습니다.자세한 내용은 http://xhr.spec.whatwg.org/ 를 참조해 주세요.

아약스 함수를 잘못 사용하고 있습니다.동기이므로 다음과 같이 데이터가 인라인으로 반환됩니다.

var remote = $.ajax({
    type: "GET",
    url: remote_url,
    async: false
}).responseText;

그 url은 얼마나 리모트인가? 같은 도메인에서 온 것인가? 코드는 괜찮아 보인다.

이거 먹어봐

$.ajaxSetup({async:false});
$.get(remote_url, function(data) { remote = data; });
// or
remote = $.get(remote_url).responseText;
function getRemote() {
    return $.ajax({
        type: "GET",
        url: remote_url,
        async: false,
        success: function (result) {
            /* if result is a JSon object */
            if (result.valid)
                return true;
            else
                return false;
        }
    });
}

언급URL : https://stackoverflow.com/questions/6685249/jquery-performing-synchronous-ajax-requests

반응형