jQuery UI オートコンプリート機能を実装しましたが、顕著なパフォーマンスの問題が発生しています。
もともと、入力された文字ごとに新しいクエリを送信していました(ただし、最低3文字は入力する必要があります)。
私のデータベースはインデックス化されており、50,000 行のデータ (5 列) があります。DB レベルでのパフォーマンスの問題はありません。
私が試してみることにした 1 つの手法は、JSON をキャッシュし、オートコンプリートをデータベースではなく JSON にポイントすることでした。これは完璧に機能しました...最大2000行程度です。それを超えると、遅くて不安定になります。
誰かがテクニックに関する推奨事項を持っているなら、私はそれを感謝します.
Javascript の概念を示すコードを次に示します。
// First, setup some data to iterate over.
// My thought is to query the DB once, and build this list in memory to avoid autocomplete hitting the database each keystroke.
var data = [];
data.push({value: "Person 1", label: "Person 1"});
data.push({value: "Person 2", label: "Person 2"});
$("#searchBox").autocomplete({
source: data;
minChars: 3;
delay: 0;
});