[英]D3 v3 zoom/drag performance better with right mouse rather than left?
我有一個基於D3 v3的圖表,使用內置的Zoom行為來處理拖移功能。 zoom
處理程序正在使用requestAnimationFrame
進行更新,這比僅對每個平移操作調用update更為平穩。
當我開始在圖表中使用大量數據時,我注意到使用鼠標右鍵(而不是鼠標左鍵)在拖動過程中的更新性能明顯更好。 在深入研究了Chrome DevTools之后,我發現這兩個操作之間有一個非常奇怪的區別。
右拖動以平移圖表時,這是時間軸視圖的一部分。
我希望時間表看起來像這樣,幀更新相對定期,並且被稱為盡快。 〜25ms用於更新,〜60ms用於重畫。 每幀總計約85毫秒。
當向左拖動時,這是在同一圖表中具有完全相同數據的時間線。
如您所見,每個幀花費的時間要多得多(〜175ms),一幀更新結束與下一幀更新之間存在巨大的時間間隔。 時間軸中沒有可見的處理,只有selectstart
事件處理程序的一些實例(我沒有添加,似乎是D3),最多花費0.23ms。
我刪除了在圖表上可以找到的所有其他事件處理程序,但沒有任何效果
我之前見過Chrome在拖動操作過程中對某些處理進行了一些優化,並且在那段時間里HTTP流量的速度有所下降,但是在純客戶端更新上卻什么也沒有。
這是一個已知的問題? D3對左阻力做一些特殊的事情嗎? 誰看過這個嗎?
有一個默認處理程序會影響您的時間和性能。
調用preventDefault()將其禁用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.