을하고 완전한 답변을 위해서, 나는이 문제에 대한 내 솔루션 공유하기를 원해요 :
$('.list').sortable({
items:'.list:not(.loading)',
start: function(event,ui) {
var element = $(ui.item[0]);
element.data('lastParent', element.parent());
},
update: function(event,ui) {
var element = $(ui.item[0]);
if (element.hasClass('loading')) return;
element.addClass('loading');
$.ajax({
url:'/ajax',
context:element,
complete:function(xhr,status) {
$(this).removeClass('loading');
if (xhr.status != 200) {
$($(this).data('lastParent')).append(this);
}
},
});
}
});
당신을 ' 코드베이스에 맞게 수정해야하지만 완전히 잘 작동하는 멀티 스레드 보안 솔루션입니다.
페이지로드시 처음에 전체 정렬 가능 항목을 복제하고 안전하게 보관할 수 있도록 변수에 채 웁니다. 아약스 저장 성공에 나는 최신 정렬 (복제 다시) 복제 변수를 바꿉니다. 오류가 발생하면 sortable을 복제본으로 바꾸고 정렬 가능으로 다시 초기화합니다. 지금까지 괜찮은 것 같아 ... – Ryan
답변으로 게시하여 upvoted 수 있습니까? :) –