現在のプロジェクトでは、AJAXを介してデータを読み込んでいる角度材料のオートコンプリートを使用していますが、それを行う最良の方法を考えるのは本当に議論の余地があります。あなたは、私はオートコンプリートで、私のようなクエリでを使用してデータを取得しています、そのクエリ文字列に指定された検索テキスト(クエリ)を使用してデータを取得しています見ることができるように、すべての私のコードの拳はリモートデータソースとそのパフォーマンスの最適なアプローチによる角度材料設計オートコンプリート
$scope.loadOrganizations = function() {
var url = "index.php?option=com_crm&task=inquiry.loadOrganizations";
send_data = JSON.stringify({"query": $scope.searchText});
$http({
method: "POST",
url: url,
dataType: "JSON",
data: send_data,
beforeSend: function (xhr) {
xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
xhr.setRequestHeader('Accept', 'application/json');
}
}).then(function Success(response) {
$scope.errors = [];
if (response.data.state) {
$scope.organizations = response.data.results;
} else {
$scope.errors.push({
index: $scope.errors.length,
error_description: "Something Went Wrong With Loading Existing Data. Please Try Again Later"
});
}
}, function Error(response) {
console.log(response);
});
};
$scope.querySearch = function (query) {
$scope.loadOrganizations();
var results = $scope.organizations;
//var results = query ? $scope.loadOrganizations() : $scope.loadOrganizations();
return results;
};
以下に示します。サーバー側に送信し、データを返します。問題は、このアプローチではかなり遅いようです。オートコンプリートのために奇妙に見えるデータをロードするのに約250ms。私は、ユーザーがデータを読み込むのを待たせたくないので、これを行う最善の方法があるかどうかを知りたいと思います。あなたの提案には非常に明確にコードを与えるために十分親切にしてください。あらかじめ大変ありがとうございます。あなたが応答を待つ必要があるとして、サーバに要求を送信する
よろしく、 Nimanthaペレラ