Ich arbeite an einem großen Projekt, wo ich effiziente Möglichkeit für einen Benutzer präsentieren Daten in ein Formular eingeben müssen.Autocomplete-Optimierung für große Datensätze
Drei der Felder dieses Formulars erfordern einen Wert aus einer Teilmenge einer allgemeinen Datenquelle (SQL-Tabelle). Ich habe mit JQuery und JQuery UI eine Autocomplete erstellt, die auf einen generischen HttpHandler verweist.
Intern verwendet der Handler Linq-to-sql, um die Daten abzurufen, die für diese Tabelle erforderlich sind. Die Tabelle enthält etwa 10 verschiedene Spalten, und der linq-Ausdruck verwendet SqlMethods.Like(), um den einzelnen Suchbegriff in jedem dieser 10 Felder zu finden.
Das Problem ist, dass diese Tabelle einige 20K Zeilen enthält. Die automatische Vervollständigung funktioniert fehlerfrei, akzeptiert die schiere Menge an Daten, die dleays in der Nähe von etwa 6 Sekunden (beim Debuggen auf meinem lokalen Rechner) erscheinen, bevor es auftaucht.
Die JqueryUI-Autocomplete hat 0 Verzögerung, Abfragen auf die 3-Taste, und das Ergebnis der Post wird in einem Facebook-Stil mehrzeiligen auswählbaren Optionen gemacht. (Ich musste das Autocomplete-Plugin fast umschreiben ...).
Also das Problem ist Daten vs. Geschwindigkeit. Irgendwelche Gedanken, wie man das beschleunigen kann? Die einzigen zwei Gedanken, die ich hatte, waren die Daten zwischenzuspeichern (How/Where?); oder verwenden Sie gerade SQL-Datenleser für den Datenzugriff?
Alle Ideen würden sehr geschätzt werden! Danke,
<bleepzter/>
Danke, danke, danke! Es hat funktioniert wie ein Zauber! – bleepzter
Hervorragender Ansatz zur automatischen Vervollständigung Ich sah wie diese Lösung aus Dank –