2011-05-11 19 views
7

मेरे पास एक ऑब्जेक्ट है जो हर मूसमॉव पर माउस के एक्स और वाई पोजीशन को प्रिंट करता है।जावास्क्रिप्ट में mousemove काम करने का ट्रिगर कैसे करता है?

$('#canvas').mousemove(function(e){ 
    $('#output').prepend(e.pageX + ',' + e.pageY); 
}); 

मैंने देखा है कि जब आप वस्तु पर वास्तव में तेजी से ले जाने के यह केवल कुछ पदों बाहर प्रिंट:

वह कुछ इस तरह है।

मैं बिल्कुल नाखुश नहीं हूं कि ऐसा करता है (क्योंकि यह आपके द्वारा पार किए गए सभी सैकड़ों पिक्सल के लिए कुछ करने के लिए काफी संपूर्ण होगा) लेकिन मैं सोच रहा हूं कि यह कैसे काम करता है।

क्या मूसोम घटना प्रति सेकंड ट्रिगर्स की एक निश्चित मात्रा तक सीमित है या क्या?

(Btw: इस उबंटू लिनक्स में क्रोमियम पर परीक्षण किया गया था)

+3

मुझे लगता है कि यह वास्तव में ब्राउज़र और कंप्यूटर पर उपयोग किया जाता है; अधिक स्मृति/तेज़ cpu शायद === प्रति 'x' समय प्रति पुनरावृत्तियों। तो जैसा कि यह है, मैं 'mousemove' पर भारी निर्भर नहीं होगा। – Shaz

उत्तर

0

मुझे लगता है कि यह तुल्यकालिक है। यह हर पिक्सेल के लिए ट्रिगर नहीं होता है जिसमें आप अपना माउस ले जाते हैं, जिसका अर्थ है कि घटनाएं कतारबद्ध नहीं होती हैं।

कहें कि आपके पास कुछ ऐसा कोड है या नहीं।

$('#canvas').mousemove(function(e){ 
//Some code which takes seconds to execute 
//All subsequent events won't be dispatched while this event handler is executing. 
}); 

कहें कि माउस माउस ईवेंट ईवेंट हैंडलर निष्पादित करते समय माउस को ले जाएं या नहीं। mousemove हैंडलर ट्रिगर नहीं किया जाएगा।

यहां हैंडलर के लिए एक उदाहरण है जो निष्पादित करने में सेकंड लेगा। ->http://jsfiddle.net/78Hf3/1/

और एक है कि केवल कुछ समय लेने के लिए ->http://jsfiddle.net/78Hf3/2/

1

आप के रूप में इस ब्राउज़र निर्भर हो सकता है, इस को देखने के लिए चाहते हो सकता है,

http://javascript.info/tutorial/mouse-events#mousemove-and-mouseover-frequency, लेकिन , यदि आप इस सवाल को देखते हैं, तो बेहतर प्रतिक्रिया प्राप्त करने के बारे में एक सुझाव है।

How to set mousemove update speed?

संबंधित मुद्दे