2012-03-22 12 views
8

मुझे अक्सर बताया गया है कि सीएसएस 3 डी ट्रांसफॉर्म मोबाइल सफारी में हार्डवेयर तेज हो गए हैं जो मुझे आश्चर्यचकित करता है कि निहितार्थ यह है कि 2 डी ट्रांसफॉर्म नहीं हैं? मैं किसी भी कारण से नहीं सोच सकता कि वे क्यों नहीं होंगे, क्योंकि वे मूल रूप से सभी को 3 डी ट्रांसफॉर्म के रूप में लागू किया जा सकता है, लेकिन मैं निश्चित रूप से जानना चाहता हूं।क्या 2 डी मोबाइल सफारी में हार्डवेयर को तेज कर देता है?

यदि यह पता चला है कि 2 डी ट्रांसफॉर्म हार्डवेयर त्वरित नहीं हैं, तो कोई अंतर्दृष्टि क्यों सराहना की जाएगी।

उत्तर

15

आप सही हैं, सीएसएस 2 डी ट्रांसफॉर्म मोबाइल सफारी में हार्डवेयर तेज नहीं हैं, लेकिन 3 डी ट्रांसफॉर्म हैं। मुझे यकीन नहीं है कि यह ऐसा क्यों है, लेकिन शायद उन्होंने फैसला किया कि यह 2 डी ट्रांसफॉर्म के लिए अधिक था। जीपीयू का उपयोग अनावश्यक रूप से बैटरी जीवन को प्रतिकूल रूप से प्रभावित कर सकता है।

2 डी ट्रांसफॉर्म को 3 डी ट्रांसफॉर्म में परिवर्तित करना बहुत आसान है, इसलिए यह कोई समस्या नहीं है। एक चाल translateZ उपयोग करने के लिए है (0) के रूप में यहाँ वर्णित: http://creativejs.com/2011/12/day-2-gpu-accelerate-your-dom-elements/

संपादित

एप्पल अपने दस्तावेज में इसके बारे में कुछ नहीं कहा, तो यह एक आधिकारिक स्रोत प्राप्त करने के लिए मुश्किल है। यहां बताया गया है एप्पल से डीन जैक्सन (http://mir.aculo.us/2010/08/05/html5-buzzwords-in-action/ से) इसके बारे में कहना था है:

संक्षेप में, किसी भी बदलना है कि अपने कार्यों में से एक के रूप में एक 3 डी आपरेशन है हार्डवेयर संयोजन ट्रिगर किया जाएगा, तब भी जब वास्तविक को बदलने 2 डी है , या कुछ भी नहीं कर रहा है (जैसे translate3d (0,0,0))। ध्यान दें कि यह सिर्फ वर्तमान व्यवहार है, और भविष्य में बदल सकता है (यही कारण है कि हम इसे दस्तावेज या प्रोत्साहित नहीं करते हैं)। लेकिन यह कुछ स्थितियों में बहुत उपयोगी है और रेड्रो प्रदर्शन में काफी सुधार कर सकता है।

सेन्चा के एरिया हिदायत ने मोबाइल ब्राउज़र पर हार्डवेयर त्वरण को समझाते हुए एक पोस्ट लिखा: http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/

translate3d या scale3d को (भले ही वहाँ कोई 3 डी शामिल होता है) सीएसएस परिवर्तन मैट्रिक्स स्थापित करने का सबसे अच्छा अभ्यास तथ्य से आता है कि मैट्रिक्स के उन प्रकार के एनिमेटेड स्विच करेंगे: यहाँ पोस्ट से एक टुकड़ा है तत्व को अपनी परत रखने के लिए जो शेष वेब पेज और अन्य परतों के साथ एक साथ मिश्रित किया जाएगा। लेकिन आपको ध्यान रखना चाहिए कि बिल्डिंग और कंपोजिटिंग परतें मूल्य के साथ आती हैं, अर्थात् स्मृति आवंटन। हार्डवेयर त्वरण के लिए वेब पेज में हर छोटे तत्व को अंधाधुंध रूप से मिश्रित करना बुद्धिमान नहीं है, आप स्मृति खाएंगे।

यहां HTML5rocks.com का एक आलेख है जो हार्डवेयर त्वरण पर चर्चा करता है: http://www.html5rocks.com/en/tutorials/speed/html5/। यहाँ यह से एक टुकड़ा है:

वर्तमान में अधिकांश ब्राउज़रों केवल GPU त्वरण का उपयोग जब वे एक मजबूत संकेत है कि किसी HTML तत्व से लाभ होता है। सबसे मजबूत संकेत यह है कि इसमें एक 3 डी परिवर्तन लागू किया गया था। अब आप वास्तव में एक 3 डी परिवर्तन लागू नहीं करना चाहते हैं, लेकिन फिर भी GPU त्वरण से लाभ प्राप्त करें - कोई समस्या नहीं। बस पहचान परिवर्तन लागू करें:

-webkit-transform: translateZ (0);

फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर पहले से ही 2 डी ट्रांसफॉर्म के लिए हार्डवेयर त्वरण का उपयोग करते हैं, इसलिए यदि मैं वेबकिट ब्राउज़र (क्रोम, सफारी) को निकट भविष्य में शामिल करता हूं तो मुझे आश्चर्य नहीं होगा।

+0

यदि आप एक आधिकारिक स्रोत के लिए एक लिंक प्रदान कर सकते हैं तो मैं आपका जवाब स्वीकार करूंगा। – KaptajnKold