@(知識(shí)點(diǎn)總結(jié))[jquery|掃碼搶]
基于jQuery的掃碼槍監(jiān)聽。如果只是想實(shí)現(xiàn)監(jiān)聽獲取條碼掃碼信息,可以直接拿來(lái)使用,如果有更多的條碼判斷處理邏輯需要自己擴(kuò)展。
一、功能需求
使用掃碼槍掃描條碼,在一個(gè)web頁(yè)面監(jiān)聽獲取掃碼槍的數(shù)據(jù),并禁止用戶進(jìn)行手動(dòng)的輸入操作。
開始的想法非常簡(jiǎn)單,因?yàn)閽叽a槍就是模擬鍵盤的輸入,當(dāng)他用usb接口插入電腦的時(shí)候,就變成了一個(gè)外接的輸入設(shè)備,用js監(jiān)聽就可以了。但是如何判斷用戶是否為手動(dòng)輸入就需要做一些處理了。
二、主要問(wèn)題
1.如何判斷是否手動(dòng)輸入
2.如何判斷一個(gè)條碼輸入完成
三、解決方案
手動(dòng)輸入的解決辦法就是:對(duì)比一個(gè)鍵從按下到抬起的時(shí)間間隔,以及兩次按鍵的時(shí)間間隔。
因?yàn)閽叽a槍的輸入速度非常的快,我測(cè)試的掃碼槍輸入的間隔大概在15-60毫秒,然后手動(dòng)輸入的100-200之間,除非刻意的想突破限制進(jìn)行快速的輸入。這個(gè)間隔值可以控制的很小,前提不要快過(guò)掃碼搶的速度。