渲染20个大型相同的列表框

时间:2010-01-05 09:39:39

标签: html listbox render

我有一个包含行(20行)的HTML表。 每行都有一个国家/地区(约250个国家/地区)的列表框,这些国家/地区使用数据库中的单个数据集填充。

加载时间足够快,但渲染时间真是一团糟。 有什么方法可以加快这些列表框的渲染速度吗?

2 个答案:

答案 0 :(得分:1)

您只能加载一次,然后将DOM元素复制到您需要的任何位置......

我不确定这会改善很多,因为它会更多地依赖于用户的电脑,但我想如果它现在的速度太慢,那值得尝试。

编辑:这是我怎么做的。请谨慎使用,我没有对它进行过测试,这段代码很可能出现大量错误,只是为了让您了解我所说的内容。

<mylistbox id="listboxtemplate"> ... </>

<div class="thisPlaceNeedsAListbox"></div>
<div class="thisPlaceNeedsAListbox"></div>
<div class="thisPlaceNeedsAListbox"></div>

on document ready,使用jquery:

jQuery(".thisPlaceNeedsAListbox").append( jQuery("#listboxtemplate").clone() )

答案 1 :(得分:1)

您可以尝试仅在用户选择上一个选择框后添加(使用JavaScript)。

我很确定您可以重新考虑表单或流程,但由于您没有提供足够的信息,我无法提出任何具体建议。例如,根据情况,您可以使用多选或一些奇特的JavaScript小部件。

根据您的评论编辑:

然后如何在没有选择的情况下提供表格。如果用户双击国家/地区字段,则更改文本元素以使用javascript选择元素。一旦用户选择了国家/地区,您就可以更改回文本元素。您可以使用Ajax(在用户选择国家/地区后)或使用隐藏字段提交按钮将结果提交回服务器。这样,DOM将永远不会包含多于1个选择元素。

您可以使用内联JSON对象/数组(在脚本标记中)将国家/地区传递给javascript。为了在用户编辑第一个元素后使事情变得更快,只需隐藏(css:display:none;)第一个构建选择元素,并在每次用户想要编辑行时克隆/移动它。

正如您所看到的,使用这种方法可以采用很多路径,这取决于您希望优化/使用它的程度。