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.
题
I want to check if the browser supports .textContent
I have thought these options:
if( document.body.textContent ) { }
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
解决方案
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.
其他提示
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>