Domanda

Ho sviluppato un'applicazione a 3 livelli e ho un problema relativo al popolamento dei dati da un database. La mia applicazione ha una finestra che richiede dati di grandi dimensioni dal database e questo processo richiede molto tempo. (Il mio client è così lontano dal server e la sua connessione è di 128 KB / s).

Quindi ho pensato alla soluzione per risolvere questo problema. La soluzione è compilare x record di dati ogni anno. (ad esempio: popolare 10 record da visualizzare prima nell'interfaccia utente e quindi visualizzare più 10 righe ogni 5 secondi).

È una buona soluzione per risolvere questo problema? C'è un modo migliore per risolvere questo?

È stato utile?

Soluzione

Se è a scopo di visualizzazione, dovresti usare il paging. C'è una variazione di questo, in cui l'interfaccia utente prende la "pagina" successiva dei record quando l'utente tenta di accedere a più informazioni con la barra di scorrimento. Se devi aggregare i dati, fallo sulla query, in modo che tutti i dati non viaggino attraverso la rete. Se devi davvero / assolutamente ottenere tutti i dati e fare alcuni processi con esso, considera se o sarà mai troppo grande per caricarli tutti in una volta. In tal caso, afferrare blocchi di dati, eseguire processi correlati e quindi afferrare un altro blocco (così via). Indipendentemente da ciò, è necessario farlo con un approccio che non blocchi l'interfaccia utente (thread / operazioni asincrone).

Altri suggerimenti

Freddy mi ha battuto, ma ad esempio, noterai che molti visualizzatori di database popolano solo i dati richiesti nel campo visivo, quando usi le barre di scorrimento afferra automaticamente la pagina / vista successiva dei dati .

Se si pensa ai siti Web, quasi sempre Pagina i dati per non caricarli tutti in una volta.

È un'opzione per eseguire il caricamento lento (quindi caricheresti i dati su richiesta, non tutti in una volta)?

Forse se l'interfaccia utente dell'applicazione lo consente, mostra i record in più pagine.

Vorrei anche suggerire di utilizzare le chiamate asincrone per recuperare i dati in modo da non congelare l'app durante l'interrogazione (se la sua app desktop).

Se la sua app Web, considera l'utilizzo di AJAX.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top