【发布时间】:2015-10-14 17:46:06
【问题描述】:
我正在构建一个应用程序来保存小笔记和 cmets。 该应用程序将要求您提交标题,它会为您的文本提供一个文本区域。
直到现在,当您提交标题时,我使用 jquery 创建了一个标题 - 文本区域对,供您输入文本。
我想通过 JSON 返回这对,但有人告诉我这是不好的做法。
通过 Jason 返回 HTML 真的很糟糕吗?为什么?
【问题讨论】:
标签: php jquery html json templates
我正在构建一个应用程序来保存小笔记和 cmets。 该应用程序将要求您提交标题,它会为您的文本提供一个文本区域。
直到现在,当您提交标题时,我使用 jquery 创建了一个标题 - 文本区域对,供您输入文本。
我想通过 JSON 返回这对,但有人告诉我这是不好的做法。
通过 Jason 返回 HTML 真的很糟糕吗?为什么?
【问题讨论】:
标签: php jquery html json templates
JOSN 旨在克服用于数据交换的庞大 XML 格式。 正如 James 所描述的,它确实是一种轻量级的数据交换格式。 假设:您需要显示产品的动态列表,其中包含与产品相关的所有信息。如果您在 JSON 中返回完整的 HTML,其大小为 2048 个字符。但是,如果您只返回产品名称和相关信息而没有 HTML 标记,那么响应文本字符串的大小将小于 2048 个字符,它可以是 100 个字符,因为您忽略了实际上并不需要的 HTML 标记。 因此,您可以只拥有数据的轻量级版本,然后使用客户端脚本将其插入 HTML 标记中。这将使您的应用程序更快,因为您将不得不等待更少的服务器响应,因为数据量很小并且传输少量数据(字符)总是比大数据(字符)更快。
XML 包含大量标记,因此 JSON 被视为更快数据传输的替代方案。
【讨论】:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 http://www.json.org/
应创建 HTML DOM 结构并使用 JSON 交换数据。
一旦您检索到创建动态 dom 元素的数据,这就是公平的游戏。
【讨论】:
几个密切相关的问题:
Why is it a bad practice to return generated HTML instead of JSON? Or is it?
How dangerous is it send HTML in AJAX as opposed to sending JSON and building the HTML?
据我所知,在 JSON 对象中返回 HTML 字符串并不是一个坏习惯。第二个问题的公认答案似乎同意:
为大型数据集请求和返回 JSON,但包括(转义) JSON 记录中每条记录的 HTML sn-p。这意味着更多 渲染时间和比 (2) 更多的带宽使用,但可以减少 重复通常复杂的 HTML 渲染。
【讨论】:
这实际上取决于您计划如何实施您的想法。正如您提到的 JSON,我最好的猜测是您正在尝试实现 AJAX。好吧,虽然几乎可以返回任何类型的编码为 JSON 对象的内容,但我不明白为什么需要通过 JSON 从服务器发送像 text-area 这样的 HTML 元素。 AJAX 用于发出服务器请求并且客户端希望在不刷新发送请求的页面的情况下获得响应的场景。最常见的用法是登录页面上的用户名和密码验证。
我认为您应该清楚地了解服务器端脚本和客户端脚本。您已经使用jquery 实现的内容称为客户端脚本,而这正是它应该完成的方式。至于从 PHP 中获取数据,当您需要从驻留在服务器上的数据库中读取一些数据时,就完成了。比如说,text-area 只有在输入了有效的title(在数据库中有一个条目)时才会显示。而且我在这里没有看到任何要求。
【讨论】: