Question

J'ai développé une application à 3 niveaux et le problème de remplissage des données d'une base de données me pose problème. Mon application a une fenêtre qui interroge des données volumineuses dans une base de données et ce processus prend beaucoup de temps. (Mon client est si éloigné du serveur et la connexion est de 128 Ko / s).

Ensuite, j'ai réfléchi à la solution pour résoudre ce problème. La solution est de peupler x enregistrements de données toutes les y secondes. (par exemple: remplissez 10 enregistrements à afficher en premier sur l’UI, puis plus de 10 lignes toutes les 5 secondes).

Est-ce une bonne solution pour résoudre ce problème? Y a-t-il une meilleure façon de résoudre ce problème?

Était-ce utile?

La solution

Si c'est à des fins d'affichage, vous devriez utiliser la pagination. Il existe une variante de celle-ci, où l'interface utilisateur saisit la "page" suivante. des enregistrements lorsque l'utilisateur tente d'accéder à plus d'informations avec la barre de défilement. Si vous avez besoin d'agréger des données, faites-le sur la requête afin que l'ensemble des données ne circule pas sur le réseau. Si vous devez vraiment / absolument obtenir toutes les données et effectuer certains processus, déterminez si elles seront ou ne seront jamais trop volumineuses pour être chargées en une fois. Dans ce cas, récupérez des morceaux de données, exécutez les processus associés, puis récupérez un autre morceau (etc.). Quoi qu'il en soit, vous devez le faire avec une approche qui ne bloque pas l'interface utilisateur (threads / opérations asynchrones).

Autres conseils

Freddy m'a battu, mais à titre d'exemple, vous remarquerez que de nombreux visualiseurs de bases de données ne renseignent que les données requises dans le champ de vision. Lorsque vous utilisez les barres de défilement, il saisit automatiquement la page suivante / la vue des données. .

Si vous pensez aux sites Web, ils vont presque toujours pager les données pour ne pas les charger toutes en même temps.

Est-ce une option de chargement paresseux (vous chargeriez donc des données à la demande, pas toutes en même temps)?

Peut-être, si l'interface utilisateur de l'application le permet, afficher les enregistrements sur plusieurs pages.

Je suggérerais également d'utiliser des appels asynchrones pour récupérer des données afin de ne pas figer l'application pendant la recherche (si son application de bureau).

Si son application Web, envisagez d’utiliser AJAX.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top