2011-10-23 14 views
13

हर बार जब मैं CSS3 एनीमेशन वाले पेज पर जाता हूं, तो मेरी नोटबुक शोर हो जाती है (मुझे संकेत मिलता है कि यह वहां कुछ भारी काम करता है)। अगर कम से कम परिणामस्वरूप एनिमेशन पर्याप्त चिकनी थे तो मैं खुद परवाह नहीं करता। लेकिन वे नहीं हैं। 8 जीबी रैम के साथ मेरे 2.4 गीगाहर्ट्ज कोर 2 डुओ के परिणामस्वरूप मुझे क्या मिलता है और समर्पित एनवीआईडीआईए जेफफोर्स 320 एम (ज्यादा नहीं, लेकिन कुछ सीएसएस के लिए पर्याप्त होना चाहिए, नहीं? ...) कुछ झटकेदार, यादृच्छिक रूप से झटकेदार हैं, कुछ मामलों में अजीब कलाकृतियों ... "एनीमेशन", जो अक्सर खराब होता है, यह जेएस समतुल्य है ...CSS3 एनिमेशन और प्रदर्शन: क्या कोई मानक हैं?

क्या किसी ने जेएस बनाम सीएसएस एनिमेशन की तुलना की है? या असली दुनिया के उपयोग के लिए प्रस्तावित CSS3 उपहारों का बेंचमार्किंग (उदाहरण के लिए उनमें से कितने गंभीर पृष्ठ पर एक साथ पृष्ठ पर हो सकते हैं)? क्या कोई सर्वोत्तम प्रथाएं हैं (जैसे - ऐसा करें, ऐसा न करें, या आपका ब्राउज़र क्रॉल करेगा - और ऐसे)?

उत्तर

12

CSS3 कुछ ब्राउज़रों में जीपीयू त्वरण का उपयोग करता है, जिसका अर्थ है कि यदि आपको एक महान जीएफएक्स कार्ड मिला है, तो परिणामस्वरूप चिकनी, तेज एनिमेशन होगा। जहां सीएसएस/जेक्यू आपकी याददाश्त का उपयोग करता है।

तो मुझे सच में नहीं लगता कि यह बेंचमार्क परीक्षण तुलना के हाथों के लिए संभव है।

ब्राउज़र के इतने बार अपडेट होने के साथ आप कितने एनिमेशन का उपयोग कर सकते हैं और हार्डवेयर कारक होने के कारण, "उपयोग मार्गदर्शिका" करना बहुत कठिन होगा।

पर GPU त्वरण देखने जे एस या तो :)

के लिए किसी भी नहीं देखा है अधिक जानकारी के लिए:

http://www.netmagazine.com/opinions/css3-vs-javascript

:

http://www.html5rocks.com/en/tutorials/speed/html5/#toc-hardware-accell

हालांकि इस विषय पर कुछ महान लेख हैं

http://www.whatcreative.co.uk/blog/tips/the-benefits-of-css3-vs-jquery/

+0

मुझे संदेह है कि कुछ CSS3 एनीमेशन 1 999 से किसी भी पीसी गेम की तुलना में जीपीयू पर "भारी" हैं। 10 साल पहले पागल चीजों के खेल की तुलना में गणित बहुत सरल हैं, इसलिए वास्तव में, गति की समस्या केवल सीएसएस-> जीपीयू के साथ ब्राउज़र के कार्यान्वयन है। लेकिन मैं केवल अनुमान लगा रहा हूँ। – vsync

+0

सच है। लेकिन मुझे लगता है कि यह एक ब्राउज़र से कितनी "शक्ति" को दूर करने में सक्षम होना चाहिए।कल्पना करें कि ब्राउज़र को आपके सभी GPU को गेम की तरह उपयोग करना चाहिए, फिर लोगों को इस पर विचार करने/दुरुपयोग करने के बारे में सोचें। तो उम्मीद है कि ब्राउज़र GPU उपयोग को संभालने में बेहतर हो जाएगा, लेकिन मुझे लगता है कि एक कारण है कि सरल लुप्तप्राय/एनिमेशन इतनी मांग कर रहे हैं। –

18

मैंने CSS3 संक्रमणों के साथ कुछ प्रोजेक्ट किए हैं और Jquery .animate() फॉलबैक जब CSS3 समर्थित नहीं है।

मैं अपने खुद के अलावा तीन का परीक्षण कंप्यूटर है:

  • एक 6 + साल लैपटॉप
  • एक 3 साल लैपटॉप (XP, Athlon 1800 + और राम की 768Mo चल) (चल भद्दा Vista और एक राम के 2go के साथ दोहरे कोर इंटेल सीपीयू)
  • एक Franken डेस्कटॉप (कुछ ओएस एक पी 4 और राम की 1GO के साथ स्थापित)

