2012-10-29 5 views
24

शीर्षक बहुत स्पष्ट है: क्या पाठ के साथ अवधि भरने के लिए innerHTML और createTextNode (Append के साथ उपयोग किया गया) के बीच कोई बड़ा अंतर है?क्या आंतरिक HTML के बीच कोई बड़ा अंतर है और एक अवधि भरने के लिए createTextNode का उपयोग कर रहा है?

+0

कोई फर्क नहीं पड़ता। –

+3

क्या? createTextNode() नोड पर पाठ जोड़ते समय आंतरिक HTML से अधिक तीव्रता है। Http://jsperf.com/innerhtml-and-createtextnode – devnull69

+0

@ devnull69 यह परीक्षण विशेष रूप से नई सामग्री को कई बार जोड़ने के लिए है (और HTML जोड़ों की गणना स्वाभाविक रूप से धीमी हो जाएगी)। लेकिन बस पाठ जोड़ना बहुत बराबर है (आंतरिक HTML वास्तव में एक छोटा सा तेज़ है): http://jsperf.com/innerhtml-and-createtextnode/2 – David

उत्तर

29

बेशक। createTextNode किसी भी तार से बच जाएगा और उन्हें दिखाएगा, जबकि innerHTML एक डोम में एचटीएमएल की तरह तारों को प्रस्तुत कर सकता है। यदि आप यह नहीं चाहते हैं (जब तक कि आप सुनिश्चित न हों कि टेक्स्ट में कोई अनचाहे टैग नहीं है, उदाहरण के लिए सीधे शाब्दिक असाइन करते समय), आप textContent (या innerText IE के लिए) का उपयोग कर सकते हैं।

फिर भी मैं createTextNode की अनुशंसा करता हूं, क्योंकि सभी ब्राउज़र बिना किसी क्विर्क के समान रूप से इसका समर्थन करते हैं।

+0

"* ... पाठ के साथ एक अवधि भरने के लिए *" –

+3

हां। लेकिन * टेक्स्ट * में टैग आदि हो सकते हैं (आप कभी नहीं जानते), इसलिए मैं आशा करता हूं कि ओपी कम से कम – Bergi

+1

@ बर्गी 'इनरटेक्स्ट'/'टेक्स्टकंटेंट' का उपयोग करेगी- आपको वैकल्पिक उत्तर के रूप में टेक्स्ट सामग्री/आंतरिक टेक्स्ट को शामिल करने के लिए अपना उत्तर अपडेट करना चाहिए (शायद यहां तक ​​कि पसंदीदा)। – RobG

0

मेरी समझ यह है कि आंतरिक HTML की कुछ कुशलताएं सभी बाध्य घटनाओं को हटाती हैं, इसलिए createTextNode का उपयोग करना बेहतर है।

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