John Culviner (위대한) jquery.fileDownload 플러그인을 사용하고 있습니다. 다운로드가 완료되면 콜백을하지만 내 파일을 생성하는 데 약 30 초가 걸립니다 (많은 백엔드 처리).jquery.fileDownload : 진행 상황을 사용자에게 알리기
사용자에게 현재 진행 상황을 알리고 싶습니다. 프로토 타입으로
, 내가 이것을 시도하고있다 :1) (파일 다운로드가 시작되기 전에) - 반복적으로 URL을 폴링 매초마다 ($ 갔지 (...)). % 완료를 반환하고 페이지에서 div를 업데이트합니다 (이 시점에서 0 %).
2) fileDownload 스크립트를 시작합니다 (이 시점에서 1이 확인하는 서버 측 변수). 2 % 완료 .... 10 % 완료 .... 기타 등
3) 이상적으로 파일이 빌드되는 동안, 내 Ajax 호출은 1) 여전히 폴링 (및 div 업데이트)을하므로 사용자가 진행 상황을보기 시작합니다.
4) 다운로드가 완료됩니다. 나는 그것이 100 %를 보여줄 것이기 때문에이 시점에서 '진도 div'를 숨길 수 있습니다.
NB 진행률 div는 결국 진행률 막대로 바뀝니다.
문제는 fileDownload가 시작되자 마자 ajax가 1) 대기열에 들어가기 시작하고 4) 후에야 실행됩니다.
fileDownload 플러그인이 내 메인 페이지에서 ajax 호출을 차단할 것이라고 생각하지 않은 iframe을 사용한다고 생각하지만 그렇게 보입니다.
희망이 있습니다. 이 문제를 해결하는 방법에 대한 조언을 주신 분께 감사드립니다.
이 구성 요소와 ASP.NET MVC5에서 같은 문제가 발생합니다. 그 SessionStateAttribute 내 "진행"작업을 포함하는 컨트롤러를 장식하지만 내 진행 작업에 대한 호출은 파일 다운로드가 끝날 때까지 여전히 차단되었습니다. 같은 속성을 가진 두 컨트롤러를 모두 꾸밀 필요가 있습니까? 힘든 일입니다. –