В настоящее время я работаю над базой данных с веб-интерфейсом. Используя jQuery для предыдущих версий этого проекта, я теперь перешел на использование AngularJS для функции «мгновенного поиска», например:
function SearchCtrl($scope, $http) {
$scope.search = function() {
$scope.result = null;
$http({method: 'GET', url: 'api/items/search/' + $scope.keywords }).
success(function(data, status, headers, config) {
$scope.result = data;
}).
error(function(data, status, headers, config) {
$scope.status = status;
});
};
}
...
<div id="searchControl" ng-controller="SearchCtrl">
<form method="get" action="" class="searchForm">
<input type="text" id="search" name="search" ng-model="keywords" ng-change="search()"/>
<input type="submit" value="Search" />
</form>
<div ng-model="result">
<div class="card">
Item ID: {{items.id}}
Part ID: {{items.part_id}}
Description: {{items.description}}
Manufacturer: {{items.manufacturer}}
Range: {{items.product_range}}
Borrower: {{items.borrower}}
End Date: {{items.end_date}}
</div>
</div>
</div>
...
Это отлично работает, но с одной проблемой: потому что я вызываю функцию поиска на «ng-change», она очень лагирует при вводе поискового запроса, иногда сбой браузера. В старой версии (с использованием jQuery) я использовал флаги, чтобы проверить, был ли уже запущен запрос на получение, и если я тогда прервал его, прежде чем запускать новый. Я просмотрел документацию AngularJS для прерывания запросов на получение, но я все еще не мудрее. Если у кого-нибудь есть какие-то советы о том, как достичь этого или другого исправления, я бы очень признателен.
Благодарю.