RU

Медленный текстовый ввод

Nex Moderator 10.07.2013 04:40 0 comments 5816 views

Обновление строки ввода текста осуществляется принудительно плеером, по каждому нажатому символу.

Игрок нажал кнопку -> интерфейс заметил изменение -> плеер передал библиотеке -> библиотека сохранила новое значение у себя.

В результате быстрого набора текста пользователя происходит полный цикл взаимодействия интерфейса с библиотекой, на каждую нажатую клавишу. На слабых устройствах и на слабых каналах связи интерфейс -> плеер -> библиотека, таких как различные браузерные мосты, это отнимает огромную кучу времени. Заметно торможение.

Чтобы исправить этот негативный эффект, стоит лишь по-другому организовать библиотечное API: не устанавливать принудительно значение в библиотеке на каждую изменившуюся букву, а наоборот, сделать колбэк, который будет опрашивать плеер по необходимости. Так как никаких событий на изменение символов в строке ввода не привязано, то на совместимость это никак не повлияет.

В итоге должно получиться так:

Игрок нажал кнопку -> интерфейс заметил изменение -> плеер сохранил новое значение у себя.
Игрок нажал кнопку -> интерфейс заметил изменение -> плеер сохранил новое значение у себя.
Игрок нажал кнопку -> интерфейс заметил изменение -> плеер сохранил новое значение у себя.

Библиотека запросила значение строки ввода -> плеер отдал сохранённое значение.

Или так (на выбор автора плеера, если так быстрее):

Игрок нажал кнопку -> значение поля ввода изменилось.
Игрок нажал кнопку -> значение поля ввода изменилось.
Игрок нажал кнопку -> значение поля ввода изменилось.

Библиотека запросила значение строки ввода -> плеер запросил значение у интерфейса и вернул его.

Log in or Register to post comments.