4
respostas

Cache local? :-/

Opa!

Gostaria de duas dicas, só o conceito mesmo e eu me viro...

1) Apos refatorar, refatorar e refatorar meu app que tinha 10 telas, tem apenas uma tela agora, mas estou com um "potencial problema" tudo é dinâmico, ou seja, o server manda tudo que a página necessita para renderizar, se estiver online OK mas se tiver offline.... antes de dar cabeçadas nisso gostaria de entender a melhor estratégia. irei rever a parte fala sobre cacho, não sei se foi no curso de Ionic ou de SPA.

2) Para enviar os pedidos eu gostaria de saber se a recomendação seria primeiro salva em cache local e depois envia ou tenta enviar e se der erro coloca em cache local, gostaria de entender quais as melhores práticas do mercado sobre esta

4 respostas

Boa tarde.

Pelo o que eu entendi, você esta querendo sair do padrão do Ionic, certo? Nesse sentido, infelizmente você cairá no limbo. Ionic define bem como as coisas devem ser estruturadas para funcionarem sem surpresas, toda vez que você se afasta dessa estrutura pede a capacidade do framework lhe dar uma resposta para o problema em questão e terá que buscar essas soluções por si.

Como eu não utilizo Ionic para criar aplicações web devido ao peso da app final gerado, não tenho muita experiência nessa abordagem. No entanto, a questão parece não tangenciar cache ou outra coisa, em SPA na criação de um bundle tudo o que a aplicação precisa já é disponibilizado nesse bundle. Tem que ver com sua mudança como você ensinará o Ionic a criar esse bundle para você (aliás eu pensei que esse já fosse o padrão dele).

Se você fez uma aplicação que carrega tudo sobre demanda, não vejo muito jeito. Por que só poderia estar em um "cache" algo que foi previamente carregado e se a internet estiver off, você cairá no mesmo problema. Veja a parte que lhe falei do bunde gerado com tudo que sua aplicação precisa.

Qual seria a sua sugestão para Mobile? Eu parti para o Ionic porque é realmente rápido fazer o app com uma qualidade top, depois se virar dinheiro nele ai contrata "cabra baumm", amanhã volto a mexer mais um pouco nisso, penso em fazer algo nesta linha:

Farei um proxy genérico, tudo que chamar API terá que passar por ele, no meu caso só tem um provider msm, mas farei desta forma, como se tivessem N providers chamando coisas... Sempre que retornar algo colocarei em um DB local, não sei como ainda, mas ele guardará as imagens e jsons de retorno, quando falhar a conex ele buscará do DB local, se ficar complicado jogo tudo dentro do APP msm para seguir com o projeto, eu to achando bem leve e rápido... fora o tempo de DEV achei realmente insano...

Minha sugestão é seguir o padrão do Ionic respeitado o princípio da programação chamado SIngle Responsability Principal. Cada página deve ser uma componente em separado porque cada um deles possui responsabilidades diferentes. Aliás, o próprio módulo de navegação do Ionic se encarregará de carregar esse ou aquele componente. Por padrão, Ionic gera um bundle com tudo que sua aplicação precisa sem precisar ser carregado dinamicamente. Não entendi porque esse comportamento padrão não o atende.

Você quer fazer cache para dados de uma API? É isso?

Na questão das responsabilidades esta OK é que antes eu tinha um componente e uma api para cada segmento de produto, eu acabei juntando tudo em apenas uma api e criei um campo json na minha tabela que serve como coringa para tratar as diversidades das características dos produtos, a pergunta inicial do menu era para não ter que entrar na pagina de produtos e escolher a categoria do produto, acabei resolvendo isso usando o label do menu, o que eu preciso ver agora é a melhor abordagem para fazer este cache de coisas que vem de fora... hoje não terei mais como mexer nisso, mas olharei no fds

vlw