1

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

4

1 回答 1

0

因为您将如此大量的选项推送到选择框中,所以主 javascript 线程正在完成将元素填充到 DOM 中的所有工作(无论 JS 框架如何)。将来您将能够在不阻塞主线程的情况下分离 WebWorker 线程来完成这项工作,但在所有浏览器(嗯 IE)都支持它之前,我不建议实施它。

我有 2 条建议

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

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

于 2013-02-11T16:22:10.667 回答