Arquivo da tag: abstração

Abstraindo Multiplas chamadas jQuery (Ajax)

Abstraindo Multiplas chamadas jQuery (Ajax)

Quando se tem várias chamadas AJAX (jQuery) na mesma página, ou projeto, fica mais fácil abstrair as chamadas de forma que as chamadas na página diminuam a complexidade e possibilidade de erro. Para tal, pode-se criar um método Generico de acordo com o tipo de submissão ajax. Neste caso, usa-se post:

  function  Post(method,  datanames,  data,  callback)  {
                        var  datastring  =  "";

                        var  size  =  $(datanames).size();

                        if  (datanames  !=  null  &&  data  !=  null)  {
                                if  (size  >  0)  {
                                        $(datanames).each(function  (index,  value)  {
                                                datastring  +=  value  +  ":'"  +  data[index]  +  "'";
                                                if  (index  <  size  -  1)  datastring  +=  ",";
                                        });

                                }  else  datastring  =  datanames  +  ":'"  +  data  +  "'";
                        }

                        var  response  =  $.ajax({
                                type:  "POST",
                                url:  page  +  method,
                                data:  "{  "  +  datastring  +  "  }",
                                contentType:  "application/json;  charset=utf-8",
                                dataType:  "json",
                                success:  function  (d)  {
                                        callback(d);
                                }
                        });
                }

Note que os argumentos precisam ser processados, por isso temos que fazer algumas validações no código.

Após a criação do método, é possível fazer uma chamada mais simples, de qualquer outra parte do projeto:

  
  //Nova  tabela  completa
                        $("#btnNovaTabela").click(function  ()  {
                                var  nome,  sobrenome,  pontos,  method;

                                nome  =  $("#txtNome").val();
                                sobrenome  =  $("#txtSobrenome").val();
                                pontos  =  $("#txtPontos").val();
                                method  =  "NovaTabela";

                                var  args  =  [nome,  sobrenome,  pontos];
                                var  argnames  =  ["nome",  "sobrenome",  "pontos"];

                                Post(method,  argnames,  args,  function  (response)  {
                                        $("#conteudo-dinamico-table").append(response.d);
                                        $("input").each(function  ()  {  $(this).val("");  });
                                });
                        });

Faça o download  do código deste exemplo

Faça o download  do código pronto para rodar (unzip em C:\)