Стоит ли ждать пару миллисекунд для события TextChanged? - PullRequest
8 голосов
/ 14 февраля 2010

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

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

Что ты думаешь?

Ответы [ 5 ]

5 голосов
/ 15 февраля 2010

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

1 голос
/ 14 февраля 2010

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

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

0 голосов
/ 15 февраля 2010

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

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

0 голосов
/ 15 февраля 2010

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

0 голосов
/ 14 февраля 2010

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

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

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