В конфигурации AutoNumeric значительная часть поведения формируется набором опций, которые активируют дополнительные вычисления, форматирование и обработчики событий. При массовом использовании в формах или при высокой частоте обновления значений лишние опции становятся источником замедления и усложнения предсказуемости данных.
Минимизация конфигурации строится на принципе: активируется только то, что непосредственно требуется для отображения и ввода числа, всё остальное переводится в состояние «выключено» или заменяется нейтральным поведением.
Ключевые направления отключения:
Разделение числа на группы (например, 1 000 000 или
1,000,000) является одной из самых затратных операций в
AutoNumeric, поскольку требует регулярного пересчёта строки при каждом
вводе.
Отключение группировки снижает нагрузку на перерисовку значения и упрощает внутреннюю нормализацию строки.
Типичная конфигурация без группировки:
new AutoNumeric('#input', {
digitGroupSeparator: '',
decimalCharacter: '.'
});
Убираются:
Символы валюты и текстовые постфиксы требуют постоянного синхронизированного отображения с числом. При каждом изменении значения происходит пересборка строки.
Отключение данных элементов:
new AutoNumeric('#input', {
currencySymbol: '',
currencySymbolPlacement: 'p',
suffixText: '',
prefixText: ''
});
Исключаются:
Округление и приведение числа к заданному формату может выполняться на каждом blur-событии или при каждом обновлении значения. В высоконагруженных формах это создаёт избыточные вычисления.
Снижение нагрузки достигается отключением автоматической нормализации:
new AutoNumeric('#input', {
decimalPlaces: null,
allowDecimalPadding: false
});
Поведение становится ближе к «сырым» числам:
Обработка событий колесика мыши часто используется для инкремента/декремента значения. В массовых таблицах или формах это приводит к нежелательным обновлениям состояния.
Отключение:
new AutoNumeric('#input', {
modifyValueOnWheel: false
});
Исключается:
AutoNumeric может изменять отображение при получении или потере фокуса (например, показывать «чистое» число или форматированное представление). Эти операции добавляют лишние DOM-обновления.
Конфигурация упрощённого поведения:
new AutoNumeric('#input', {
showOnlyNumbersOnFocus: false,
selectOnFocus: false
});
Исключается:
Некоторые режимы AutoNumeric изменяют поведение пустого поля: подставляют ноль, преобразуют значение или инициируют форматирование.
Для упрощённой модели данных:
new AutoNumeric('#input', {
emptyInputBehavior: 'null'
});
Результат:
При вставке текста библиотека может выполнять полную нормализацию строки, включая удаление символов, замену разделителей и пересчёт числа. При отключении части логики поведение становится более прямолинейным.
new AutoNumeric('#input', {
unformatOnSubmit: false
});
Также может быть полезно отключение дополнительных преобразований ввода, если они не требуются логикой приложения.
AutoNumeric поддерживает набор событий и callback-хуков, которые вызываются на каждом этапе изменения значения. При частом обновлении они становятся значительным источником накладных расходов.
Минимизация достигается полной деактивацией кастомной логики:
new AutoNumeric('#input', {
onInvalidPaste: null,
onFocus: null,
onBlur: null,
onChange: null
});
Исключаются:
При работе с большими формами важно исключать любые фоновые перерасчёты. AutoNumeric может отслеживать изменения состояния элемента и пересчитывать значение при каждом вмешательстве.
Оптимизация достигается за счёт отказа от дополнительных наблюдателей и синхронизаций:
new AutoNumeric('#input', {
watchExternalChanges: false
});
В сценариях высокой нагрузки используется предельно упрощённая конфигурация, где сохраняется только базовое числовое поведение без визуального оформления.
new AutoNumeric('#input', {
digitGroupSeparator: '',
decimalCharacter: '.',
currencySymbol: '',
suffixText: '',
prefixText: '',
modifyValueOnWheel: false,
selectOnFocus: false,
emptyInputBehavior: 'null',
allowDecimalPadding: false
});
Такая конфигурация:
Каждая отключённая функция уменьшает количество этапов обработки ввода. Внутренний цикл преобразования значения становится короче:
Исключаются:
Результатом становится более предсказуемое поведение при массовых обновлениях и сниженная нагрузка на обработку событий ввода.