Rest e ajax

Eu sou bem novo em frontend, então se eu falar alguma baboseira por favor fale, estou aprendendo e gostaria de aprender certo kkkkk.
Então… estou fazendo uma página administrativa, com gráficos e relatórios, só que com login e preciso que ela seja alimentada por um webservice com json, apenas para fins de aprendizado.
Não sei se essa abordagem e boa, talvez não seja uma boa prática ou pode ser uma, fazendo a pagina só com html css e js pensei que ficaria as camadas bem dividias, e de fácil manutenção, até porque preciso do webservice pra alimentar mobile e possivelmente outras páginas com layouts diferentes. Iria usar ajax para carregar tudo, os gráficos e os relatórios, eles estão todos na mesma página, ou seja, teria que carregar tudo de uma vez, são 11 gráficos e um que o usuário montar pra ver as informações que ele quiser… além dos gráficos tem mais 3 tabelas, duas de 10 linhas e uma com várias linhas quebradas em pagumas de 20.

Queria saber de voces qual a melhor abordagem? Uso o ajax pra carregar tudo de uma vez, seria 7 Posts ou mais talvez… se for, qual a melhor maneira de implamentar e se não for, qual e como?

7 POSTS ? Pelo que vc disse, vai vai alimentar a tela, logo vc tá indo recuperar alguns recursos, portando GET, e ai vc vai pode dividir essas informações nos seus métodos.
Ou se vai carregar isso após o login, talvez nem necessite de ajax.

2 curtidas

Tenha uma coisa em mente

Ajax é uma ferramenta. vc pode fazer muitas coisas com ela porem isso pode não ser a melhor ferramenta.

Quando vc diz que tem tabelas e graficos e vai carregar por ajax, eu ate imagino a sua inspiração, de fato existem alguns paineis de administração que carregam os elementos assim. Vc tem, no entanto, mais de uma abordagem para isso.

Uma delas é o famoso embed, que nada mais é do que um codigo javascript que vc carrega na pagina e ele sabe carregar e embutir aquele elemento (um exemplo é o player do youtube ). As vezes vc precisa criar uma determinada div, com um determinado id, e chamar uma função javascript que vai carregar o que vc quer.

ai vc ja tem um padrão, algo como


<div id="container">

  <div id="grafico"></div>

  <div id="tabela"></div>

</div>

<script>
 QQcoisa.carregaGrafico({ "id": "grafico", "tipo": "pizza", "dados":"asdhajdh", "size": 1000});
 QQcoisa.carregaTabela( ... );
</script>

eu fui didatico. vc pode criar algo mais complexo e dinamico que isso, criando e deletando as divs e elementos no DOM ao seu bel prazer.

E perceba que isso é uma sugestão. nem sempre isso faz sentido. agora dependendo de como vc programar isso, é bem provavel que vc perceba que o browser consegue fazer apenas alguns requests simultaneos entao se vc carrega dados e faz processamento, pode ser que a aparencia da pagina seja “lento”. Tem que avaliar a performance com muitos elementos antes de sair “otimizando” e as vezes pode ser tão simples quanto criar N subdominios de forma a fazer mais requests em paralelo.

Agora, isso faz sentido? não sei. isso me cheira a algo do ano passado. hoje em dia existem tecnologias como react/redux que podem te dar uma abordagem diferente.

a questão é vc focar no que vc precisa resolver. vc tem que suportar mobile e desktop? então faça funcionar bem no mobile, o desktop sera consequencia.

vc precisa fazer coisas complexas? veja o balanço entre fazer coisas no backend e frontend ( plotar um grafico ẽ sempre uma surpresa, com poucos pontos e linhas pode ser rapido, mas com muitos pontos talvez fazer isso em javascript possa ser proibitivo ).

boa sorte.

1 curtida

acho que me precipitei quanto a isso, vou fazer um post, que vai trazer tudo de uma vez, e carregar tudo de uma vez

o mobile ainda nao esta em desenvolvimento, vou trabalhar nele só mais tarde, ate porque ainda nem vi api de charts pra mobile kkk, preciso fazer logo o web, e como eu respondi pro igomes se fosse um post com ajax e trazer todas as informações de uma unica vez, seria melhor? trado tudo e vou carregando conforme o usuario for descendo porque se voce pensar, e bem pouco, e uma string pra setar toda de uma vez dentro de uma tag ou um span ou uma cor… vai vir no maximo 3 linhas pra cada grafico e ja era, so os relatorios que são mais complexos, com mais informações ai talvez fosse melhor fazer outra consulta pra nao pegar uma lista gigantesca e carregar logo as informações que estão na cara do usuario.

Renato

responder essa pergunta demanda de muita responsabilidade.

seria melhor? vc precisa ter um objetivo em mente. cada vez que vc adiciona um componente novo vc adiciona complexidade, tempo, linhas de codigo, etc. quanto mais complexo, mais bugs pode ter então vc precisa testar bem.

o que o usuario quer? ele quer as informações carregas em um instante? que informações ele quer? sera que vc não esta perdendo tempo pensando em problemas que vc ainda não tem?

são perguntas como essa que eu me faço todo o dia. o que ajuda é vc ter criterios claros.

por exemplo vc fazer uma super interface cheia dos ajaxes custa X e vai estar pronto em Y dias. de repente eles querem isso pra ontem. ou não tem grana pra fazer assim.

vc precisa pautar as decisões em numeros. seja uma pagina com ou sem ajax, vc precisa de um monitoramento, por exemplo, que diga quanto tempo isso demora, quanto as pessoas usam, etc. vc diminui os achismos.

não é incomum a gente quebrar a cabeça com um problema que a gente quer resolver. de repente esse não é o problema a ser resolvido agora. de repente antes de fazer um ajax e carregar 7 graficos vc deva deixar os 7 graficos perfeitos.

sim, é evasiva a minha pergunta. por que vc não sabe se as interações que vc vai propor ao seu usuario serão as melhores. vc precisa de mais dados para tomar essa decisão com responsabilidade.

por que falo tanto nisso: existem varias tecnicas pra verificar se o impacto que vc adicionou em uma interface foi interessante. por exemplo os testes A/B

consiste em vc apresentar para os usuarios duas versões da interface e ai vc mede o quanto eles usaram. em geral um usuario X vai sempre ver a mesma interface e vc pode escolher a divisão como sendo 80% / 20% - pra ser util vc precisa preparar a interface para ser possivel A/B e poder coletar e estudar as metricas.

se vc não tem tempo, da uma lida. tudo o que estou lhe falando vai te servir pra vc olhar hoje e dizer “Aha… vou fazer assim.” e nos proximos meses vc vai adaptando conforme algum criterio que vc escolheu, em pequenas mudanças incrementais.

de repente ninguem da valor aos relatorios e vc pode usar para experimentar coisas. só experimente com cuidado.

boa sorte

Só não entendi porque quer fazer um post ainda, mas enfim a implementação é sua