प्रदर्शन के विषय पर बस मेरे दो सेंट में फेंकना। छोटे (100 पंक्तियों के तहत, उदाहरण के लिए) टेबल के लिए, डीवीवी का उपयोग करके प्रदर्शन में काफी अंतर नहीं आएगा।
आप दूसरी ओर बहुत लंबे डेटासेट उत्पन्न करने के लिए, चाहते हैं, आप पूरी तरह से नीचे हाथ पारंपरिक HTML तालिकाओं का उपयोग करना चाहिए।
संक्षिप्त स्पष्टीकरण:
यह सब मेरी कंपनी के परियोजना, जहां मैं एक जावास्क्रिप्ट वर्ग लिखा procedurally SQL डेटा (यह मॉड्यूल की एक रिपोर्टिंग तरह है) के आधार पर मेरे लिए टेबल उत्पन्न करने के लिए से पैदा की। वैसे भी, मुझे डीआईवी पसंद है इसलिए मैंने इसे डीवीवी आधारित लिखा, ओपी उदाहरण की तरह।
कुछ भयानक प्रदर्शन (आईई 8 विशेष रूप से) के बाद, मैंने इसे केवल टेबलों का उपयोग करके फिर से लिखने का फैसला किया क्योंकि यह कुल मिलाकर सरल टैब्यूलर डेटा है। टेबल्स, किसी भी कारण से, क्रोम में मेरी मशीन पर लगभग दोगुनी तेजी से हैं। सफारी के लिए भी यही सच है।
उसने कहा, चूंकि मैं अपना काम कोड प्रदान नहीं कर सकता, मैंने थोड़ा बेंचमार्क चीज़ लिखा था कि बस आप या तो पद्धति का प्रयास करें। आप देखेंगे कि वे लगभग समान हैं, केवल एक टेबल के मानक व्यवहार की नकल करने के लिए स्टाइल के साथ divs का उपयोग करता है, और दूसरा सिर्फ पुरानी स्कूल तालिका है।
एकमात्र असली अंतर तत्व उत्पन्न होने का प्रकार है, इसलिए यह केवल एक चीज है जिसके बारे में मैं डेल्टा में खाता हूं। मुझे यकीन है कि यह ब्राउज़र द्वारा भिन्न होता है, लेकिन ऐसा लगता है कि तालिका तत्व केवल तेज़ हैं।
<script type="text/javascript">
var time_start = new Date().getTime();
var NUM_ROWS = 5000;
var NUM_CELLS = 8;
var OLD_STYLE = 1; // toggle 0/1, true/false
if(OLD_STYLE)
{
var table = document.createElement('table');
document.body.appendChild(table);
for(var a = 0; a < NUM_ROWS; a++)
{
var row = document.createElement('tr');
for(var b = 0; b < NUM_CELLS; b++)
{
var cell = document.createElement('td');
cell.innerHTML = 'cell';
row.appendChild(cell);
}
table.appendChild(row);
}
}
else
{
var table = document.createElement('div');
document.body.appendChild(table);
for(var a = 0; a < NUM_ROWS; a++)
{
var row = document.createElement('div');
row.setAttribute('style','display: table-row; padding: 2px;')
for(var b = 0; b < NUM_CELLS; b++)
{
var cell = document.createElement('div');
cell.setAttribute('style','display: table-cell; padding: 2px');
cell.innerHTML = 'cell';
row.appendChild(cell);
}
table.appendChild(row);
}
}
var dt = (new Date().getTime() - time_start)/1000;
console.log(dt + ' seconds');
</script>
स्रोत
2014-01-16 19:59:49
टेबल्स लेआउट संभव बनाते हैं, divs इसे असंभव बनाते हैं। टेबल्स पढ़ने योग्य, समझने में आसान कोड के लिए बनाते हैं। Divs को हैकरी और चालों के भार की आवश्यकता होती है जो समझने में इतनी आसान नहीं होती है और फिर भी परिणाम अवांछित व्यवहार से बहुत अधिक होते हैं। – Anderson
यदि आप डेटा के साथ इस तालिका को भर रहे हैं? हाँ, टेबल का उपयोग करें। क्या आप इसे अपनी वेबसाइट पर ले जाने के लिए उपयोग कर रहे हैं? *** *** *** टैबलेट का उपयोग न करें **! डिव वेबसाइट सामग्री/लेआउट के लिए हैं, टेबल एक पुरातन तत्व हैं जिनके पास वास्तव में अच्छी तरह से संख्या/डेटा डालने का एकमात्र उद्देश्य है। – Mike