Поиск входа блокируется в JS - PullRequest
0 голосов
/ 10 января 2020

Я использую 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.

Поток ...,

Когда я ищу 'менеджер', я получаю результаты поиска, затем

Когда я очищаю менеджер и печатаю, пытаясь что-то напечатать, он заблокирован и может ввести хотя бы одно слово, а затем в браузере отобразится всплывающее окно «Не отвечает из-за долго работающего скрипта».

Может кто-нибудь предложить пожалуйста помощь. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...