![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 21:52
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от klk.pma
|
Если представленный вариант неправильный, можете показать корректный вариант?
|
представленный вариант не учитывает сдвиг курсора при вводе данных, а так же конечно кроссбраузерность, например в ИЕ9 нажатие клавиши backspace не вызывает событие oninput. И прочие мелочи, что бы все это учеть нужно намного больше написать. Либо использовать уже существующие решения, например вот этой:
<script type="text/javascript" src="http://devote.github.io/files/letjs/let.js"></script>
<input data-let-input="/^\d+$/" class="digit" type="text" maxlength="8" name="ot" value="">
<input data-let-input="/^\d+$/" class="digit" type="text" maxlength="8" name="do" value="">
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 21:55
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от krutoy
|
Его смело можно применять, как правило, если место не суперузкое, только с умом.
|
в том то и дело что его можно и нужно применять там, где без его применения иного способа нет. Я этого не по наслышке а по собственному опыту говорю, когда писал CSS-селектор, именно там производительность играла огромную роль. А использование конструкции for...in мне вставляло камни под колеса.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 21:56
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от devote
|
сдвиг курсора при вводе данных
|
А какое он имеет значение?
Сообщение от devote
|
нажатие клавиши backspace не вызывает событие oninput
|
И что? по бекспейсу печатается нецифровой символ?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:00
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от devote
|
именно там производительность играла огромную роль
|
Вот где играет, там и не надо писать. Я об этом уже сказал. Если так параноить над каждой строкой кода, совершенству нет предела, будешь до конца жизни один скрипт оптимизировать. forEach, например, тоже работает ОЧЕНЬ медленно.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:01
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от krutoy
|
А какое он имеет значение?
|
курсор ввода, всегда должен оставаться там где его оставил пользователь. А когда меняешь свойство .value у текстового поля, курсор уходит в конец текстового поля. Что не совсем правильно.
Сообщение от krutoy
|
И что? по бекспейсу печатается нецифровой символ?
|
Ничего не печатается, а удаляется символ находящийся перед курсором ввода. Но, на это действие ИЕ9 никак не реагирует и не вызывает событие oninput (это просто Баг ИЕ9). Другие события, такие как keypress, keydown и т.д отрабатывают корректно.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:02
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
devote,
Кстати, насчет теста я не соврал. В хроме у меня for отработал, в среднем, процентов на 20 быстрей. Видимо, жедезо и ось играет роль.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:02
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от krutoy
|
forEach, например, тоже работает ОЧЕНЬ медленно.
|
ну было бы странно если бы он работал быстрее.. Он же на каждую итерацию вызывает функцию, а вызов функции пожирает большие ресурсы.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:06
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от devote
|
Ничего не печатается, а удаляется символ находящийся перед курсором ввода. Но, на это действие ИЕ9 никак не реагирует и не вызывает событие oninput (это просто Баг ИЕ9)
|
но в данном случае оно и не нужно.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:09
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от devote
|
Другие события, такие как keypress, keydown и т.д отрабатывают корректно.
|
Я, кстати, протестил события, они работают на порядок медленней oninput в FF и V8. А V8 вообще тормозной при работе с текстовыми полями, я уже который раз замечаю.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.11.2014, 22:21
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от devote
|
не учитывает сдвиг курсора при вводе данных
|
А нет ли способа для контроля положения курсора? А то, можно было бы и обработать, (хотя это мелочь, в данном случае, это произойдет только если пользователь сдвинет курсор что-то исправлять и введет при этом нецифровой символ --можно забить на это)
|
|
|
|