【发布时间】:2013-06-16 12:03:14
【问题描述】:
This blog post 建议 textContent 优于 innerText 以避免布局抖动。但它专注于检索元素的文本;对于 setting 元素文本,情况正好相反——至少在以下示例中是这样。
此示例使用 innerText 并且不会产生布局抖动:
<style>
#test {
background-color: blue;
float: right;
width: 100px;
height: 100%;
}
</style>
Test test test
<div id="test"></div>
<script>
setInterval(function() {
document.querySelector('#test').innerText = 'innerText';
}, 100);
</script>
但是将 innerText 替换为 textContent 并观察它的颠簸:
有人可以解释这种行为吗?我可以做些什么来避免布局颠簸并仍然以基于标准的方式更改元素的文本?
【问题讨论】:
-
我会避免
innerText:它是非标准的并且在实现上差异很大,甚至在 Firefox 中也没有实现。如果你只是附加一个文本节点会发生什么?var textNode = document.createTextNode("innerText"); document.getElementById("test").appendChild(textNode)
标签: javascript html performance dom