2013-06-25 6 views
26

मैं एक ऐसी साइट का निर्माण कर रहा हूं जो स्क्रॉलिंग प्लगइन का उपयोग कर रहा है जो मूल रूप से स्क्रॉलिंग को एनिमेट करता है। मैं प्रदर्शन के बारे में काफी चिंता करता हूं जैसे कि मैं साइट पर कुछ छवियां डालता हूं, स्क्रॉलिंग/एनिमेटिंग के दौरान यह काफी चंचल दिखता है।<img /> प्रदर्शन में पृष्ठभूमि-छवि (सीएसएस) बनाम

छवियों के साथ पता लगाने वाली मुख्य समस्या रीफ्लो/रीपेंट समस्या है, जब छवि में सही आयाम नहीं होते हैं और इसलिए स्केल किया जाता है (मुझे इससे निपटना होगा, मुझे best practice के बारे में पता है)।

इस कथन के साथ दिमाग में (छवियों को स्केल किया जाएगा)। प्रदर्शन के लिए पृष्ठभूमि के रूप में उन छवियों के साथ बेहतर, छवि तत्व या divs क्या होना चाहिए?

मैंने यह जेएसफ़िडल्स बनाया है कि मेरे क्रोम ब्राउज़र मेमोरी टूल में, दिखाएं कि बैक-ग्राउंड छवि विकल्प कम स्मृति का उपयोग करता है।

<img />: http://jsfiddle.net/ek6Xn/

<img src="..." /> 

background-image: http://jsfiddle.net/ek6Xn/1/

<div></div> 
div { 
    background:url(...); 
    background-size:100% 100%; 
} 

संदर्भ:

  1. Difference in performance between img tag elements vs divs with background images?
  2. When to use IMG vs. CSS background-image?
  3. http://www.html5rocks.com/en/tutorials/speed/unnecessary-paints/
  4. http://updates.html5rocks.com/2013/02/Profiling-Long-Paint-Times-with-DevTools-Continuous-Painting-Mode
+0

इसके अलावा, खोज इंजन और सोशल मीडिया एम्बेडिंग सिस्टम सीएसएस पृष्ठभूमि छवियों को पसंद नहीं करते हैं। –

+0

क्या आप कृपया बता सकते हैं क्यों? – Alvaro

+0

वे उन्हें एम्बेड नहीं करते हैं या, फेसबुक एम्बेडिंग के मामले में, इसे साझा करते समय अंगूठे छवि के रूप में नहीं माना जाता है। –

उत्तर

19

व्यक्तिगत तौर पर मैं इस उदाहरण में प्रदर्शन के बारे में भूल जाते हैं और क्या छवि है पर ध्यान केंद्रित करेंगे:

1) छवि = सामग्री

2) पृष्ठभूमि आईएम आयु = डिज़ाइन

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

यदि आप अलग-अलग स्क्रीन आकारों (या कुछ उपकरणों पर बिल्कुल कोई छवि नहीं) पर प्रदर्शित करने के लिए एक अलग छवि चाहते हैं, या यदि आप मुद्रित होने पर छवि के लिए खुश नहीं हैं, या आप खुश हैं अगर सीएसएस बंद हो जाता है तो छवि प्रकट नहीं होती है, तो आमतौर पर छवि "डिज़ाइन" होती है और आपको पृष्ठभूमि छवि का उपयोग करना चाहिए।

+3

स्थिति का बहुत बढ़िया, संक्षेप सारांश। किस का उपयोग करने के लिए समाशोधन में बहुत मददगार। – VisWebsoft

+26

क्षमा करें, लेकिन शायद ही स्वीकार्य है। सवाल प्रदर्शन पर केंद्रित है, और 1) 2) प्रतिक्रिया इस दायरे में पूरी तरह से असंबंधित है। दूसरा - सीएसएस बंद कर दिया? वास्तव में? 2015 में, समृद्ध वेब ऐप में हम वास्तव में इस विकल्प पर विचार करते हैं? क्षमा करें, लेकिन यह सवाल के लिए पूरी तरह से अप्रासंगिक लगता है। –

+0

उत्तर 2013 में पोस्ट किया गया था लेकिन वही बात अब लागू होती है - सीएसएस सामग्री के लिए डिजाइन/लेआउट के लिए नहीं है। आगे बढ़ें और आधार पर सीएसएस का उपयोग करके सामग्री की सेवा करें, कोई भी इसे बंद नहीं करेगा - इससे – MrCarrot

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