Frage

Ich benutzte binden alle GridViews, DetailViews usw. auf meiner Seite ein ObjectDataSource verwenden (es sei denn, es nicht möglich war, dies zu tun). Vor kurzem habe ich begonnen programmatisch meine contols Bindung alle. Das finde ich viel sauberer und einfacher, auch wenn einige nicht zustimmen kann.

Die Bindung mit einem ObjectDataSource offensichtlich hat es Vor- und Nachteile, ebenso wie es programmatisch zu tun.

Say I binden ein Gridview programmatisch (z GridView1.DataSource = SomeList), wenn ich Seite auf dem Gridview zu ändern, habe ich dies auch Code. Jedes Mal, wenn die Seite ändert Ich habe wieder Anruf GridView1.DataSource = SomeList. Offensichtlich mit einem ObjectDataSource brauche ich nicht, dies zu tun. Ich bleibe normalerweise mein SomeList Objekt in das Viewstate so, wenn ich Seite ändern Ich brauche nicht die Datenbank jedes Mal zu treffen.

Meine Frage ist: Ist das, wie die Object funktioniert? Hält sie es die Daten in der Viewstate speichern und nicht drücken Sie die Datenbank wieder, wenn Sie die .Select Methode aufrufen? Ich mag, um zu versuchen und die beste Leistung aus meiner Anwendungen und drücken Sie die Datenbank so wenig wie möglich zu bekommen, aber ich weiß nicht wirklich wie die Idee, eine riesige Liste in der Viewstate speichern. Gibt es einen besseren Weg, dies zu tun? Ist das Caching pro Benutzer eine gute Idee (oder möglich)? Soll ich die Datenbank jedes Mal traf nur statt in der Viewstate meine riesige Liste zu speichern? Ist es manchmal besser, um die Datenbank zu treffen als Viewstate zu benutzen?

War es hilfreich?

Lösung

Ist es speichern sie die Daten in der Viewstate und nicht drücken Sie die Datenbank wieder, wenn Sie die .Select Methode aufrufen?

Nein es ist nicht speichern Sie die Daten in Viewstate . Nach Ansicht Zustand gridview und andere ähnliche Listen, speichert den allgemeinen Status, zB die Sortierspalte, die Seite, die Gesamt-Seiten, den Steuerzustand, nicht aber die Daten.

Ist das Caching pro Benutzer eine gute Idee,

Das Caching pro Benutzer auf Server-Seite außer nicht so gute Idee ist, wenn das Caching ist zuletzt für ein paar Minuten nur oder / und die Daten, die Sie Cache gehen ist sehr klein. Wenn Sie Cache pro Benutzer große Menge von Daten für längere Zeit nicht wachsen sie zu viel besonders, wenn ein Benutzer beginnt, eine Menge Seiten zu lesen, dass Sie am Ende das gleiche Problem haben.

Jetzt haben Sie eine große Menge an Daten zu zeigen, dass aus der Beziehung von vielen Tabellen kommen, dann vielleicht besser ist, das volle Verhältnis der Tabellen zu „einem flachen Tisch“ zwischenzuzuspeichern.

Soll ich nur die Datenbank jedes Mal trifft, anstatt die Speicherung meine riesige Liste in der Viewstate?

Dies ist abhängig auch davon, wie schnell haben Sie die Lektüre Ihrer Daten zu entwerfen. Für mich ist besser, die Viewstate klein zu halten, und halten es nur Informationen, dass Sie die Aktionen auf Ihrer Seite machen müssen, und nicht die Daten.

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