Barra de Progresso com AJAX
Uma das necessidades que nos deparamos na hora de realizar projetos longos na web é indicar ao usuário o quanto é preciso esperar. Às vezes é bastante complicado criar um barra de progresso que mostre...
Uma das necessidades que nos deparamos na hora de realizar projetos longos na web é indicar ao usuário o quanto é preciso esperar. Às vezes é bastante complicado criar um barra de progresso que mostre o estado atual do processo de está sendo executado.
Uma forma de realizar essa tarefa é usando AJAX. Fazemos uma chamada AJAX que executa a ação, e quando o objeto AJAX tem o estado LOADING (readyState == 3), podemos obter a resposta do script chamado e passá-lo para mostrar o percentual da ação que está sendo realizada.
Para isso, desenvolveremos um script (res.php, por exemplo) que devolva a porcentagem seguida por um hífen. Por exemplo, quando passa por 1% será retornado pelo script "1-", cuando passar por 5% será retornado "1-2-3-4-5". Processando isso podemos saber, através do último número, o percentual já processado.
O PHP seria o seguinte:for($i=0; $i<10000000; $i++) {
if ($i%10000 == 0) echo ((int) $i/100000)."-";
flush();
}
E o JavaScript seria assim:function ajaxobj() {
try {
_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
_ajaxobj = false;
}
}
if (!_ajaxobj && typeof XMLHttpRequest!="undefined") {
_ajaxobj = new XMLHttpRequest();
}
return _ajaxobj;
}
function prueba () {
ajax = ajaxobj();
ajax.open("GET", "res.php", true);
ajax.onreadystatechange=function() {
if (ajax.readyState == 3) {
// Mostramos o percentual
var res = ajax.responseText;
res = res.split("-");
alert(res[res.length-2]);
} else if (ajax.readyState == 4) {
// Fim
alert("FIM");
}
}
// Enviamos algo para que o processo funcione
ajax.send(null);
}
Como não existe nada perfeito, e menos ainda o Internet Explorer, esse script só funcionou no Firefox, Opera, Safari e
Chrome.
Resposta em até 24 horas! (grátis)Dúvidas?
|
Jonathan Lamim Antunes Graduando em Sistemas de Informação pela UNISA/SP, e programador web da Fivecom - Soluções em web 2.0, uma empresa do grupo Rede Gazeta, afiliada da Rede Globo. |
Últimas matérias escritas pelo autor:
17/08 - Introdução à compressão GZIP de um sit...
02/08 - Imprimindo áreas isoladas de uma págin...
22/06 - Criando um Cliente para Twitter com PH...
17/06 - Twitter - Enviando posts para o Twitte...
15/06 - Twitter - Fazendo conexões com o Twitt...
13/06 - Twitter - Integrando API do Twitter, c...
10/06 - Twitter - Introdução à API do Twitter ...
08/06 - Amazon Product Advertising API
26/05 - Previsão do Tempo com a API do Google ...
20/05 - Inserindo o teclado virtual do Google ...
19/05 - Gerando PDFs com PHP e a classe FPDF -...
17/05 - Gerando PDFs com PHP e a classe FPDF -...
14/05 - Gerando PDFs com PHP e a classe FPDF -...
- jQuery Lazy Load: Carregamento de imagen...
O plugin Lazy Load é um plugin feito em javascript... - Indicador de qualidade de senha
Quando um usuário se registra em alguma aplicação ...






Imprimindo áreas isoladas de uma página com jQuery
jQuery Lazy Load: Carregamento de imagens com scroll
O que você procura para sua vida profissional?
O planejamento agrega valor
E-mail marketing em 140 caracteres
Novos iPods, novo iOS, novo iTunes e nova Apple TV
Conheça as 100 primeiras cidades atendidas pelo Banda Larga ...
Linus Torvalds diz que mercado já se rendeu ao Linux