在PHP中返回HTML JSON响应

问题描述:

我正在构建一个应用程序来保存小笔记和注释。 该应用程序将要求您提交一个标题,它会为您提供文本区域的文字。在PHP中返回HTML JSON响应

直到现在,当您提交标题时,我使用jquery创建了标题 - 文本区域对,供您输入文本。

我想通过JSON返回这对,但有人告诉我,这是不好的做法。

通过Jason返回HTML真的是不好的做法,为什么?

JOSN是为了克服庞大的用于数据交换的XML格式而设计的。它实际上是James所描述的轻量级数据交换格式。 假设:您需要显示包含与产品相关的所有信息的产品的动态列表。如果您在JSON中返回完整的HTML,则其大小为2048个字符。但是,如果只返回没有HTML标记的产品名称和实际信息,则响应文本字符串大小将小于2048个字符,因为您省略了非真正需要的HTML标记,所以它只能包含100个字符。 因此,您可以拥有轻量级的数据版本,然后使用客户端脚本将其插入到HTML标记中。这将使您的应用程序更快,因为数据量很小,传输少量数据(字符)的速度总是比大数据(字符)快,所以您必须等待较少的服务器响应。

XML包含重标记因此JSON被看作为用于更快的数据传输的替代方案。

JSON(JavaScript对象符号)是一种轻量级的数据交换格式 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代码段。这意味着更多的渲染时间和更多的带宽使用比(2)更多,但可以减少 往往复杂的HTML渲染。

这真的取决于你打算如何实现你的想法。正如你提到的JSON,我最好的猜测是你试图实现AJAX。那么,虽然可以返回任何类型的内容编码为JSON对象,但我不明白为什么您需要通过JSON从服务器发送像text-area这样的HTML元素。 AJAX用于制作服务器请求并且客户端希望获得响应而不刷新发送请求的页面的场景。最常见的用法是登录页面上的用户名和密码验证。

我想你应该清楚地了解服务器端脚本和客户端脚本。你已经使用jquery实现的东西被称为客户端脚本,而这正是应该如何完成的。至于从PHP获取数据,这是在您需要从位于服务器上的数据库读取一些数据时完成的。例如,只有输入了有效的标题(在数据库中有条目)时,才会显示text-area。我在这里看不到任何要求。

+0

使用通过AJAX请求返回的JSON信息动态构建复杂的HTML结构可能非常耗时,特别是在服务器上已经存在可用于构建复杂的HTML服务器端的查看部分时。将已经构建的(转义的)HTML作为JSON对象的一部分返回(而不是用JavaScript重写现有的服务器端代码)是否存在特定的缺点? – rawb