PD
Bloqueio de tela com "Carregando..." em requisições longas
Fechado
No Adianti Framework, por default, apenas requisições POST tem a tela bloqueada com o famoso "Carregando..." enquanto a requisição não completa. Inicialmente por que são as requisições POST que realizam processamentos mais demorados.
Normalmente requisições GET são utilizadas apenas para carga simples de páginas, edição e exclusão de registros, que são requisições mais rápidas. Mas é possível adicionar o bloqueio de tela também para requisições GET. Entretanto se adicionarmos este comportamento à todas requisições GET, a todo instante a tela ficará bloqueando, o que é ruim. Portanto neste artigo ensinaremos a adicionar este comportamento somente quando a requisição demorar mais que 400ms.
Esta dica vem do amigo Matheus Agnes Dias, com quem trabalho em alguns projetos na Univates. Para entender melhor este artigo, antes é importante já ter lido o artigo "Novos eventos JavaScript para carga de páginas" (www.adianti.com.br/forum/pt/view_1069?novos-eventos-javascript-para-). Nesta solução, antes da carga iniciar (onBeforeLoad), é agendado um evento (showLoading) para ocorrer após 400ms, e a variável loading é definida como true. Quando a carga da página terminar (onAfterLoad), a variável loading volta para false. Caso os 400ms passem antes da carga da página ser concluída, o showLoading() será executado, caso contrário não.
app/lib/include/application.js
Normalmente requisições GET são utilizadas apenas para carga simples de páginas, edição e exclusão de registros, que são requisições mais rápidas. Mas é possível adicionar o bloqueio de tela também para requisições GET. Entretanto se adicionarmos este comportamento à todas requisições GET, a todo instante a tela ficará bloqueando, o que é ruim. Portanto neste artigo ensinaremos a adicionar este comportamento somente quando a requisição demorar mais que 400ms.
Esta dica vem do amigo Matheus Agnes Dias, com quem trabalho em alguns projetos na Univates. Para entender melhor este artigo, antes é importante já ter lido o artigo "Novos eventos JavaScript para carga de páginas" (www.adianti.com.br/forum/pt/view_1069?novos-eventos-javascript-para-). Nesta solução, antes da carga iniciar (onBeforeLoad), é agendado um evento (showLoading) para ocorrer após 400ms, e a variável loading é definida como true. Quando a carga da página terminar (onAfterLoad), a variável loading volta para false. Caso os 400ms passem antes da carga da página ser concluída, o showLoading() será executado, caso contrário não.
app/lib/include/application.js
loading = true;
function showLoading()
{
if(loading)
__adianti_block_ui('Carregando');
}
Adianti.onBeforeLoad = function()
{
loading = true;
setTimeout(function(){showLoading()}, 400);
};
Adianti.onAfterLoad = function()
{
loading = false;
__adianti_unblock_ui();
};
Boa Tarde,
Não entendi como faço para funcionar a mensagem de carregando quando utilizo a action de um data grid chamando uma função.
Olá Herbert Thiago, conseguiu utilizar a mensagem de carregando para uma action de um datagrid? Poderia me ajudar, estou precisando disso também?
Alexandre F. da Costa, Consegui como esta descrito no post, o interessante é que na hora não funciona, mas veio funcionar depois. Quando atualizei o framework, tinha esquecido deste detalhe, refiz, mas não apareceu ainda srsrsrsr.