2017-08-12 8 views
0

Ich verwende Yii2 GridView, um Daten von ActiveDataProvider anzuzeigen, die Geschwindigkeit von es funktioniert gut, wenn seine Paginierung aktiviert ist. Aber wenn man alle Zeilen anzeigt, bleibt alles stehen.Yii2: GridView Geschwindigkeitsoptimierung

Ich verwende einen normalen Controller-> View Flow.

Added Database Caching also Normal Controller

+0

Wie viele Zeilen haben Sie in Ihrer Ergebnisabfrage? – scaisEdge

+0

Es hängt davon ab, dass einige Tabellen so groß wie 90.000 Datensätze oder 20.000 Datensätze oder sogar sehr langsam bei 1.300 Datensätze – TechMafioso

+0

dann beachten Sie, dass ohne Paginierung alle Zeilen abgerufen und gerendert werden .. so ist die Frage, warum Sie wollen Show von 1300 bis 90000 Aufzeichnungen ???????? – scaisEdge

Antwort

0

Ohne Paginierung al die Reihen von der ActiveDataProvider geholt werden und dy Grid gemacht ..

unabhängig von Leistung. Dies ist nicht hilfreich in Bezug auf eine akzeptable Benutzererfahrung.

Wenn Sie Client-Seite der Gesamtheit der Daten benötigen, ist es ratsam, die Verwendung des ActiveDataProvider und der Gridview zu vermeiden, und alternativ verwenden Sie einen SQL-Befehl Creat mit createCommand(....); und SQL und beschränken Sie das Ergebnis als a JSON-Struktur zur Verarbeitung des Clients/der Seite

+0

Mein Problem ist, dass manchmal, wenn der Benutzer alle Zeilen laden möchte (aus irgendeinem Grund), ich eine Jquery UI habe, die beispielsweise die Größe der Gridview selbst verändert. – TechMafioso

+0

die Antwort ist klar .. ohne Paginierung werden alle Zeilen repariert und rendered .. wenn Sie mehr Geschwindigkeit wollen .. können Sie tun, wie vorgeschlagen .. es gibt keine anderen Möglichkeiten .. – scaisEdge