O roteador de backbone ou a manipulação de exibição buscar dados e exibir o status de carregamento?

Em muitos lugares no meu aplicativo, o seguinte padrão acontece:

O usuário clica em alguma navegação de acionamento de linksDados precisam ser buscados para renderizar a exibiçãoO design da interface do usuário requer que um controle giratório de "carregamento" seja exibido enquanto os dados são buscadosQuando os dados são buscados, mostramos a exibição renderizada

Eu tentei os dois padrões de implementação a seguir:

Roteador lida com busca

O roteador informa a exibição do contêiner para mostrar o spinner de carregamentoO roteador carrega quaisquer coleções / modelosO roteador informa a exibição do contêiner para ocultar o spinner de carregamentoO roteador passa as coleções / modelos para a exibição e processa

Ver alças buscando

O roteador cria e renderiza a exibiçãoA visão busca as coleções e modelos que precisaQuando a visualização é renderizada pela primeira vez, ela mostra apenas o controle giratório de carregamento, pois os dados ainda estão sendo carregadosQuando os dados chegam, os modelos / coleções disparam eventos e a visão é vinculada àqueles, de modo que eles se renderizem novamente, ocultando o controle giratório de carregamento e mostrando a exibição completa

Eu não gosto de # 1 desde que o roteador se torna uma bola gigantesca de lógica de busca Modelo / Coleta e parece ter muita responsabilidade. # 2 parece uma melhor distribuição de responsabilidades (o roteador apenas decide qual visualização exibir, visualiza os dados que precisa buscar), mas faz com que a exibição seja um pouco mais complicada, já que é stateful agora.

O que a comunidade StackOverflow acha? 1, 2 ou alguma outra coisa?

questionAnswers(2)

yourAnswerToTheQuestion