मेरी परियोजना में एक HTML5 कैनवास है जिस पर ग्राफिकल ऑब्जेक्ट बार-बार खींचे जाते हैं। ये वस्तुएं तेजी से बदलती हैं। उन्हें आकर्षित करने में समय लगता है। मैं इसे तेजी से कैसे बना सकता हूं?एचटीएमएल 5 कैनवास: ऑब्जेक्ट को फिर से खींचना या बिटमैप्स का उपयोग करना बेहतर है?
ऑब्जेक्ट्स अत्यधिक जटिल नहीं हैं लेकिन इसमें arcs, gradients, बहुभुज जैसी चीजें हैं।
किसी ऑब्जेक्ट का स्वरूप लगभग 10 गुणों पर निर्भर करता है जिनमें प्रत्येक के पास लगभग 10 मान होते हैं। इसका मतलब है कि ऑब्जेक्ट की तुलना में केवल 100 अलग-अलग उपस्थितियां हैं। यही कारण है कि मैं केवल एक बार प्रत्येक उपस्थिति को चित्रित करने के बारे में सोच रहा हूं और फिर पुन: उपयोग के लिए बिटमैप कैशिंग कर रहा हूं।
सब कुछ ग्राहक पर काम होने चाहिए (यानी मैं पहले से तैयार छवियों का उपयोग नहीं कर सकते हैं)
- क्या HTML5 कैनवास के साथ ऐसा करने का सबसे अच्छा तरीका हो सकता है?
- क्या यह हर समय ऑब्जेक्ट को फिर से खींचने से अधिक बिटमैप्स के साथ काम करने का ऊंचा विचार है या नहीं?
मैंने अपने डेमो और फ़ायरफ़ॉक्स 7 पर Win7 पर कोशिश की, मैं वास्तव में कैशिंग और गैर-कैशिंग के बीच बहुत अंतर नहीं देख सका। मैं अभी भी कैशिंग का उपयोग करने के साथ सहमत हूं क्योंकि "ऑब्जेक्ट्स" (बहुभुज/ग्रेडिएंट) कैशिंग ड्राइंग करते समय बहुत तेजी से होता है। नए ब्राउज़र के प्रतिपादन एपीआई समर्थन के कारण कैशिंग की वजह से घूमने के कारण घूमने का कारण – Niko
इसके अलावा, यह आलेख कैनवास प्रदर्शन पर युक्तियों के लिए बहुत ही बढ़िया है: http://www.html5rocks.com/en/tutorials/canvas/performance/ –
@ निको मुझे अपने डेमो को अब अपने पुराने पुराने अपडेट करने की ज़रूरत है, मुख्य प्रदर्शन लाभ जो आप देखते हैं वह तब होता है जब आप स्क्रीन पर कुछ सौ अधिक जोड़ते हैं। – Loktar