我想检查浏览器是否支持.textContent
我想过这些选择:
if( document.body.textContent ) { }
if( document.createElement('div').textContent !== void(0) ) { }
当然,第一个更简单,但我看到的问题是浏览器可能会计算所有字符串,如果网站很大,这可能会很慢。
那么,我应该选择哪一个呢?还是有更好的选择?
编辑:我创建了一个jsperf
我想检查浏览器是否支持.textContent
我想过这些选择:
if( document.body.textContent ) { }
if( document.createElement('div').textContent !== void(0) ) { }
当然,第一个更简单,但我看到的问题是浏览器可能会计算所有字符串,如果网站很大,这可能会很慢。
那么,我应该选择哪一个呢?还是有更好的选择?
编辑:我创建了一个jsperf
和...
'textContent' in document.body
... 表达式您只需检查document.body
对象中的属性 (textContent) 是否存在,而无需实际检查其值。
是的,它false
在 IE8 中。
使用第二个选项。效率更高。我刚刚做了测试。
注意:原始测试。速度:355 毫秒对 6 毫秒。
<!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>