如何克隆元素并用克隆的元素替换现有元素?

时间:2013-02-11 04:21:17

标签: javascript html dom prototypejs

我正在尝试填充一个选择框,其中包含来自ajax调用的大约5000个选项。我想使用相同的数据来更新其他8个选择框。我正在使用prototype.js并使用.update()函数。 但问题是它暂时冻结了IE和Chrome。 所以,我试图用.update()函数创建第一个选择框,然后克隆选择框并用它替换其他8个选择框。 请建议是否会提高性能以及如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

因为您将大量选项推送到选择框中,所以主要的javascript线程正在完成将元素填充到DOM中的所有工作(无论JS框架如何)。将来你可以脱离WebWorker线程来完成这项工作而不会阻塞主线程,但是直到所有浏览器(ahem IE)都支持它我不建议实现它。

我有2条建议

  1. 不是同时填充所有下拉菜单,而是通过ajax查询结果的这些Ajax.Autocomplete字段。

  2. 让下拉菜单分阶段显示 - 在选择第一个下拉列表后clone()然后显示下一个 - 结果相同,但延迟会随着时间的推移而分解