जब कुछ स्मृति में डोम में जोड़ा जाता है, कि एक ब्राउज़र रीफ़्लो करता है? या यह तभी होता है जब स्क्रीन पर पिक्सल को बदलने के लिए कहा जाता है कि रिफ्लो होता है? उदाहरण के लिए:जब स्मृति में डीओएम में कुछ जोड़ा जाता है, तो क्या इसका कारण ब्राउज़र को रीफ्लो करता है?
केस 1: Img तत्वों एक अलग सरणी में रखा और फिर जोड़ दिए जाते हैं डोम
रहे हैं: Img तत्वों एक समयvar parentDiv = $('#imgHolder');
var imgArray = []; // Array of img paths populated in another function
$.each(imgArray, function()
{
parentDiv.append(createImgEle(this)); // createImgEle() // returns an <img> with the right src
}
केस 2 में डोम एक के साथ जोड़ दिया
var parentDiv = $('#imgHolder'); var imgArray = []; // Array of img paths populated in another function var tempArray = []; // Holds the img elements until its fully populated $.each(imgArray, function() { tempArray.push(createImgEle(this)); } parentDiv.append(tempArray);
केस 3: या तो मामले में 1 या 2 लेकिन डिफ़ॉल्ट रूप से, parentDiv display:none;
करने के लिए सेट और बाद दिखाई किया जाता है प्रत्येक पाश किया जाता है।
असल में, मैं क्या जानना चाहता हूं, ब्राउज़र केवल स्क्रीन के पिक्सल को बदलने के लिए कहा जाने पर रीफ्लो करना प्रारंभ होता है?
Btw, कोड केवल उदाहरण उद्देश्यों के लिए है और न उत्पादन में तो किसी भी तर्क त्रुटियों के लिए मुझे स्लैम नहीं है। किसी भी सलाह के लिए धन्यवाद।
मामला 1 में, आप संलग्न प्रति एक redraw मिल जाएगा, और इस मामले में 2 में आप एक redraw मिलेगा। प्रकरण 3 मुझे यकीन नहीं है कि टीबीएच। मैं मामले 2 –
के साथ जाऊंगा, मुझे आश्चर्य है कि इस के साथ क्रॉस-ब्राउज़र अंतर क्या होगा। क्या आईई इसे क्रोम या फ़ायरफ़ॉक्स से अलग तरीके से संभालता है? –
सामान्य सबसे अच्छा अभ्यास (कई जवाब यहां और jQuery मंचों पर, और मेरे अपने अनुभव के आधार पर) के लिए एक ही डोम के लिए एक संलग्न प्रदर्शन करते हैं। चाहे इसका मतलब है कि एक बार में एक सरणी जोड़ना, या डोम फ्रैगमेंट बनाना और डीओएम फ्रैगमेंट की सामग्री को जोड़ना कोई फर्क नहीं पड़ता। किसी भी तरह से, आप केवल एक बार डोम को छू रहे हैं। –