Msg Carregando com Jquery

Pessoal

Crie uma função com jquery para quando eu apertar um botão eu abro uma mensagem e aparece a imagem carregando… blz…

Só que… quando tenho o retorno do servlet, não sei como retirar essa imagem e mensagem de carregando.



		<span id="MsgAguarde" style="display:none; font-size:11px;">
			<img src="./img/loading.gif" alt="Aguarde.." /><br />
			Aguarde...
		</span>


<div id="btnBaixar"><a href="javascript: if (confirm('Deseja Realmente Gerar a Planilha?')) {alert('Ao clicar em OK, Aguarde Gerar o Relat&oacute;rio'); window.location.href='ServletMedGraf?dadosMedGrafRetorno=${dadosMedGrafRetorno}&v=${v}'} else { void('') };"><input type="button" onclick="disabled = true" id="btnBaixarArq" value="Baixar Arquivo"></a></div>


$().ready(function () {
		$('#btnBaixarArq').show();
		$('[id$=btnBaixarArq]').click(function () {
			$('#MsgAguarde').show();

		});

	});



tentei usar o jstl para setar no get (dentro do servlet) para verificar se está diferente de nulo ai eu enviaria outro comando via jquery para esconder a mensagem… mas não estou conseguindo:

Testes:

[code]

// SETO NO SERVLET ASSIM: request.setAttribute(“carregando”, “CARREGADO”);

<c:when test="${ carregando eq null }">
	<span id="MsgAguarde" style="display:none; font-size:11px;">
		<img src="./img/loading.gif" alt="Aguarde.." /><br />
		Aguarde...
	</span>
</c:when>
    <c:when test="${ carregando eq 'CARREGADO' }">
   	<script type="text/javascript">
   	$().ready(function () {
   		$('#MsgAguarde').hide();
   		
   	 });
   	alert("HERE");
	</script>
</c:when>

</c:choose>[/code]

Na verdade eu queria tentar fazer uma ação no botão com jquery para enviar os dados (que eu não sei como pegar os parâmetros por exemplo dadosMedGrafRetorno=${dadosMedGrafRetorno}) para o servlet e tratar essa da imagem com isso. e não a gambiarra que estou fazendo com a href

Tentei algo como

Usei o "inspecionar elemento do chrome, e ele acusa que as variáveis não estão preenchidas, então não funciona a variável dataString

Consegui assim:

	var dataString ={"dadosMedGrafRetorno":'${dadosMedGrafRetorno}',"v":'${v}',"dataIni":'${dataIni}',"dataFin":'${dataFin}',"horaIni":'${horaIni}',"horaFin":'${horaFin}'};
	$().ready(function () {
        $('[id$=btnBaixarArq]').click(function () {
        	$('#MsgAguarde').show();
            $.ajax({
                type: "GET",
                url: "ServletMedGraf",
                data: dataString,
                contentType: "application/json",
                async: false,
                success: function (data) {
                    $("#response").html(data.d);
                    $('#MsgAguarde').hide();
                }

            });
        });
    });	

Só que não está apresentando a imagem, chamando o #MsgAguarde e também, não está retornando o arquivo para salvar…

Se eu tiro esse item (async: false,) aparece a imagem… mas quando da o tempo de retorno do arquivo, ele não retorna o arquivo, mas some a imagem corretamente.

Assim que retorno o arquivo do servlet:

		    		response.setHeader("Content-Disposition", "filename=" + arq.getName());
		    		response.setContentType("application/vnd.ms-excel");
		    		ServletOutputStream out;
		    		out = response.getOutputStream();
		    		FileInputStream fin = new FileInputStream(arq);
		    		
		    		BufferedInputStream bin = new BufferedInputStream(fin);
		    		BufferedOutputStream bout = new BufferedOutputStream(out);
		    		int ch =0;
		    		while((ch=bin.read())!=-1)
		    		{
		    		bout.write(ch);
		    		}
		    		
		    		bin.close();
		    		fin.close();
		    		bout.close();
		    		out.close();
		    		arq.delete();
		    		
		    		}  
		        }