Javascript 什么更好?切换可见性或操纵文本
我有一个标题文本如下的div:Javascript 什么更好?切换可见性或操纵文本,javascript,jquery,performance,Javascript,Jquery,Performance,我有一个标题文本如下的div: <div class="vehicleCntr" id="vehicles"> <div class="header"> <h3 id="name"> Trucks </H3> </div> 卡车 标题H3中的文本只能采用2个值:卡车或轿车。除了这两个,永远不会有其他价值。单击cars超链接时,标题必须更改为“cars”,单击trucks超链接时,标题必须更改为“t
<div class="vehicleCntr" id="vehicles">
<div class="header">
<h3 id="name"> Trucks </H3>
</div>
卡车
标题H3中的文本只能采用2个值:卡车或轿车。除了这两个,永远不会有其他价值。单击cars超链接时,标题必须更改为“cars”,单击trucks超链接时,标题必须更改为“trucks”
我是否应该删除h3的文本并在每次单击时替换它,或者我是否应该有2个h3,如下面所示并切换可见性:
<div class="header">
<h3 id="trucks"> Trucks </H3>
<h3 id="cars"> Cars</H3>
</div>
卡车
汽车
我正在考虑这两种方法之间的性能优势(如果有)。因为我假设它涉及重新喷漆和/或回流焊。每次都会发生回流,所以我认为两者之间没有太大区别。但是,我会选择第二种,因为我不必总是在DOM中添加/删除新内容。每次都会发生重新流动,因此我认为两者之间没有太大区别。但是,我会选择第二种,因为我不必总是在DOM中添加/删除新内容。我认为防止回流的唯一方法是使用
可见性:隐藏,但是元素仍然会占用屏幕上的空间。如果要删除/隐藏它,需要回流。我想说,display:none
是你最好的选择
编辑:上面的代码片段是CSS规则。我认为防止回流的唯一方法是使用可见性:隐藏
,但是元素仍然会占用屏幕空间。如果要删除/隐藏它,需要回流。我想说,display:none
是你最好的选择
编辑:上面的代码片段是CSS规则。您使用.text()
的第一种方法似乎最快:
尽管在更大的范围内,除非有数百个元素发生变化,否则尝试寻找最快的元素似乎是微观优化。使用.text()
的第一种方法似乎最快:
尽管在更大的范围内,除非有数百个元素发生变化,否则尝试找到最快的似乎是微观优化。在我看来,性能差异不值得担心,因此我会根据其他标准进行选择。具体来说,我可能会选择第二种方法,切换可见性,这样,如果将来您想更改与每个单词相关的格式,您可以在HTML/CSS中定义所有内容,并保持JS的简单性-例如。,您可以定义与每个单词相关联的背景图片。在我看来,性能差异不值得担心,因此我会根据其他标准进行选择。具体来说,我可能会选择第二种方法,切换可见性,这样,如果将来您想更改与每个单词相关的格式,您可以在HTML/CSS中定义所有内容,并保持JS的简单性-例如。,您可以定义与每个单词相关联的背景图片。我认为您也应该考虑语义。如果有两个H3标签的意思不同,那么肯定会让搜索引擎和使用不关心CSS的浏览器的人感到困惑。我认为你也应该考虑一下语义。如果有两个H3标签在说不同的话,肯定会让搜索引擎和使用不关心CSS的浏览器的人感到困惑。这与JS性能没有什么关系,而是与浏览器(引擎)性能有关。你注意到这会导致性能瓶颈吗?因为如果没有,你可能是在浪费时间节省一两毫秒。“程序员浪费大量时间考虑或担心其程序中非关键部分的速度,而在考虑调试和维护时,这些提高效率的尝试实际上会产生强烈的负面影响。我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。然而,我们不应该在这关键的3%上放弃我们的机会。“~~~~ Donaldknuth这与JS性能没有多大关系,这都是关于浏览器(引擎)性能的。你注意到这会导致性能瓶颈吗?因为如果没有,你可能是在浪费时间节省一两毫秒。”程序员浪费大量时间考虑或担心其程序中非关键部分的速度,而在考虑调试和维护时,这些提高效率的尝试实际上会产生强烈的负面影响。我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。然而,我们不应该在这关键的3%中放弃我们的机会