工作中碰到一个变态的性能问题。CMS中有个页面,上面有个多选框,其中有14000个选项。页面中提供给用户一个按钮,点击这个按钮时要清除已选中状态。原有的代码是这样的:
function re() {
for (var i = 0; i < document.form1.totopicid.options.length; i++) {
document.form1.totopicid.options[i].selected = false;
}
}
先抛开循环时多次计算length的问题不谈,光是执行14000次的document.form1.totopicid.options[i].selected = false;就要用户等很长时间。其实有一种更快捷的方式去做这件事情。代码如下:
function re() {
var select = document.form1.totopicid;
select.selectedIndex = 0;
select.options[0].selected = false;
}
这样不仅代码量小,而且性能也能得到很大提升。 原文链接:https://www.f2er.com/js/527666.html