필터를 변경하면 결과 집합을 업데이트하라는 ajax 요청을 발생시키는 검색 필터가 있습니다. 사용자가 한 번에 많은 필터를 변경하여 많은 AJAX 요청을 실행하는 경우가 종종 있습니다.jQuery 이전 요청이 모두 중단 되더라도 AJAX 요청이 느림
그래서 새 요청이 작성되면 (ajax.abort() 함수를 사용하여) 이전 요청을 중단하기로 결정했습니다. 이제 ... 파이어 버그는 모든 요청을 중단 된 것으로 표시하지만 마지막 요청 (중단되지 않은 유일한 요청)은 중단되기 전에 요청이 오래 걸립니다.
예를 들어 필터를 하나만 변경하면 요청을로드하는 데 1 초가 걸립니다. 그러나 한 번에 5 개의 필터를 변경하면 마지막 요청 만 남겨두고 4 개를 중단합니다. 그러나이 요청은 완료하는 데 5 초가 소요됩니다.
누구나 알고 계십니까? 나는 jQuery가 요청을 중단하더라도 내 서버가 여전히 그것을 처리하고 있다고 생각한다. (필자는 개발 모드에서 로컬 Rails Mongrel을 실행하고 있습니다.) 그런 이유로 내가 요청을 중단 한 모든 이유를 이기고 ...이 문제를 해결하기 위해 무엇을 할 수 있습니까 ??
도움을 많이 받으실 수 있습니다!
서버가 아직 이전 요청을 처리하지 않고 그 쪽이 수렁에 빠졌습니까? –
Nick Craver가 언급했듯이 AJAX 요청을 취소하면 콜백 핸들러 만 파괴되므로 페이지에서 들어오는 정보를 무시하게됩니다. 그러나 AJAX 요청을 보내 자마자 요청이 이미 서버로 전송되어 처리됩니다. 그러나 서버의 트래픽이 많지 않거나 속도가 느린 경우가 아니면 문제가되지는 않습니다. –
hmmm 그래서 제작 서버로 밀어 넣었습니다. 제대로 작동하기 때문에 서버가 필터를 클릭하는 것보다 서버가 빨리 응답하기 때문에 문제가되지 않습니다. 당신이 말했듯이, 느린 로컬 개발 서버에만 문제가 있습니다. 여전히,이 일을 더 나은 방법이 있어야합니다 (우리 서버가 사용하지 않는 요청을 처리해야하는 이유는 무엇입니까?) 아마도 지연된 요청으로 앤디의 대답을 시도 할 것입니다 ... –