2013-03-20 1 views
0

아래 나는 한 방울을 가지고 AJAX경쟁 상태 - 드롭 - - 녹아웃 자바 스크립트

var url = '@Url.Action(MVC.funkyThingsController.IndexJSON())' + "?funkyThingActiveFilter=" + model.funkyThingActiveFilter(); 

$.ajax({ 
      url: url, 
      dataType: 'json', 
      success: function (returnedData) { 
       ko.mapping.fromJS(returnedData, {}, model); 
       } 
     }); 

를 통해 뷰 모델의 업데이트를 얻을 수 문제는이 시작있다 가입자가 모델 업데이트를 보는 경쟁 조건 filterResults 함수에 녹아웃 스로틀을 넣으려고했으나 경쟁 조건이 지연됩니다.

또한 filterResults 함수가 inFunction 유형 변수를 설정하는 세마포어를 만들려고했습니다. 그러나 바인딩은 비동기 적으로 새로 고쳐진 것처럼 보입니다.

페이지를 원에서 둘러 볼 수 없게하려면 어떻게해야합니까?!

답변

0

이를 해결하기 위해 녹아웃 뷰 모델 생성시 필터 복사본을 만들었습니다. 그런 다음 드롭 다운을 사본에 바인딩하고 사본을 AJAX get에 매개 변수로 전달했습니다.

모델을 새로 고칠 때 이러한 복사본은 AJAX 요청에서 돌아 오는 뷰 모델 데이터의 일부가 아니므로 업데이트되지 않았습니다. 결과적으로 경쟁 조건이 없습니다.

관련 문제