Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何克隆元素并用克隆的元素替换现有元素?_Javascript_Html_Dom_Prototypejs - Fatal编程技术网

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

Javascript 如何克隆元素并用克隆的元素替换现有元素?,javascript,html,dom,prototypejs,Javascript,Html,Dom,Prototypejs,我正试图用从ajax调用获得的大约5000个选项填充一个选择框。我想使用相同的数据更新其他8个选择框。我正在使用prototype.js和.update函数。 但问题是它冻结了IE和Chrome一段时间。 因此,我尝试使用.update函数创建第一个选择框,然后克隆选择框并用它替换其他8个选择框。 请说明这是否会提高性能,以及我如何做到这一点。因为您将大量选项放入选择框中,所以无论JS框架如何,主javascript线程都会将所有元素填充到DOM中。在未来,您将能够剥离WebWorker线程来完

我正试图用从ajax调用获得的大约5000个选项填充一个选择框。我想使用相同的数据更新其他8个选择框。我正在使用prototype.js和.update函数。 但问题是它冻结了IE和Chrome一段时间。 因此,我尝试使用.update函数创建第一个选择框,然后克隆选择框并用它替换其他8个选择框。
请说明这是否会提高性能,以及我如何做到这一点。

因为您将大量选项放入选择框中,所以无论JS框架如何,主javascript线程都会将所有元素填充到DOM中。在未来,您将能够剥离WebWorker线程来完成这项工作,而不会阻塞主线程,但在所有浏览器支持它之前,我不建议实现它

我有两个建议

不要同时填充所有下拉列表,而是使用这些字段通过ajax查询结果

使下拉列表分阶段显示-在选择第一个下拉列表后克隆它,然后显示下一个下拉列表-结果相同,但延迟会随着时间的推移而中断


如果这被标记为jQuery:var clone=$'element.clone;$'元素“.replaceWithclone;下面是一些我已经解决的示例代码:;但我仍然不确定它是否真的提高了性能。请建议。