Skip to main content

Exibindo processo que ocorrem durante o program para o usuário

Hoje veremos como exibir para o usuário quais os passos que o programa faz durante um processo referente a regra de negocio.
A finalidade é mostrar o que esta sendo feito pois as vezes o program pode demorar um pouco para responder devido a um processo na maquina ou até um envio de e-mail.
Crie um novo WebApplication no visual Studio.

Na pagina Default.aspx da aplicação vamos colocar alguns campos simples para simular um formulário.
Ex:
<style type="text/css">
    .campo{
padding:5px;
        float:left;    
    }
</style>    
<script language="javascript" type="text/javascript">
    
    function RespostaServidor(ResultString) {
        var result = document.getElementById("result");
        result.innerHTML = ResultString;
    }

    function SalvarDados() {
        var form = new GetForm()
        PageMethods.Salvar(form, RespostaServidor);
        PageMethods.EnviarEmail(RespostaServidor);
        PageMethods.Concluir(RespostaServidor);
    }

    function GetForm() {
        this.Nome = $get("txbNome").value;
        this.Telefone = $get("txbTelefone").value;
        this.Email = $get("txbEmail").value;
    } 
</script>
<div class="campo">
Nome
<input id="txbNome" type="text" />
    </div>
<div class="campo">
Telefone
<input id="txbTelefone" type="text" />
    </div>
<div class="campo">
E-mail
<input id="txbEmail" type="text" />
    </div>
<div>
<input onclick="SalvarDados();" type="button" value="Salvar" />
        <span id="result"></span>
    </div>

A classe JavaScript "GetForm()" é um modelo para capturar os dados do formulário, e é recebida pelo C# no tipo "Dictionary<string,string>".
Criei um WebMethod para cada ação que será executada pelo servidor e as utilizei na função javascript "SalvarDados()" que por sua vez armazena a resposta do servidor em uma outra função "RespostaServidor(ResultString)" apresentando a resposta do webMethod na tag <span id="result"></span>.

Para simular o tempo de processo no servidor utilizei Thread.Sleep(3000);
Veja na listagem a baixo como ficaram os webMethods:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using System.Web.Services;

namespace TesteAssincronoMetodos
{
    public partial class _Default : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
           
           
        }
        public string PublicRetorno(Dictionary form, string text)
     {

            switch (text)
            { 
                case "Inicio" : text = "Salvando dados do usuário "+form["Nome"]; break;
                case "Enviando Email...": text = "Enviando Email " + form["Email"] + "..."; Thread.Sleep(3000); break;
                case "Concluido": Thread.Sleep(3000); break;
            }
           
            return text;
     }

        #region WebMethods
        [WebMethod]
        public static string Salvar(Dictionary jsForm)
        {
            Form_ = jsForm;
            string msg = new TesteAssincronoMetodos._Default().PublicRetorno(jsForm,"Inicio");
            return msg;
        }
        [WebMethod]
        public static string EnviarEmail()
        {

            string msg = new TesteAssincronoMetodos._Default().PublicRetorno(Form_, "Enviando Email...");
            return msg;
        }
        [WebMethod]
        public static string Concluir()
        {
            string msg = new TesteAssincronoMetodos._Default().PublicRetorno(null,"Concluido");
            return msg;
        }
        #endregion

        public static Dictionary Form_ { get; set; }

    }
}

É isso ai galera qualquer duvida ou sugestão basta entrar com contato.

Comments

Popular posts from this blog

Vue.js, React.js ou angular. O que escolher?

As estruturas JavaScript estão se desenvolvendo em um ritmo extremamente rápido, o que significa que hoje temos versões atualizadas frequentemente do Angular, ReactJS e de outro player neste mercado - Vue.js. Analisando o número de posições abertas em todo o mundo que exigem um conhecimento específico de um determinado framework. Como fonte, Indeed.com  chegando a seguinte distribuição de acordo com mais de 60.000 ofertas de emprego. Levando em conta os dados a seguir, será apresentado as principais vantagens e desvantagens de cada framework frontend para ajudar os profissionais de tecnologia ou engenheiros a escolher o melhor para suas necessidades de desenvolvimento. Prós e contras do angular Angular é uma estrutura de MVVM super-heróica de JavaScript, fundada em 2009, que é incrível para a criação de aplicativos da Web altamente interativos. Benefícios do Angular  Novos recursos como RXJS aprimorado, compilação mais rápida (em menos de 3 segundos),...

Criando um filtro de busca customizável com JavaScript funcional

Tutoriais utilizando bibliotecas e frameworks para state management se tornaram comuns. Apesar disso, já que muita gente usa muitos frameworks diferentes, muitas vezes precisamos falar sobre a plataforma que permite isso tudo: a odiadíssima ferramenta que é o JavaScript, na sua forma mais pura — conforme descrito com documentações excelentes como a da MDN . Esse tutorial também pode ser útil para quem está iniciando em JavaScript e desenvolvimento em geral já começar com alguma ideia do que é programação funcional. O termo está se tornando popular e quem não subir nesse barco pode ficar para trás em pouco tempo. Não vamos adentrar nos detalhes do que é programação funcional neste artigo — isso é assunto para outras horas de conversa. Aqui, ficaremos no rápido e simples: alcançar nosso objetivo, evitando mutações dos dados e estado global. Iniciando o projeto Pelo bem da simplicidade, vamos manter tudo num único arquivo, que vai ter essa cara: <!DOCTYPE HTML> ...

Posts e consultas no twitter pelo windows phone 7 part 2 de 2

No artigo anterior ( Posts e consultas no twitter pelo windows phone 7 part 1 de 2 ) no vimos como construir uma aplicação no windows phone 7 que faça consultas no twitter utilizando o api do twitter; Neste artigo vamos tentar construir nesta mesma aplicação algo que o usuário possa fazer o login no twitter, visualize seus posts e adicione novos. No passo anterior no menu da aplicação nos deixamos um item chamado "login" que servira pra redirecionar para uma tela que o usuário possa efetuar o login no twiter; Para que essa parte da aplicação funcione  precisamos registrar nossa aplicação no twitter; Acesse dev.twitter.com . A aplicação deve ser to tipo Browser e a Callback URL informada, essa é uma das exigências do twitter, como nos vamos utilizar a URL do google( http://www.google.com ). Apos o registro da aplicação  o twitter retorna as url's necessárias para as transações. Para conseguirmos buscar e enviar informações no twitter vamos util...