我正在编写一些 jQuery 代码,它可以同时隐藏或显示大表中的大量表列。我想知道使用这样的代码是否会更快:
$("selector 1, selector 2, selector 3").css("display", "none");
或这样的代码:
$("selector 1").css("display", "none");
$("selector 2").css("display", "none");
$("selector 3").css("display", "none");
所以我使用jsperf.com 创建了一个性能测试用例。有了这个,我确定第一种类型的代码(使用一个带有多个选择器的长字符串)比第二种类型的代码(一次隐藏一个列)快约 53%。然而,当我写完它时,它会变得难以阅读,看起来像这样:
$("#table tr *:nth-child(4), #table tr *:nth-child(5), #table tr *:nth-child(6), #table tr *:nth-child(7), #table tr *:nth-child(8), #table tr *:nth-child(9), #table tr *:nth-child(10), #table tr *:nth-child(11), #table tr *:nth-child(12)").css("display", "none");
所以我的问题是,对于 jQuery/JS 代码来说,哪个是更大的弊端——性能低下,还是缺乏可读性?我的背景是 Python,因此我倾向于将可读性置于性能之上,而 53% 在现实世界中似乎并不是一个巨大的下降。但另一方面,我计划在部署后缩小我的 JS 代码,因此无论如何它最终都不会可读......尽管我知道那里有去缩小器可以将我的代码返回到其原始可读或不可读的形式。正如你所看到的,我可以围绕这个话题谈论自己,而且我不希望开始辩论或讨论,所以我只是在这里发布这个,以防万一在 jQuery/ JS 社区。