为什么返回生成的HTML而不是JSON是一种糟糕的做法? 或者是?
使用JQuery或任何其他类似框架从您的自定义URL / Web服务加载HTML内容非常简单。 我已经多次使用这种方法,直到现在发现性能令人满意。
但所有的书籍,所有的专家都试图让我使用JSON而不是生成的HTML。 它比HTML好得多吗?
它速度非常快吗?
它在服务器上的负载是否非常低?
另一方面,我有一些使用生成的HTML的原因。
你在哪边?为什么?
实际上,我对双方都有点意见:
使用HTML的主要优势在于,当您要将页面的整个部分替换为来自Ajax请求的内容时:
至少在服务器上,我通常没有真正考虑事物的“性能”方面:
最后,最重要的一点是:
并回答另一个答案:如果您需要更新页面的多个部分,仍然有解决方案/黑客将所有这些部分发送到一个大字符串中,这些字符串将多个HTML部分分组,并在JS中提取相关部分。
例如,你可以返回一些看起来像这样的字符串:
<!-- MARKER_BEGIN_PART1 -->
here goes the html
code for part 1
<!-- MARKER_END_PART1 -->
<!-- MARKER_BEGIN_PART2 -->
here goes the html
code for part 2
<!-- MARKER_END_PART2 -->
<!-- MARKER_BEGIN_PART3 -->
here goes the json data
that will be used to build part 3
from the JS code
<!-- MARKER_END_PART3 -->
这看起来不太好,但它非常有用(我已经使用过好几次了,主要是当HTML数据太大而无法封装到JSON中时):您正在为页面部分发送HTML需要演示文稿,并且您正在为需要数据的情况发送JSON ...
...并提取这些,JS子字符串方法将做的伎俩,我想;-)
我主要同意这里提出的意见。 我只是想将它们总结为:
如果您最终解析客户端以对其进行一些计算,那么发送HTML是一种不好的做法。
发送JSON是一个不好的做法,如果你最终做的只是将它合并到页面的DOM树中。
好,
我是那些喜欢用这种方式分离事物的罕见人士之一: - 服务器负责提供数据(模型); - 客户负责显示(查看)和操纵数据(模型);
所以,服务器应该专注于交付模型(在这种情况下,JSON更好)。 这样你就可以得到一个灵活的方法。 如果你想改变模型的视图,你可以让服务器发送相同的数据,只需更改客户端,javascript组件,将数据改变为视图。 想象一下,您有一台服务器将数据传送到移动设备以及桌面应用程序。
此外,这种方法提高了生产力,因为服务器和客户端代码可以同时构建,而不会失去焦点,这是从js切换到PHP / JAVA等时会发生的情况。
一般来说,我认为大多数人更喜欢在服务器端尽可能地做,因为他们不掌握js,所以他们尽量避免。
基本上,我和那些正在从事Angular的人有相同的观点。 在我看来,这是网络应用程序的未来。
链接地址: http://www.djcxy.com/p/1301.html上一篇: Why is it a bad practice to return generated HTML instead of JSON? Or is it?