Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么更好?切换可见性或操纵文本_Javascript_Jquery_Performance - Fatal编程技术网

Javascript 什么更好?切换可见性或操纵文本

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:

<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%中放弃我们的机会