Frage

Ich habe einige Tabellen in meiner Datenbank mit über 7K Reihen und ich muß macht einen Bericht über die Website (asp.net) mit benutzerdefinierter Formatierung, Pivot-Tabelle wie Details.

Was ist die beste Lösung für diesen, weil, wenn ich zum Beispiel Repeater mit dieser Datenmenge `s sehr langsam machen.

Vielen Dank für die Beratung

War es hilfreich?

Lösung

Wenn Sie nicht Paging wollen, dann werden Sie wahrscheinlich einige AJAX müssen Zeilen holen, wie Sie blättern, und möglicherweise Zeilen entfernen, da sie aus der Sicht bewegen, wenn Sie Speicher sparen müssen.

Andere Tipps

Schalten Sie den Ansichtszustand

Es sei denn, Sie brauchen es

Page.EnableViewState = false;

Split der Tabelle

Wenn Sie auf die Paging-Route nicht nach unten gehen Sie auch eine große <table> in mehrere kleinere <table>s Aufspalten versuchen könnte. (Es wird verwendet, um den Fall zu sein, dass der Browser nur einen Tisch machen kann, nachdem er die letzte </table> gesehen hat. Ich bin nicht sicher, ob dies noch der Fall ist, aber auf jeden Fall einen Versuch wert)

Sie sich von Mist befreien

Stellen Sie sicher, dass Sie CSS verwenden und mit Sachen nicht wie

<td width="40" valign="top"> 50 </td>
<td class="a"> 50 </td> <!-- better  -->
<td>50</td> <!-- best  -->
<!-- if you need to specify a width, you only need to do it in one row  -->

Denken Sie daran, crap * 7000 = alot of crap

Reduce Seitengröße um jeden Preis

Manchmal ist das Problem nicht auf der Seite zu machen, aber es ist das Herunterladen, die das Problem verursacht, so überprüfen Sie, dass aus.

Verschachtelte Tabellen wirklich weh tun

Nuff said

Ich würde vorschlagen, Paging verwendet wird.

eine typische Zeile wie diese Betrachtet man:

<tr><td>ID</td><td>Some data</td><td>More and more data</td></tr>

Jede Zeile hat 66 Zeichen, so mit 7k Reihen würde fast 500k im Wert von Daten zusammenzufassen. Und das ist eine Menge für einen Web-Display.

Wenn Sie also wirklich alles auf einer Seite angezeigt werden sollen, halten Sie es minimal:

  • Sie keine Leerzeichen verschwenden
  • Verwenden Sie keine Attribute nicht, es sei denn völlig unvermeidbar
  • Benutzen Sie keine class = „“, wenn Sie nicht verschiedene Klassen für verschiedene Zeilen haben Sie (gilt die gleiche Klasse auf alle Zeilen statt)

Wie auch immer, je nach dem Zielcomputer + Browser, das ist wirklich slooow bekommen könnte, wenn Ihre Zeilen größer sind.

Sie erwähnen nicht, welche Sprache Sie verwenden, aber die Erwähnung eines Repeaters schlägt ASP.Net? Meiner Erfahrung nach Daten zu einem Datagrid-Bindung ist schneller auf größere Datenmengen.

Aber, muß ich fragen, warum Sie wollen würden, auf einer Webseite, die viele Daten angezeigt werden soll. Kein Benutzer in ihrem rechten Verstand würde sitzen und blättern Sie durch, dass viele Daten und findet es nützlich. Beschränken Sie Ihre Daten zu relevanten Daten, die für den Benutzer von Nutzen sein werden -. Vorfilterung weniger als 100 Zeilen

IMO, ein Bericht mit dieser Datenmenge ist nutzlos, egal das Format, aber wenn man absolut alles für einen gedruckten Bericht oder solche haben muß, sollten Sie stattdessen ein PDF-Dokument auf dem Server zu erzeugen.

Auch ein eigene Reporting-Tool für so viele Daten versuchen. Meine Firma ein Werkzeug machen namens RSinteract (schamloser Stecker). Das nutzt SQL Server Reporting Services.

Wenn Sie nur die Daten-Dump wollen. Ich nehme an dem Browser blockiert, während es das macht, oder während der Abfrage ausgeführt wird. Wenn Sie wissen, was Ihr Ziel-Browser ist ... könnten Sie einen „Mehr ...“ Link zu verwenden, um den nächsten Satz von Daten zu erhalten, und ein 1000 Zeilenlimit hat. Dies würde jedoch Auswirkungen auf Strg + F suchen. Ähnlich wie Paging, sondern die Verantwortung in die Hände des Benutzers setzen, denke ich.

Wenn Sie wirklich für die „beste“ Lösung für eine „Web-App“ suchen, würde ich vorschlagen, eklatant, dass Sie Flash / Flex für die effiziente, dass viele Zeilen Rendering verwenden. Bei der Verwendung von etwas über grundlegende HTML ist keine Option, dann würde ich vorschlagen, dynamisch neue Zeilen beim Scrollen des Nutzers zu holen als @mbeckish vorgeschlagen ...

I verwendet Dev Express Grids für einen Kunden mit einer Berichterstattung zu beschäftigen und sie lieben es (obwohl ich lieber meine eigenen gerollt hätte haben!)

Siehe http://demos.devexpress.com/ASPxGridViewDemos/

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