Jump to content
  • 0

подсчитать время паузы между нажатиями...


Николя223
 Share

Question

Теперь что то я завис. Кто нибудь может подсказать как это реализуется.

весь код приводить не буду - он огромный, вот его часть.

Как можно цивилизованно подсчитать паузу между нажатием клавишь?

Пробовал по разному. и через setInterval и через setTimeOut... кучу кода переписал в итоге пришёл к getTime()...

вроде бы всё правильно должно быть, но чуть меньше половины результатов, при быстрых нажатиях, получаются значения <0.005 чего быть не может

Да , и в начале скрипта стоит setTimeInterval, который раз в 0.2 секунды подставляет значение в progress bar

Проект не кроссбраузерный, нужно чтобы работало в Chrome, chromiume


var vr1 = new Date();
var vr2;
var vrstart = vr1.getTime();
var vr2sum;
var vr3= new Array()

window.onkeypress = function(){
vr2=new Date();
lll=(vr2.getTime()-vrstart)/1000;
vr3[0] = vr3[1];
vr3[1] = lll;

vr2sum=Math.abs(vr3[1]-vr3[0]);
}

Edited by Николя223
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

http://jsfiddle.net/W8CDs/

я немного ваш скрипт переделал - нужно именно нажатия (много раз) клавиш. у вас механизм тот же самый.

в хроме показал минимум 0.005 . Т.е по логике получается, что пользователь может нажать 200 раз кнопки за секунду? не может такого быть... даже и не знаю где косяк в getTime или у меня, в ходе моих рассуждений...

хотя нет... у вас немного ближе к истине... попробую на своей работе... тот же самый результат

Оказывается косяк в Гугл хроме. сейчас ещё и свою работу протестировал в chromiume - два разных результата.

в Chromiume без тысячных долей... блин, щас и он тысячные доли показывает. как я понимаю вариантов больше и нет... либо setInterval либо getTime

Ну всё равно спасибо, дальше думать буду

Edited by Николя223
Link to comment
Share on other sites

  • 0

Ну блин http://jsfiddle.net/3BW88/2/ минимальным значением было 0.09 и куча других цифр, но никак не 0.005 - попробуйте... Хром v 24.0.1312.56

--добавление:

Черт возьми! посмотрел в код, который вы исправили - да вы же вешаете на событие onkeypress, мне неловко говорить возможно очевидные вещи: событие генерируется все время, пока нажата клавиша - ему нельзя доверять, если нужен интервал.

Edited by moron
Link to comment
Share on other sites

  • 0

2709730m.png

Это только то, что поймать успел и меньше были... Версия хрома - 24.0.1312.57

Как я понимаю это говорит о том, что метод getTime() разный на разных компьютерах(зависимость от архитектуры) и не зависит от браузера... очень интерессно... буду вариант без него тогда искать

Link to comment
Share on other sites

  • 0
Черт возьми! посмотрел в код, который вы исправили - да вы же вешаете на событие onkeypress, мне неловко говорить возможно очевидные вещи: событие генерируется все время, пока нажата клавиша - ему нельзя доверять, если нужен интервал.

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

Первоначально я тестировал и на KeyUp и на keyDown разницы абсолютно никакой)) поэтому и пишу на форум. кто какими мыслями поделится.

как то странно... keyUp в этом плане показывает более точные результаты чем keyDown... или кажется. Moron, спасибо. завтра утром прогу допиливать буду заодно и разберусь с этим несоответствием и затестирую получше чё из них врёт..

___________________________________________________________________________

Да, классную идею подал. на основе твоего скрипта (мог и свой не суть) сделал сравнение трех событий. результаты удивили

onkeyup - показывает более похожее на правду время. минимум 0.009 сек (но всё равно в секунду 100 нажатий)

onkeydown, и onkeypress абсолютно одинаковое время. причём минимум 0.0007 секунд

http://jsfiddle.net/mKETn/

Edited by Николя223
Link to comment
Share on other sites

  • 0

danik.html, спасибо протестил. показатели похожие....

что делать не знаю... все бы хорошо, но нужно эту скорость в нажатий/мин. перевести, получаются космические значения... ладно, утро вечера мудренее

http://jsfiddle.net/d3Fv5/

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy