2010-10-29 110 views
5

我想知道什么是最好的“格式”的数据被发回到JavaScript的? 什么时候应该使用JSON字符串或纯粹的HTML?除了这两个之外还有其他选择吗?jQuery/AJAX - 响应格式

回答

6

这取决于发回的数据是什么以及您打算如何使用它。

优点和缺点:

  • 使用JSON数据和生成HTML的JavaScript把浏览器和负荷较小的服务器上更多的负荷,再加上无需代码表示逻辑到走秀的页面数据。而JSON数据通常要小得多。

  • 使用HTML数据并直接注入页面会在服务器上放置更多的工作,导致AJAX服务页面包含表示逻辑。但是,如果表示逻辑已经包含在服务器端代码中(直接或通过模板语言),并将表示逻辑放到JavaScript端,则需要从头开始开发它,这可能是一个好处,而不是缺点。

换句话说,使用JSON数据IFF:

  • 你的页面将使用JSON数据比一次性生成HTML的其他用途。 DUH。

  • 您的页面已经包含基于数据构建HTML的JavaScript逻辑,或者如果创建这样的逻辑非常容易开发成本。特别是如果情况正好相反(例如,将HTML生成逻辑放在服务器端需要完成并且会带来显着的开发成本)。

  • 将数据从服务器转换为HTML到浏览器的卸载资源成本是一个重要的考虑因素。

  • JSON数据明显小于生成的HTML,因此导致传输数据的主要减少。这加快了服务器执行和网络传输速度。实际上,我们通过以json方式传输树数据而不是已经生成的HTML代码,从而使复杂的树显示应用程序的速度提高了20倍。

  • 如果其他可能/实际使用者无法100%重复使用为该特定页面生成的HTML,则可以将产生响应的URL用作除此页面之外的其他用途的服务。

+0

谢谢你的非常详细的回答:) – Alex 2010-10-29 19:52:26

2

你想使用JavaScript中的数据,然后从这些数据构建DOM?使用JSON字符串。

你只是想在一个占位符的页面上转储某些东西而没有任何逻辑吗?使用纯HTML。

1

json几乎总是首选,特别是如果您需要进行任何类型的错误处理。如果你不想并且只想返回预格式化的HTML来放置在DOM中,那么返回纯HTML就足够了。

+1

我几乎不会说JSON几乎总是首选。多数情况下,我的服务器端应用程序知道如何更好地格式化正在生成的标记。服务器还可以产生比客户端更快的最终标记,从而导致客户端的性能提高。 – 2010-10-29 18:53:53