尝试遵守StackOverflow提出问题而不是创建讨论的建议,让我们考虑使用HTTPAsyncRquest更新网页而不刷新它们的这两种方法:
1)解析/解释AsyncRequest返回的数据,以构建更新页面的结果HTML 例如JSON :: parseAndExecute(returnedData); //只是一个例子
2)AsyncRequest返回的数据是原始jScript,它被执行并更新页面。 例如plain old:eval(returnedData); //我们知道returnData不是恶意代码
为了排除学术/偏好问题,让我们假设我们使用完全相同的框架来编程服务器和客户端,唯一的区别是有一个选项/标志可以使它吐出JSON或原始jscript。 / p>
在那种情况下,是否有人应该选择的技术原因?
我问这个问题,因为在大多数情况下,原始的JSCRIPT应该更快更灵活,但我发现大多数框架都没有返回JSCRIPT,而是返回由JSCRIPT解释的数据。
(只是为了澄清:我问的是它更小?更快?是否存在安全风险?兼容性风险?)
第一篇文章在stackoverflow,你们!
答案 0 :(得分:1)
您的第二个解决方案通常更快,更容易实施并且使用更少的带宽。如果你控制服务器端和客户端,例如一个Ajax框架,那么安全性就没问题了。所以你唯一的问题是你最终会得到一个(邪恶的)评估。除了IE8之外,你必须拥有任何东西,除非代码中至少有一个eval,否则没有办法“解析”JSON。
我们(Ra-Ajax)为我们的Ajax引擎使用JSON和HTML(innerHTML用于所有实际问题)的组合。我们使用JSON来更改属性在我们的小部件上的属性,而我们在小部件上初始渲染(或完整更新)时使用innerHTML。
答案 1 :(得分:1)
@Thomas Hansen:
可能更快更容易实施。但我不明白为什么它会使用更少的带宽。加载页面的Javascript代码得到缓存,因此解析和构建小部件的代码只能下载一次,动态内容只是纯JSON。
你也可能更喜欢第一个选项(JSON),因为你以某种方式转换/过滤数据以响应其他GUI回调,并且不想依赖服务器。