Javascript 哪个电话更贵?显示隐藏dom节点或创建删除dom节点
哪个电话更贵Javascript 哪个电话更贵?显示隐藏dom节点或创建删除dom节点,javascript,jquery,dom,Javascript,Jquery,Dom,哪个电话更贵 显示隐藏dom节点或 创建删除dom节点 假设我们只需要操作1个dom或几个(少于5个)节点,并且应用程序运行在桌面上 对于一小部分人来说,这有什么关系吗? 对于移动应用程序呢?这两者之间的差异将是无穷小的,仅在少数几个元素上——它可以被认为是完全可以忽略的 也就是说,除非使用jQuery的.show()和.hide(),否则通过CSS显示和隐藏元素会更快。jQuery的.hide()比任何其他隐藏元素的方法都慢得多。如果您想知道原因,请阅读我答案底部的“为什么.hide()较慢?
对于移动应用程序呢?这两者之间的差异将是无穷小的,仅在少数几个元素上——它可以被认为是完全可以忽略的 也就是说,除非使用jQuery的
.show()
和.hide()
,否则通过CSS显示和隐藏元素会更快。jQuery的.hide()
比任何其他隐藏元素的方法都慢得多。如果您想知道原因,请阅读我答案底部的“为什么.hide()
较慢?”部分
无论如何,你应该根据哪种方法最适合你的需要来做出决定。如果您不再需要该元素,您也可以将其删除。如果你只是不想隐藏一段时间或在某些情况下,显示/隐藏它
但是如果你想自己测试它,:)
为什么
.hide()
速度较慢?
jQuery的.hide()
基本上与使用.css('display','none')
相同,只是它缓存了display
样式的前一个值,因此当调用.show()
时,元素将正确还原为与原来完全相同的外观。如果它有display:inline
,当它重新显示时,它就会有它。如果它有display:block
,它将有display:block
。这可能非常有用
下面是一个例子:
假设我们有一个id为=“myDiv”的div,它在一个外部文件中使用display:inline
设置样式。我们想把它藏起来
使用.css
方式,我们可以做到:
$('#myDiv').css('display','none');
然后,稍后某个时候,您的一个开发伙伴希望在特定条件下再次展示它。他不知道显示属性应该是什么,因为css在某个外部文件中。大多数开发人员默认使用显示:block
,如下所示:
$('#myDiv').css('display','block');
然而,在这种情况下,我们会得到一种完全不同的样式,因为它最初是内联的
。一个聪明的开发人员会毫不费力地找出哪里出了问题,但并非所有的开发人员都是聪明的:)
有了
.show()
和.hide()
,这就不成问题了。我们不在乎它以前是什么风格的。我们只想让它回到原来的位置,这正是它要做的 这两个元素之间的差异将是无穷小的,只有少数元素可以忽略不计
也就是说,除非使用jQuery的.show()
和.hide()
,否则通过CSS显示和隐藏元素会更快。jQuery的.hide()
比任何其他隐藏元素的方法都慢得多。如果您想知道原因,请阅读我答案底部的“为什么.hide()
较慢?”部分
无论如何,你应该根据哪种方法最适合你的需要来做出决定。如果您不再需要该元素,您也可以将其删除。如果你只是不想隐藏一段时间或在某些情况下,显示/隐藏它
但是如果你想自己测试它,:)
为什么
.hide()
速度较慢?
jQuery的.hide()
基本上与使用.css('display','none')
相同,只是它缓存了display
样式的前一个值,因此当调用.show()
时,元素将正确还原为与原来完全相同的外观。如果它有display:inline
,当它重新显示时,它就会有它。如果它有display:block
,它将有display:block
。这可能非常有用
下面是一个例子:
假设我们有一个id为=“myDiv”的div,它在一个外部文件中使用display:inline
设置样式。我们想把它藏起来
使用.css
方式,我们可以做到:
$('#myDiv').css('display','none');
然后,稍后某个时候,您的一个开发伙伴希望在特定条件下再次展示它。他不知道显示属性应该是什么,因为css在某个外部文件中。大多数开发人员默认使用显示:block
,如下所示:
$('#myDiv').css('display','block');
然而,在这种情况下,我们会得到一种完全不同的样式,因为它最初是内联的
。一个聪明的开发人员会毫不费力地找出哪里出了问题,但并非所有的开发人员都是聪明的:)
有了
.show()
和.hide()
,这就不成问题了。我们不在乎它以前是什么风格的。我们只想让它回到原来的位置,这正是它要做的 启动JSPerf并找出答案:)启动JSPerf并找出答案:)