2012-11-23 14 views
10

एक पल पहले requestAnimationFrame की खोज करने के बाद, मैंने इसके बारे में सारी जानकारी प्राप्त कर ली है। इसके बारे में मूल बातें बताते हैं -अनुरोध का उपयोग कब करें एनीमेशन फ्रेम?

वैसे भी, इन संसाधनों के सब मेरे बारे में कैसे काम करता है requestAnimationFrame या कि यह कैसे/इस्तेमाल किया जाना चाहिए सकता है कुछ बताना है, लेकिन उनमें से कोई भी मुझे बताओ कि यह सही है इसका इस्तेमाल करने की।

  • क्या मुझे इसे एनिमेशन के लिए उपयोग करना चाहिए (किसी तत्व की शैली में बार-बार परिवर्तन, सीएसएस एनिमेशन की तरह)?
  • क्या मुझे इसका उपयोग करना चाहिए जब कोई स्वचालित ईवेंट एक या एकाधिक तत्वों के सीएसएस/कक्षाओं को बदलना चाहता है?
  • क्या मुझे इसका उपयोग करना चाहिए जब कोई स्वचालित ईवेंट एक या एकाधिक तत्वों के टेक्स्ट मान को बदलना चाहता है? (उदाहरण के लिए प्रत्येक बार एक बार घड़ी का मूल्य अपडेट करना)
  • क्या मैं इसे स्वचालित रूप से डीओएम को संशोधित करना चाहता हूं, इसका उपयोग करना चाहिए?
  • क्या मुझे इसका उपयोग करना चाहिए जब किसी स्वचालित ईवेंट को .offsetTop, .offsetLeft जैसे मानों की आवश्यकता होती है और फिर शीर्ष जैसी शैलियों को बदलना और कुछ पंक्तियों को छोड़ना चाहते हैं?
  • क्या मुझे इसका उपयोग करना चाहिए जब उपयोगकर्ता द्वारा उत्पन्न ईवेंट उपर्युक्त परिवर्तनों में से किसी एक का कारण बनता है?

टी एल; डॉ: जब यह सही requestAnimationFrame उपयोग करने के लिए है?

उत्तर

4

आपको अभी तक नहीं होना चाहिए। वास्तव में, कम से कम नहीं। यह अभी भी प्रयोगात्मक है और पूर्ण अनुशंसा (it is still a working draft at this point) तक पहुंच सकता है या नहीं। उस ने कहा, यदि आपको पुराने ब्राउज़र के बारे में परवाह नहीं है, या willing to work with the polyfill available इसका उपयोग करने का सबसे अच्छा समय तब होता है जब आप स्क्रीन पर चीजों को आकर्षित करना चाहते हैं जिसके लिए ब्राउज़र को पुन: चित्रित करने की आवश्यकता होगी (अधिकांश एनिमेशन)।

डोम के कई सरल संशोधनों के लिए, यह विधि अधिक है। यह केवल तब उपयोगी हो जाता है जब आप एनीमेशन कर रहे होते हैं जब आप चित्रों को जल्दी से ले जा रहे हैं या स्थानांतरित करेंगे और यह सुनिश्चित करने की आवश्यकता है कि ब्राउजर रीपैंटिंग इसे चिकनी बनाने के लिए पर्याप्त रखती है। यह आपको यह सुनिश्चित करने की अनुमति देगा कि आपके द्वारा गणना की जाने वाली प्रत्येक फ्रेम को स्क्रीन पर खींचा जाएगा। यह आपके एनिमेशन में अधिक सटीक समय माप के लिए उपयोगिता भी प्रदान करता है। पहला तर्क वह समय है जब पेंट होगा, ताकि आप यह सुनिश्चित कर सकें कि आप उस समय कहां रहें।

जब आप डोम में कई सरल संशोधन कर रहे हैं, या ऐसी चीजें जिन्हें आसानी से संक्रमित करने की आवश्यकता नहीं है, तो आपको इसका उपयोग नहीं करना चाहिए। यह आपके उपयोगकर्ताओं के कंप्यूटर पर अधिक महंगा होगा ताकि आप इसे संक्रमण, आंदोलनों और एनिमेशन में चीजों को आसान बनाने के लिए सीमित करना चाहते हैं। प्रत्येक बार जब आप पृष्ठ पर कोई परिवर्तन करते हैं, तो फ़्रेम रेड्रा को मजबूर करना आवश्यक नहीं होता है, क्योंकि प्रतिक्रिया अधिक तेज़ी से होती है जब आपको ड्रॉ के बीच अतिरिक्त जोड़े मिलीसेकंड के बारे में चिंता करने की आवश्यकता नहीं होती है।

+0

एक पॉलीफिल के साथ [इस] (https: //gist.github।कॉम/1866474) मुझे इस ब्राउज़र का समर्थन करने वाले नए ब्राउज़र/मोबाइल डिवाइस को बढ़ावा देने में सक्षम होना चाहिए, जबकि पुराने ब्राउज़र बस सेटटाइम पर वापस आ जाएंगे। इसलिए जब तक ड्राफ्ट में परिवर्तन होता है तो मैं अपना कोड अपडेट करता हूं, मुझे पहले से ही आरएएफ का उपयोग करने में कोई समस्या नहीं आनी चाहिए। उत्तर के लिए धन्यवाद, मैं इसे सरल संशोधनों के लिए उपयोग करने से बचना चाहूंगा और इसके बजाय केवल अपने एनिमेशन के लिए इसका उपयोग करूंगा। अब यह देखने के लिए कि क्या ये एनिमेशन बूस्ट का उपयोग कर सकते हैं या नहीं :) :) –

+1

यह उत्तर अब अप्रचलित है। 'requestAnimationFrame' अब विस्तृत, अपरिवर्तित समर्थन है। यह भी संकेत देता है कि केवल 'आरएएफ' को एक प्रतिभा को बुलाया जाता है, जो सही नहीं है। –

+0

क्या हमें इस उत्तर को अस्वीकार कर देना चाहिए? – everlasto

-1

जैसा कि पिछले उत्तर में कहा गया है, आपको इसे असंतुलित एनीमेशन में उपयोग नहीं करना चाहिए क्योंकि इसे आसानी से संक्रमित करने की आवश्यकता नहीं है। ज्यादातर मामलों में, यह उन गुणों के लिए उपयोग किया जाता है जो समय के साथ लगातार भिन्न होते हैं।

+1

इसका उपयोग करने में क्या नुकसान है? –

+0

समय नियंत्रण से बाहर हो सकता है, पुनर्निर्मित समय ब्राउज़र द्वारा निर्धारित किया जाता है। – West

+1

आप "पुनर्निर्मित समय" को भ्रमित कर रहे हैं "संभवतः अगले संभावित पश्चाताप से पहले कुछ करने का मौका"। –

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