Coder Social home page Coder Social logo

caretaker's People

Contributors

narcello avatar

Watchers

 avatar

caretaker's Issues

Dont call duplicate a query

  • If the user already dispatch a query of departments, get all docs and redux contais all departments, dont call again.
  • Maybe get when start aplication, or when required first time.
  • Maybe create another layer that stay beetwen view and db calls that stored calls, knows what is active or not and make updates in redux.
    • In this layer, all query and/or soa pass through a function that handle with error.
hoje eu tenho as partes de:
view(react)
db(soa e query)
state(redux)

quando eu abro uma página que precisa por exemplo da lista de departamentos eu faço:
1. no componente eu chamo a query que busca os dados no firebase
2. depois de buscar, dentro do then da query eu "seto" no redux
3. quando mudar o redux, meu componente recebe essa atualização.

Ok, funciona. Beleza.
Problemas:
1. A minha função que faz o get no banco ou cria o listener, ela própria faz dispatch no redux, ou seja, a minha função que se chama, por exemplo: getDepartments, ela na real faz o get e faz um dispatch no redux para alterar o state. Está acomplado, em TODAS minhas chamadas ao banco.

2. Eu tenho 3 telas que eu preciso da lista de departments. todas as telas quando eu entro eu "ligo o listener" do firebase, ou seja, já pego os departments, seto no redux, e se mudar algo no banco, altomaticamente muda no meu redux. Quando eu saio do componente, ou fecho ele, eu tenho que desligar o listener. Abro de novo, ligo. Fecho, desligo. E ai vai. Várias idas ao banco para buscar exatamente os mesmos dados. Isso é custo. 

SOLUÇÃO QUE PENSO:
Criar um objeto na minha aplicação que seja o meio entre a chamada da view e a query do db.
O que era assim: 

view --------call---------->queryDb
passa a ser:
view--------call------->ControladorDeQueries----------call------->queryDb

Onde nesse controlador eu tenha por exemplo: 
aciveQueries = [<querys que estao ativas>];

quando eu entrar numa tela e chamar o controlador e ele ver que essa query está ativa, eu não preciso chamar de novo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.