【发布时间】:2012-03-17 01:46:10
【问题描述】:
我在一个页面上有很多选择输入(96 或 384)。每个都有一个广泛的选项列表 - 几乎 1000。因此页面大小在 4-8MB 之间(1-4MB 压缩)。我决定通过只放置一次选项列表来加快页面加载速度,然后使用 JavaScript 将其添加到每个输入中。
不幸的是,浏览器要么需要大量时间才能完成任务(在 FF 10 上大约需要 3 分钟),要么会挂起(Chrome 17)。我试图用 jQuery 和纯 JS 完成任务。完全没有区别。
这个任务可行吗?要编写快速高效的 JavaScript,我应该知道什么?
编辑:我将所有选项放在一个字符串中,并使用 innerHTML 将其放在选择输入中。感谢您这么快的回复。
Edit2:我按照 Diodeus 建议的方式生成元素。 However, I load options when the select element is in focus (thanks rlemon).我相信所有答案都非常有帮助,并且可能对任何有类似问题的人都很有价值。谢谢你们。
【问题讨论】:
-
也许你应该展示你的 JS 代码,这样我们就可以看看它,但通常你可能会改变你的界面并只使用一个选择,从中将值添加到一个(只读)输入字段,而不是有很多大的选择。
-
也许您应该让您的输入 onfocus 加载选项列表...这样每个输入将加载时间稍长,但整个页面应该很快。跨度>
-
另一个好点。谢谢你,柠檬。
-
请记住,向页面添加额外的脚本/插件会增加整体大小,从而减慢页面加载速度。如果您还没有使用 jQuery,我不建议将其用于此目的。有许多轻量级 AJAX 和 XHR 库/对象可供您使用,它们不会带来大约 30-50kb 的额外开销。
标签: javascript jquery performance