2009-12-17 8 views
4

이전 Ajax 요청을 삭제할 수 있습니까?JQuery AJAX 중복 요청을 죽임

우리는 서로 매우 인접한 표 형식의 데이터를 가지고 있습니다. 각 데이터의 mouseover 이벤트에서 JQuery Ajax 객체를 사용하여 서버에 요청하고 팝업에 표시합니다.

그러나 우리는 다른 표 컨텐츠로 이전 할 때마다 이전 Ajax 응답이 해당 표 컨텐츠에 대한 이전의 정확한 응답이 표시되는 팝업 내부에 표시됩니다.

새로운 Ajax 요청이 생성되면 이전의 요청/응답이 없어져서 항상 예상되는 최신 응답을 팝업 내에서 사용할 수 있어야합니다.

JQuery, PHP 및 Mysql을 사용하여 요청을 처리하고 있습니다.

+0

참조 http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery –

+0

rfadams

답변

5

후속 ajax 호출을 만드는 함수가 공유하는 사용자 정의 Javascript Sync 객체를 만들 수 있습니까? 순차적으로 생성 된 ID를 요청 호출의 매개 변수로 할당합니다. 응답에 동일한 ID를 포함시킵니다. 발동시 모든 요청은 새로운 ID를 할당하고, 1만큼 증가 시키거나 또는 어떤 논리로든 증가시킵니다. 응답의 현재 ID가 공유 객체의 ID와 같지 않으면; 응답을 무시하고 응답을 렌더링하십시오.

이렇게하면 경쟁 조건이 완전히 해결됩니다. 나는 요청을 조기에 죽일 수있는 방법이 있는지 스스로 확신하지 못한다. 그러나 적어도 현재 직면하는 렌더링 문제를 만들지는 않을 것이다.

0

또 다른 옵션은 첫 번째 작업이 완료 될 때까지 다른 요청을 시작하지 않는 것입니다.

0

예 아니요. 이것이 바로 Ajax의 요점입니다. 비동기 적으로 작업을 수행 할 수 있습니다. 원하는 것은 비동기 적으로 아이디어를 파괴하는 요청을 중단하는 것입니다. 아마도 당신이 할 수있는 일은, 다른 요청을 보내면 요청의 수를 나타내는 값을 설정 한 다음 요청에 대한 콜백에서 요청 양이 1보다 큰지 확인하십시오. 그렇다면 응답을 무시하십시오.

관련 문제