Ajax:构建HTML与注入HTML

时间:2009-05-14 06:28:55

标签: javascript html ajax json asynchronous

尝试遵守StackOverflow提出问题而不是创建讨论的建议,让我们考虑使用HTTPAsyncRquest更新网页而不刷新它们的这两种方法:

1)解析/解释AsyncRequest返回的数据,以构建更新页面的结果HTML 例如JSON :: parseAndExecute(returnedData); //只是一个例子

2)AsyncRequest返回的数据是原始jScript,它被执行并更新页面。 例如plain old:eval(returnedData); //我们知道returnData不是恶意代码

为了排除学术/偏好问题,让我们假设我们使用完全相同的框架来编程服务器和客户端,唯一的区别是有一个选项/标志可以使它吐出JSON或原始jscript。 / p>

在那种情况下,是否有人应该选择的技术原因?

我问这个问题,因为在大多数情况下,原始的JSCRIPT应该更快更灵活,但我发现大多数框架都没有返回JSCRIPT,而是返回由JSCRIPT解释的数据。

(只是为了澄清:我问的是它更小?更快?是否存在安全风险?兼容性风险?)

第一篇文章在stackoverflow,你们!

2 个答案:

答案 0 :(得分:1)

您的第二个解决方案通常更快,更容易实施并且使用更少的带宽。如果你控制服务器端和客户端,例如一个Ajax框架,那么安全性就没问题了。所以你唯一的问题是你最终会得到一个(邪恶的)评估。除了IE8之外,你必须拥有任何东西,除非代码中至少有一个eval,否则没有办法“解析”JSON。

我们(Ra-Ajax)为我们的Ajax引擎使用JSON和HTML(innerHTML用于所有实际问题)的组合。我们使用JSON来更改属性在我们的小部件上的属性,而我们在小部件上初始渲染(或完整更新)时使用innerHTML。

答案 1 :(得分:1)

@Thomas Hansen:

可能更快更容易实施。但我不明白为什么它会使用更少的带宽。加载页面的Javascript代码得到缓存,因此解析和构建小部件的代码只能下载一次,动态内容只是纯JSON。

你也可能更喜欢第一个选项(JSON),因为你以某种方式转换/过滤数据以响应其他GUI回调,并且不想依赖服务器。