2012-03-02 3 views
1

서버가 PDF를 생성하기를 기다리는 동안로드하는 이미지가 있습니다. PDF가 생성되면 브라우저 대화 상자가 나타나고 로딩 이미지가 숨겨져 있어야합니다.Jquery 다운로드가 시작될 때까지 이미지로드

$.ajax({ 
    type: 'POST', 
    url: $(this).attr('href'), 
    success: function(response) 
    { 
    console.log(response); 
    $(".report-generator").submit(); 
    }, 
} 
}); 

그래서이 코드 종류의 ... 로딩 이미지가 표시되지만 파일이 사용자에게 전송되기 전에 단지 시간의 짧은 기간 동안 .. AJAX 호출이 종료 .. 노력하고 있습니다.

이 코드는 다운로드 메시지가 표시 될 때까지 아약스 기능

function initAjaxLoader() { 
    $(document.body).ajaxStart(function() { 
     $('#ajax-loader').show(); 
    }).ajaxStop(function() { 
     $('#ajax-loader').hide(); 
    }); 
} 

그래서 어떻게 AJAX 호출 "활성화"를 보관하지라고 지금까지 아약스 로더를 보여줍니다?

+0

자바 스크립트가 클라이언트 측에서 실행되기 때문에 활성 상태로 유지할 수 없습니다! –

+0

하지만 아약스가 대기하고 서버에서 respos (파일 전송)를 수신 대기 할 수 없습니까? – Mackelito

+1

그럴 수는 없지만, .pdf 생성을 "시작"한 후 20 초 동안 제한 시간을 설정 한 다음 .pdf를로드하는 두 번째 아약스를 수행 할 수 있습니다. 그러나 이것은 실제로 정말 엉터리입니다. –

답변

0
$.ajax({ 
    type: 'POST', 
    url: $(this).attr('href'), 
    success: function(response) 
    { 
    console.log(response); 
    $('#result').load('test.pdf', function() { 
     $('#ajax-loader').hide(); 
    }); 
    }, 
} 
}); 
+0

이것은 pdf 이미 생성되었습니다 ... 생성되기까지 약 10-20 초가 소요됩니다. – Mackelito