[英]Chosen.js Performance
我正在尝试将chosen.js用于包含大约1400个条目的列表。 运行所选的初始化代码大约需要1.5秒。
在SelectParser.prototype.add_option()
跟踪了它的慢速部分是html: option.innerHTML
this.parsed.push({
array_index: this.parsed.length,
options_index: this.options_index,
value: option.value,
text: option.text,
html: option.innerHTML, // <======= here
selected: option.selected,
disabled: group_disabled === true ? group_disabled : option.disabled,
group_array_index: group_position,
classes: option.className,
style: option.style.cssText
});
如果将其设置为简单的html: option.text
则所选插件似乎仍然可以按要求工作。
是否有其他改变这个以及任何其他提高性能的技巧?
虽然HTML序列化通常是一个缓慢的操作,但我发现令人惊讶的是它应该负责超过一秒的延迟。 我运行的快速测试表明,在Firefox 33和Chrome 38中,对5000个选项执行option.innerHTML
时间不到2毫秒,其他浏览器的行为应该类似。 因此,我怀疑您错误地确定了问题的根源。
无论哪种方式,您的变化都有两个含义:
<
等特殊字符时,这将导致麻烦,这也是安全问题( XSS )的潜在来源。 为了防止这种情况,您的代码应该包含转义: html: option.text.replace("&", "&").replace("<", "<").replace(">", ">"),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.