Question

I want to check if the browser supports .textContent

I have thought these options:

  1. if( document.body.textContent ) { }
  2. if( document.createElement('div').textContent !== void(0) ) { }

Of course, the first one is simpler, but the problem I see is that maybe the browser calculates all the string, which can be slow if the website is huge.

Then, which one should I choose? Or is there a better option?

Edit: I have created a jsperf

Was it helpful?

Solution

With...

'textContent' in document.body

... expression you'll just check a property (textContent) existence in document.body object, without actually checking its value.

And yes, it is false in IE8.

OTHER TIPS

Use 2nd option. Far more efficient. I've just done the test.

Note: Raw Test. Speed: 355 ms vs 6 ms.

<!DOCTYPE html>
<html>
    <body>
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg

        <script>
        var d0 = new Date();var n0 = d0.getTime();  
        for(var i = 0 ; i < 10000 ; i++){

        if( document.body.textContent ) { }


        }var d1 = new Date();   var n1 = d1.getTime();  console.log(n1-n0);


        var array0 =[];
        var d0 = new Date(); var n0 = d0.getTime(); 
        for(var i = 0 ; i < 10000; i++){

        if( document.createElement('div').textContent !== void(0) ) { }



        }var d1 = new Date();   var n1 = d1.getTime();  console.log(n1-n0); 

        </script>



    </body>
</html>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top