2015-02-23 24 views
2

當定義的onmousedown函數觸發時,我是否按下鼠標按鈕和來測量之間的延遲如何測量JavaScript中交互和mousedown事件之間的延遲?

或者,是否有目前的統計數據提供了有關這個延遲?

我認爲這兩個事件不是同時進行的,通過瀏覽器的不同而不同。

我唯一的方法迄今已創建多個onmousedown事件的事件,並使用日期測量它們之間的時間差。我發現他們之間有6毫秒的差異。

我的工作,哪些是時間敏感(以毫秒爲單位)的音頻應用。

任何幫助是偉大的,謝謝!

+0

我特別感興趣的是桌面瀏覽器;我知道移動事件延遲300毫秒,但這不是我想要測量的。 – suncannon 2015-02-23 18:13:49

+0

使用JavaScript進行時間敏感功能可能不是您的最佳選擇。我建議您研究其他具有更好定義的應用程序的工具。 – Palpatim 2015-02-23 18:17:42

+0

_「對時序敏感的函數使用JavaScript可能不是您的最佳選擇。」_ - 同時請記住** JavaScript是單線程**。 – 2015-02-23 18:32:46

回答

3

你很可能尋找Event.timeStamp和當前的時間戳,Date.now()之間的差異。他們都返回經過的時間以毫秒爲單位的時代:

的JavaScript

document.getElementById("mydiv").addEventListener('click', function (e) { 
    // in milliseconds 
    var latency = Date.now() - e.timeStamp; 
}); 

Working example on JSFiddle.

通過減去前者從後者 - ,你可以在包括片段看到 - 你可以測量延遲。

不幸的是,事件timeStamp不是鼠標點擊的實際硬件時刻,而是瀏覽器從您的操作系統收到點擊事件。然而,這個總是發生在事件處理程序被調用之前,並且應該具有可以忽略的延遲。

關於鏈接小提琴,我的時間差低於1ms的大部分時間;偶爾我設法通過無情的按鈕粉碎和頁面重新加載實現超過10毫秒的值,但這並不常見。當然,如果您在事件處理程序中執行更多計算密集型任務,則差異可能會輕鬆攀升,在這種情況下,延遲補償可能會迅速成爲重要部分。

+1

'.timeStamp'非常好的應用程序! – Bergi 2015-02-23 18:58:18

相關問題