Pergunta

Eu desenvolvi uma aplicação de camada 3 e eu tenho um problema sobre como preencher os dados de um banco de dados. Meu aplicativo tem uma janela que consulta de dados grandes do banco de dados e este processo demorar um tempo muito longo. (Meu cliente é tão longe de servidor e conexão entre é de 128 KB / s).

Então eu acho que a solução para resolver este problema. A solução é registos x populada de dados de todos os y seg. (Por exemplo: Preencher 10 registros para exibir na UI primeiro e, em seguida, exibir mais de 10 linhas cada 5 segundos).

Esta é uma boa solução para resolver este problema? Existe uma melhor maneira de resolver isso?

Foi útil?

Solução

Se é para fins de exibição você deve estar usando paginação. Há uma variação deste, onde a interface do usuário agarra a "página" ao lado de registros quando o usuário tenta acessar mais informações com a barra de rolagem. Se você precisa de dados agregados, fazê-lo na consulta, por isso toda a dados não viaja através da rede. Se você realmente / absolutamente tem que obter os dados inteiros e fazer alguns processos com ele, considere se é ou sempre será grande demais para carregar tudo de uma vez. Nesse caso, pedaços da garra dos dados, executar processos relacionados, e depois pegar outro pedaço (assim por diante). Independentemente disso, você precisa fazê-lo com uma abordagem que não bloqueia a UI (threads / operações assíncronas).

Outras dicas

Freddy chegou antes de mim, mas como um exemplo, você verá um monte de espectadores de banco de dados preencher apenas os dados necessários no campo de visão, como você usar as barras de rolagem que agarra automaticamente a página seguinte / vista de dados .

Se você pensar sobre sites, eles quase sempre Página os dados como não carregar tudo de uma vez.

É uma opção para fazer o carregamento lento (assim você seria o carregamento de dados sob demanda, não todos de uma vez)?

Talvez se o aplicativo UI pode permitir, mostram registros em várias páginas.

Eu também sugiro usar chamadas assíncronas para recuperar dados para que você não freez o aplicativo ao consultar (se o seu aplicativo de desktop).

Se seu aplicativo web, considere usar AJAX.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top