Frage

Ich habe eine 3-Tier-Anwendung entwickelt, und ich habe ein Problem über Daten aus einer Datenbank bevölkern. Meine Anwendung hat ein Fenster, das große Daten aus der Datenbank und dieser Prozess eine sehr lange Zeit abfragt. (Mein Kunde ist so weit vom Server und die Verbindung zwischen ihm 128 KB / s).

Dann habe ich denke, für die Lösung dieses Problem zu lösen. Die Lösung ist x Datensätze von Daten jeder y sec füllen. . (ZB: bevölkert 10 Datensätze auf UI zuerst anzuzeigen, und dann weitere 10 Zeilen angezeigt wird alle 5 Sekunden)

Ist das eine gute Lösung, um dieses Problem zu lösen? Gibt es einen besseren Weg, dies zu lösen?

War es hilfreich?

Lösung

Wenn es für die Anzeige ist, sollten Sie mit Paging sein. Es ist eine Variation dieser, wo die Benutzeroberfläche die nächste „Seite“ von Datensätzen packt, wenn der Benutzer versucht, mehr Informationen mit der Bildlaufleiste zuzugreifen. Wenn Sie Daten aggregieren müssen, tut es auf der Abfrage, so dass die gesamten Daten reisen das Netzwerk nicht Trog. Wenn Sie wirklich / absolut müssen die gesamten Daten erhalten und einige Prozesse mit ihm zu tun, prüfen, ob es oder jemals zu groß sein wird, alles auf einmal zu laden. In diesem Fall, mit Haltestücken der Daten, führen bezogenen Prozesse, und dann eine andere chunk greifen (usw.). Unabhängig davon, müssen Sie es mit einem Ansatz zu tun, die nicht blockiert die UI (Fäden / asynchrone Operationen).

Andere Tipps

Freddy schlug mich, aber als Beispiel, werden Sie eine Menge von Datenbank-Zuschauern nur die Daten in dem Sichtfeld erforderlich füllen bemerken, wie Sie die Bildlaufleisten verwenden, es greift automatisch auf die nächste Seite / Ansicht von Daten .

Wenn Sie über Websites denken, werden sie fast immer die aktuellen Daten als nicht alles auf einmal zu laden.

Ist es eine Option, verzögertes Laden zu tun (so werden Sie Daten bei Bedarf werden geladen, nicht alle auf einmal)?

Vielleicht, wenn die Anwendung UI kann zulassen, zeigen Aufzeichnungen in mehreren Seiten.

Ich würde vorschlagen, auch asynchrone Aufrufe verwenden, um Daten abzurufen, so dass Sie die App nicht Freez, während (wenn seine Desktop-Anwendung) abfragt.

Wenn sein Web-App, betrachtet AJAX verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top