2011-10-26 5 views
1

이것이 가능한지 확실하지 않습니다.현재 Ajax 통화를 일시 중지하고 새 통화를 수행 한 후 기본 Ajax 통화를 계속하십시오

버튼 클릭 이벤트 중에 두 번의 ajax 호출이 실행되었습니다. 첫 번째 ajax 호출은 jquery ajax 게시물을 사용하여 데이터베이스에 데이터를 추가하는 것입니다. 두 번째 것은 jquery ajax 게시를 통해 데이터베이스에 또 다른 데이터 세트를 추가하는 것입니다.

첫 번째 것은 처음 실행되고 두 번째 것은 실행됩니다. 두 번째 호출 (windowstimeout)에 타이머를 설정하여 첫 번째 아약스 호출을 일시 중지 할 수 있는지 테스트하기 위해 두 실행 사이의 시간 간격을 만듭니다.

두 통화를 결합하고 싶지 않은 이유를 묻는 메시지가 표시됩니다. 나는해야 할 이유가 있으며, 아약스 호출을 일시 중지하는 것이 실제로 가능한지 알고 싶습니다. 내가 그물 주위에 검색, 내가 찾은 모든 ajaxstop (jQuery)하지만 그것을 정말로 일시 중지하지 않습니다, 그것은 아약스 호출을 중지합니다.

아무도 그렇게 할 생각이 없나요? 감사.

+1

첫 번째 요청의 성공 콜백에 두 번째 비동기 포스트 백을 배치하지 않는 이유는 무엇입니까? – lsuarez

+0

문자 그대로 아니요. 이것은 요청/응답 동작 문제가 아니라 자바 스크립트 중 하나입니다. – Marc

+0

전화가 서버 측으로 나가면 클라이언트의 손에 없습니다. 당신은 중도에서 멈추도록 서버에 지시 할 수 없습니다. 두 번째가 완료 될 때까지 첫 번째 결과를 유지하거나 첫 번째 호출 내에서 두 번째 호출을 중첩시킬 수 있습니다. 이 일시 중지로 수행하려는 작업을 확장 할 수 있습니까? – JoshHetland

답변

2

왜 일시 중지 하시겠습니까? 그럴 수는 없지만 왜 그렇게하고 싶습니까? 둘 다 실행 시키거나 두 번째 작업이 완료 될 때까지 첫 번째 호출을 실행하지 마십시오.

+0

기술은 그렇게 할 수 있습니다. – sm21guy

1

아니요, Ajax 호출을 일시 중지 할 수 없습니다. 이는 정상적인 HTTP 요청/응답주기의 인스턴스 일 뿐이며 그와 같이 동작합니다. 두 번째 호출로 인한 서버 측 작업이 첫 번째 호출의 결과에 따라 다르면 호출을 연결하고 첫 번째 성공 콜백 핸들러에서 두 번째 호출을 트리거하면 어떨까요?

1

당신은 그렇게 할 수 없습니다.

데이터 교환 프로토콜의 설계가 올바른지 스스로에게 물어야합니다.

요청을 일시 중지하면 (통신 프로토콜이든 AJAX이든간에) 다른 요청이 있는지, 무엇이 무엇인지 알 수 없기 때문에 요청을 일시 중지해야합니다.

그래서 스스로에게 질문하십시오. 내게 정확히 필요한 것이 무엇입니까? 다른 방법은 무엇입니까?

관련 문제