मैं क्या ने कहा कि समय की सबसे, CSS3 बेहतर प्रदर्शन करती है।

मेरा मतलब है "बेहतर प्रदर्शन करता है" केवल इतना है कि यह "बेहतर महसूस करता है": मैंने पेर्फ को बेंचमार्क करने की कोशिश नहीं की, न ही वैज्ञानिक परीक्षण विधि लागू करने की कोशिश की, और मेरा अवलोकन एक अनुभवजन्य से अधिक नहीं लिया जाना चाहिए महसूस। यह भी ध्यान रखें कि मैं मुख्य रूप से CSS3 संक्रमण का उपयोग करता हूं, न कि CSS3 एनिमेशन (यानी कीफ्रेम के साथ)।

हालांकि, "बेहतर" का अर्थ यहां "हमेशा अच्छा" नहीं है। पुराने कंप्यूटर पर, जावास्क्रिप्ट और CSS3 समान रूप से लगी हैं। यदि आपकी साइट जेएस या CSS3 भारी है, तो संस्करण 9 से पहले आईई हमेशा एक खराब अनुभव होता है, संस्करण 8 से पहले आईईएस हमेशा एक सच्चे दुःस्वप्न है। V4 से पहले फ़ायरफ़ॉक्स बेहतर है लेकिन पुराने कंप्यूटर पर बिल्कुल सही है।

सभी मामलों में, CSS3 को सही ढंग से लागू किया जाना चाहिए: उदाहरण के लिए मैंने पाया कि एक div को अस्पष्टता में फेंकना: 0 डिस्प्ले सेट किए बिना: कोई भी समाप्त होने पर हमेशा एक बुरा विचार नहीं है ... CSS3 संक्रमण काफी नया है कि कोई वास्तविक सर्वोत्तम प्रथा नहीं है मौजूद है, यह अभी परीक्षण और त्रुटि है।

आधुनिक मोबाइल उपकरणों पर (मेरे पास कुछ आईओएस, एंड्रॉइड और बीबीओएस डिवाइस हैं), CSS3 हमेशा जावास्क्रिप्ट से बेहतर तरीका है: आईपैड 1 पर, एक साधारण $ ('img')। FadeOut() काफी हो सकता है बदसूरत जब CSS3 संक्रमण साफ है।

तो, समाप्त करने के लिए, मेरे व्यक्तिगत (और सीमित) अनुभव बताता है:

  • css3 अक्सर जे एस की तुलना में बेहतर है, विशेष रूप से आधुनिक मोबाइल उपकरणों
  • हालांकि दोनों गरीब कंप्यूटर पर बुरा कर रहे हैं/ब्राउज़र के लिए संयोजन जब
  • सामान्य रूप से उपयोग किया जाता है, तो यह आपके उपयोगकर्ताओं पर निर्भर करता है। अगर उनके पास कला मैकबुक की स्थिति है, तो आप डर के बिना बहुत सी एनीमेशन का उपयोग कर सकते हैं। यदि वे खराब तरीके से सुसज्जित हैं, तो एनिमेशन उनके ब्राउज़िंग अनुभव को गंभीरता से बाधित कर सकते हैं।
  • मुझे लगता है कि सबसे अच्छा एक jQuery के वापस आने के साथ CSS3 के संक्रमण करते हैं समर्थित नहीं है, और उन्हें सरल (यानी चार गुण तीन अलग-अलग तत्वों पर एक ही बार में एनिमेट नहीं)

मुझे आशा है कि यह मदद करता है रखने के लिए है।

2

कुछ परियोजनाओं के लिए उत्पादन वातावरण में सीएसएस एनिमेशन का उपयोग करने के बाद, मुझे कहना है कि यह काफी दर्द है।

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

अब मेरे पास एचटीएमएल 5 एनीमेशन के साथ पर्याप्त अनुभव है, मैं निश्चित रूप से कह सकता हूं कि टिवनीलाइट सबसे अनुकूलित टूल है।

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

मैं इस लेख है कि डेवलपर सिर्फ लिखा था की वजह से इन परीक्षणों भागा:

http://www.greensock.com/transitions/

GSAP requestAnimationFrame का लाभ लेता है और सुपर-अनुकूलित है। इसमें सीएसएस 3 समकक्ष प्रदर्शन है, जिसमें अनुक्रमण, नियंत्रण, कॉलबैक के लिए बहुत बेहतर एपीआई है ...

पसंद का मामला! मैंने मेरा बनाया

2

यह (दिसंबर 2012 तक) नया है, Greensock द्वारा: http://www.greensock.com/js/speed.html

आपको बेंचमार्क कर सकते हैं और jQuery, YUI, zepto, Mootools, डोजो, TweenJS और GSAP तरह चौखटे पर जावास्क्रिप्ट एनिमेशन के साथ css3 एनिमेशन, भी की तुलना करें।

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