Действительно ли стоит ожидать несколько миллисекунд на событии TextChanged?

У меня есть текстовое поле для клиентского действия фильтра с мобильным устройством. Я задаюсь вопросом, должен ли я ожидать нескольких миллисекунд прежде, чем запустить мой код, когда пользователь ввел в менее затем 3 символах, и только выполните код, если текст длиннее или равен, чем 3 символа.

Выполненный код занимает больше времени (sql как синтаксис на большей базе данных), и пользователь видит диалоги на listview.

Что Вы думаете?

8
задан Anthony Forloney 14 February 2010 в 20:52
поделиться

5 ответов

Задержка SQL-запросов по событиям изменения текста - действительно хорошая идея. Мы используем эту технику во всем Android. Мы также всегда стараемся отменить любой предыдущий запрос. Например, если пользователь вводит «ab», и мы публикуем сообщение для запуска запроса после того, как пользователь набрал «a», мы отменяем это сообщение, когда пользователь набирает «b».

5
ответ дан 5 December 2019 в 22:18
поделиться

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

0
ответ дан 5 December 2019 в 22:18
поделиться

Я бы попытался использовать тот же подход, что и собственные приложения Android, поскольку исходный код доступен. Например, Контакты .

Проверьте, что они делают, когда вы ищете контакт.

0
ответ дан 5 December 2019 в 22:18
поделиться

Он перенаправляет вас на переменную настроек LOGIN _ REDIRECT _ URL .

Это происходит, когда верно следующее:

if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL

Наиболее вероятно, что ваша «следующая» переменная пуста или содержит мусор.

-121--3107614-
if (jQuery.ui) {
  // UI loaded
}

ИЛИ

if (typeof jQuery.ui != 'undefined') {
  // UI loaded
}

Следует ли делать трюк

-121--2029735-

На iPhone, если вы видите отставание, так как пользователь набирает текст после того, как вы инициируете поиск, вам, вероятно, нужно переместить операцию запроса в фоновый поток, с возможностью отменить старые поиски, как RG упомянул делать.

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

0
ответ дан 5 December 2019 в 22:18
поделиться

Если пользователь увидит зависания при запуске вашего кода, я бы не запустил его сразу.

Предполагая, что запрос выполняется «на лету» на основе ввода пользователя, я бы подождал, пока пользователь не наберет достаточно символов для обработки более легкого запроса, и не будет мешать работе пользовательского интерфейса. В частности, при использовании синтаксиса % LIKE% меньшее количество символов, с которыми вы должны работать, означает больший запрос и большее время ожидания для пользователя.

1
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

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