2014-07-12 207 views
-2

我需要用javascript創建某種基本pos。我有一個條形碼掃描器,像鍵盤一樣工作。所以我想自動檢測何時輸入來自條形碼,然後用該代碼創建報告。我認爲,一個好主意是計算打字速度的差異,因爲掃描儀是非常快:如何計算兩個「keyup」事件之間的時間間隔

if there a dalay between keyup > 300ms = another scan 

var speed = new Date().getTime() - lastkey; 
    lastkey = (new Date()).getTime(); 
     console.log(speed); 
    if(speed > 300) { 
     //little delay for prevent computer overhead o_O 
     var create_d = setTimeout(createchange,300) 
     } else { 
     //barcode sanning continue 
     clearTimeout(create_d) 
    } 

JsFiddle link <

+1

請在您的問題中提供JSFiddle代碼。鏈接可以在未來打破。 –

+1

你的問題是什麼? – charlietfl

+0

@charlietfl,嗨,他已經在上面寫過問題 –

回答

1

使用純JS:

document.body.onkeydown = function() 
{ 
var time = this._time; 
var timestamp = new Date().getTime(); 
if (time) 
    console.log(timestamp - time); 

this._time = timestamp; 
} 

控制檯將顯示的keydown之間的差異事件(以毫秒計)

+0

感謝它是更好的:D – KARC

+0

有一件事「this._time」究竟是如何工作的?從未見過^^ – KARC

+0

'this'在函數的上下文中表示'document.body'。 '_time'只是一個設置在對象上的變量。它可以是'counter','abc'或其他任何東西 – eithed