Я использую IE11, и у меня есть поле ввода для поиска следующим образом:
<input type="text" data-ng-model="ctrl.searchText" data-ng-keyup="ctrl.globalSearch()">
JS:
function globalSearch() {
if (_globalSearchConfig.searchText.length > 2) {
$timeout.cancel(_globalSearchConfig.searchCanceller);
_globalSearchConfig.searchCanceller = $timeout(_startGlobalSearch, 2000);
}
}
function _startGlobalSearch() {
_globalSearchConfig.results = []; //Clearing previous search results
_globalSearchConfig.noResultsToDisplay = false;
angular.forEach(_filters, function (filter) {
angular.forEach(filter.ddlItems, function (ddlItem) {
if (ddlItem[filter.propertyOfListItem].toUpperCase().indexOf(_globalSearchConfig.searchText.toUpperCase()) > -1) {
var result = {};
angular.copy(ddlItem, result);
_globalSearchConfig.results.push(new GlobalSearchResult(result, filter));
}
});
});
if (_globalSearchConfig.results.length === 0) {
_globalSearchConfig.noResultsToDisplay = true;
}
}
Здесь filter.ddlItems имеет в общей сложности 2659.
Поток ...,
Когда я ищу 'менеджер', я получаю результаты поиска, затем
Когда я очищаю менеджер и печатаю, пытаясь что-то напечатать, он заблокирован и может ввести хотя бы одно слово, а затем в браузере отобразится всплывающее окно «Не отвечает из-за долго работающего скрипта».
Может кто-нибудь предложить пожалуйста помощь. Спасибо.