2014-01-21 3 views
0

У меня есть веб-страница в моей локальной сети, чтобы вводить штрих-коды в реальном времени в db через поле (фреймворк django + postgresql + nginx). Он работает нормально, но в последнее время у нас есть клиент, который использует 72 символьных штрих-кода (Code Matrix), которые замедляют ввод, потому что перед следующим сканированием пользователь должен дождаться перерисовки последнего в поле (требуется около 1-2 секунд, перерисовка один символ за другим).Медленный ввод текста в поле html из сканера штрих-кода

Есть ли способ уменьшить латентность отсканированного текста в поле html? Лучше всего было бы показывать сразу все отсканированные штрих-коды, а не один символ за другим. Сканер настроен на добавление «Ввод» после отсканированного текста.

+0

У меня есть эта проблема в настоящее время в Firefox, протестированная с тем же штрих-кодом. Я получаю ошибки отсутствующего символа в 13 из 20 сканирований. Нет проблем в Chromium, никаких проблем в обычном текстовом редакторе. – benjaoming

+0

Похоже, что пролем связан с Firefox. Попробуйте одно из исправлений в этой [нить] (https://support.mozilla.org/it/questions/1157085). Также убедитесь, что нет расширений, которые могли бы замедлить работу вашего браузера. Сброс к заводским настройкам также может помочь сфокусировать проблему. – rospus

ответ

2

В конце, как заявил Брэд, проблема связана скорее с настройками сканера (USB в режиме HID), хотя проблема с ПК также является проблемой. После нескольких тестов на двухъядерной Linux-машине я оцениваю задержку на 85% для сканера и 15% для ПК/браузера.

Чтобы решить эту проблему, я первый поиск, и скачал полное руководство нашего сканера 2D штрих-кодов (306 страниц), то я сосредоточился на USB Keystroke Delay как причина, но по умолчанию уже установлен в «No Delay» ,

Настройка, которая повлияла на скорость чтения, была Интервал опроса USB, вариант, который применяется только к USB-эмулятору USB HID.

Интервал опроса определяет скорость, с которой данные могут быть отправлены между сканером и главным компьютером. Более низкое значение указывает на более быструю скорость передачи данных: по умолчанию было 8 мс, без каких-либо проблем я опустился до 3 мс. Более низкие ставки не были быстрыми, вероятно, потому, что они были достигнуты, когда ПК стал узким местом.

ВНИМАНИЕ: Убедитесь, что ваш хост-компьютер может обрабатывать выбранную скорость передачи данных, выбирая скорость передачи данных, которая является слишком быстрой для вашего хост-компьютера, может привести к потере данных: в моем случае, когда я снизил интервал опроса до 1 мс, не было потери данных в рабочем ПК, но при тестировании внутри виртуальной машины произошла потеря данных, как только я достиг 6 мс.

Еще одна интересная вещь: браузеры, как правило, реагируют значительно медленнее после длительного использования со многими открытыми вкладками (пару часов в моем случае), возможно, из-за кеширования.

Испытания, выполненные с браузерами Firefox и Chromium на старом двухъядерном ПК с ОС Lubuntu (linux).

+0

Какую операционную систему вы используете и как вы установили интервал опроса USB? Я ищу способ сделать это в Windows 10 и не нашел его. Я совершенно уверен, что задержка для моего сканера штрих-кода находится в драйвере HID Keyboard, потому что, когда я переключаюсь на его использование в качестве интерфейса COM и просматриваю окно терминала, считывающее этот COM-порт, передача данных происходит настолько быстро, что я вижу весь сканирование появляется сразу после сканирования. В режиме HID Keyboard это так медленно, что это похоже на просмотр кого-то типа. Благодарю. –

1

Это, вероятно, не имеет ничего общего с вашей страницей, но со скоростью интерфейса сканера. Большинство этих сканеров преднамеренно ограничивают ввод данных, чтобы не заполнять буфер компьютера, избегая падения символов. Подумайте об этом ... когда вы копируете/вставляете текст, для перерисовки символов не требуется много времени. Все появляется мгновенно.

Большинство этих сканеров настраиваются. Проверьте, есть ли опция на вашем сканере, чтобы увеличить частоту символов.

+0

Спасибо, Брэд, я уже изучил варианты сканера без помощи.Я знаю, что между отправкой символов через эмуляцию клавиатуры должно быть несколько миллисекунд, но я считаю, что узким местом является перерисовка текста на мониторе: на самом деле одно и то же сканирование занимает меньше времени, чтобы перерисовать, если шрифт меньше или если на мониторе установлено значение 8-битовая глубина. – rospus

+0

@rospus Похоже, что у вас нет драйверов вашей видеокарты. Скорость рисования текста не является проблемой, если не происходит что-то действительно странное. Запустите что-то вроде Блокнота и посмотрите, отличается ли время. – Brad

+0

Графическая карта в порядке, это средняя скорость. На самом деле это не большая проблема, вход почти мгновенно связан с нормальными штрих-кодами (13-22 диаграммы): один из наших пользователей обычно считывает 2-3 штрих-кода за секунду, с 72 штрих-кодами штрих-кода он считывает 2 штрих-кода каждые 3 секунды. Я считаю, что могу улучшить скорость, если есть способ заставить не показывать 72 символа один за другим. Может быть, JavaScript, который заботится о вводе? – rospus

Смежные вопросы