2010-03-15 4 views
10

나는아약스 순서 : 사실

function group_changed(obj) 
{ 
    $.ajaxSetup({async:false}); 
    $.post("/medilab/personnel/groups/getGroupRightsAjax", 
    { 'group.id': obj.options[obj.selectedIndex].value }, 
    function(data){ 
     $("#div_rights").html(data); 
    } 
); 
} 

이 잘 작동의 OnChange 이벤트에 호출이 코드를 가지고 있지만 내가 비동기 설정하는 경우는 true를, 때로는 결과가 일치 나던 선택 ... 일부 요청이 유실되었거나 응답이 순서대로 오지 않아서이 문제가 발생했다고 생각합니다.

비동기로 유지하려면 어떻게해야할까요?

답변

5

ajax 요청의 대기열과 순서를 지원하는 jQuery 용 플러그인이 몇 가지 있습니다. John Resig는 Ajax Queue이라고 썼습니다. 플러그인 설명에서 :

Ajax 대기열은 Ajax 경쟁 조건을 관리하는 데 도움이되는 플러그인입니다. 복수의 Ajax 요청이 연속으로 이루어지면 결과는 이 될 수 있습니다. 이로 인해 애플리케이션에서 이상한 동작이 발생할 수 있습니다.

이 소리는 당신이 필요로하는 것처럼 보일 수도 있고, 같은 것을 달성 할 수있는 몇 가지 플러그인을 사용할 수 있어야합니다. Ajax Manager이 최신 버전 인 것 같습니다. 플러그인 중 일부를 탐색하면 이미 수행중인 것을 발견하여 시간을 절약 할 수 있습니다.

+0

나는 똑같은 문제가 있었다. 나는 Ajax 관리자를 추천한다. – Jono

1

시도해보십시오. 더 나은 해결책 일 수 있습니다.

$.ajax 
({ 
    type:'post', 
    data:'', 
    dataType: 'html', 
    url: '', 
    success: function(data) { 
     alert('data'); 
    }, 
    error: function() { 
     alert("Error"); 
    } 
}); 
+0

응답의 문제가 발생하면 어떻게 도움이됩니까? –

1

관리자는 해결책이지만 중단()을 사용하여 문제를 해결했습니다!