【发布时间】:2010-10-24 23:06:06
【问题描述】:
【问题讨论】:
【问题讨论】:
OK Encosia (Dave Ward) 的示例使用 JQuery 插件 JTemplate 来完成它的工作。 ScottGu 使用了更多的 ASP.Net 堆栈。
也就是说,ScottGu 的样品缺乏一些细度。
至于性能...我讨厌这个问题。变数太多。但是……
ScottGu 的示例将通过网络移动更多位。您实际上是通过 Web 服务调用将整个 html 输出发送到浏览器。
Encosia 的示例是将可能的最原始数据形式 (JSON) 发送到浏览器,然后使用 JQuery/JTemplate/Javascript 将其转换为 html。
理论上,Encosia 的示例会表现得更好。通过网络传输的数据越少,服务器负载也应该越少。但这将是更多的浏览器工作(这里充其量是名义上的)。
也就是说,对于少量数据,我怀疑这两种方式都不重要。
【讨论】:
这两个示例都使用 JSON,您可以在使用 .NET Web 服务时免费获得。因此,通过网络传输的数据量将是相同的。
在客户端,不了解ScriptServiceAttribute 生成的库的客户端性能,但是自己动手和使用该库之间的差异应该是微乎其微的。
Ecnosia 示例使用 jTemplates。在获取大型列表并在重复部分(如 html 表格)中显示它们时,jTemplates 可以大大提高性能。
回复 devmania:
Scott 的版本在服务器端应用模板,然后将格式化的 html+data 发送到客户端。这里的 html 可能是一个真正的开销(如果是表格,请考虑所有 tr、td、样式属性、标签之间的间距……)。
jTemplates 呈现客户端。数据以更高效和紧凑的 JSON 格式发送(只是数据,而不是 html)。 jTemplates 必须读取的模板也小得多,因为它只包含第一行的定义。
是的,在服务器端渲染要容易得多。服务器端的渲染也可以更加灵活,因为您可以访问客户端没有的数据源。
在许多情况下,客户端可以更有效。此外,使用一些 javascript,您可以使其像服务器端渲染一样灵活。但是,我认为复杂的客户端渲染需要更多时间来开发。
【讨论】: