Как нацелить не каждый символ в поиске?

В моем случае, поскольку мой Java-код предназначен для переноса на другие языки в ближайшем будущем (главным образом, на C ++), я, по крайней мере, хочу заплатить за слова, чтобы освободить память правильно, чтобы впоследствии помочь в процессе переноса.

Я лично полагаюсь на обнуление переменных в качестве заполнителя для последующего правильного удаления. Например, я трачу время, чтобы свести на нет все элементы массива до фактического удаления (создания нулевого) самого массива.

Но мой случай очень специфичен, и я знаю, что занимаюсь хитами производительности, когда делаю это.

1
задан anuarthor 19 March 2019 в 10:46
поделиться

1 ответ

Вы должны вызывать clearTimeout с номером, который вы храните в this.timeout в качестве аргумента, каждый раз, когда вы звоните searchEmployee, чтобы отменить предыдущий тайм-аут.

searchEmployee(e) {
  const { entityType } = this.state;
  const searchText = this.searchInput.value;

  clearTimeout(this.timeout);

  if (e.target.value !== "" && searchText.length !== 0) {
    this.drop.hide();

    if (searchText.length > 3) {
      this.timeout = setTimeout(() => {
        this.setState({
          showSearchLoader: true,
          result: [],
          resultCounts: [],
          hasMoreItems: false,
          searchResultsEmpty: false,
          entityType: 10,
          searchAll: true
        });

        this.getResults(
          searchText,
          entityType,
          this.searchResultsCount,
          0,
          false
        );
      }, 1000);
    }
  }
}
0
ответ дан Tholle 19 March 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: