【问题标题】:JSON object or String resultsetJSON 对象或字符串结果集
【发布时间】:2014-11-03 06:27:38
【问题描述】:

我进行了一个 ajax 调用(非常简单),它当前返回一个 html 字符串。根据谁在调用它,这个字符串有时会变得很长。我想知道的是为什么最好返回 JSON 结果并在之后构建我的 HTML,而不是只返回一个长字符串。

【问题讨论】:

  • 把你的陈述读两遍这个字符串有时会变得很长
  • 有多长?您可以毫无问题地使用 AJAX 检索完整的网站。这就是为什么它是异步的!
  • 目前最大字符数约为 12K,大部分都小于这个值。

标签: ajax json api-design


【解决方案1】:

返回 JSON 而不是 HTML 的一些优点:

  1. 数据可作为数据用于分析或其他用途,而不仅仅是用于演示。
  2. JSON 数据通常/通常远小于完整的演示文稿 HTML,因此您通过 Internet 传输的数据更少。
  3. 您创建了数据和表示之间的分离,而不是将它们混合到一个 API 中。您的服务器返回数据,然后由一段单独的代码转换为演示文稿。
  4. JSON 数据在呈现之前可以更轻松地进行处理或修改(例如过滤、排序、标记、展开/折叠等...)。
  5. 您可以将相同的 JSON 数据用于许多不同类型的演示。如果您返回 HTML,则演示文稿已被烘焙,因此如果您想要一个不同的演示文稿,则必须创建一个全新的 AJAX 调用。

如果你想用一种极端的方式来思考这个问题,那么问问自己为什么数据库返回的是原始数据而不是数据的 HTML 视图?这是因为你可以用实际数据做更多不同类型的事情,因此数据更有用,因为它只给你数据,然后用不同的代码对数据做一些事情(分析它,结合它与其他数据,根据它做出决定,呈现它以供查看,等等......)。如果数据库只返回数据的 HTML 视图,那么对数据执行所有这些其他操作会困难得多。 Ajax 调用也是如此,它实际上只是客户端对数据的访问。

【讨论】:

  • 感谢大家回复我。但我的电话只是为了演示,不需要处理数据。考虑客户端的浏览器处理 HTML 字符串或处理 JSON 的效率更高。还是我们只是将鼠标悬停在 JSON 更“小”以通过 Internet 发送这一事实
  • @I_understand_sometimes - 如果你只看“效率”,你必须定义你的意思,然后它可能取决于数据的确切组成和它有多大是以及演示文稿的工作方式。我冒昧地猜测,如果以任何一种方式完成,您都无法从浏览器中分辨出区别。仅供参考,良好的编程设计不仅设计当前设计所需的最低要求,而且以满足当前需求的方式设计事物,并且以可用于未来许多其他可能事物的方式设计(我的观点关于使用 JSON)。
  • @I_understand_sometimes - 在衡量设计的灵活性时,问问自己如果几周后有人现在想要对数据进行排序或过滤数据或提供它的多个演示文稿会做多少工作。哪个设计方向更容易添加/更改?
  • @I_understand_sometimes - 这是一个数据点。 LinkedIn 刚刚开始转向生成 JSON 的服务器,然后浏览器中的 javascript 呈现 DUST 模板以形成 HTML 演示文稿。他们这样做是因为它提高了 UI 的响应能力并提高了服务器的可扩展性。你可以在这里阅读更多:engineering.linkedin.com/frontend/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 2013-05-12
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2016-03-06
相关资源
最近更新 更多