在服务器端创建html字符串并将其附加到客户端是否是明智之举?

时间:2011-06-30 11:45:40

标签: javascript jquery asp.net html

我需要将大量数据从服务器传输到客户端,然后使用JavaScript(jQuery)生成大量表,div以及其他已知和未知的html元素。

当我尝试在客户端生成这些表和div时,我有一些for循环,我正在创建和附加元素。

我很快发现生成所有这些元素并显示它们需要花费大量时间,因此我在服务器端使用HtmlTextWriter生成HTML然后将其转换为ToString()并在客户端附加该字符串

速度要快得多,但我们用我的语言称之为“seljacki”(最接近的翻译是“不优雅的解决方案”)。

所以我想问一下,是否有人有一些更优雅的解决方案可以建议,这种方法是我使用完全错误还是可以通过?

感谢大家。

2 个答案:

答案 0 :(得分:3)

你没有在这里显示你的代码,但是我猜你在你的循环中反复将行附加到表中,或者当你遍历结果时。如果是这样,瓶颈实际上并不是生成HTML,而是每次迭代重绘内容。尝试将整个HTML组合起来先添加内存,然后使用单个append()html()调用来更新文档。

答案 1 :(得分:0)

我会继续将数据传递给客户端并创建html。我刚开始玩jQuery templates,到目前为止他们很棒。由于在客户端创建元素显然会慢一些,为什么不只是根据需要创建和/或加载它们。用户一次只能看到这么多,所以为什么要让他们等待他们可能永远看不到的东西。