请注意;这不是SO上其他类似问题的重复,正如我在这个问题的第五段中清楚解释的那样。此外,它不是基于意见的。我只是要求两种做事方式的专业和缺点,特别是为什么Stackoverflow按照它的方式做事情。
对于我的网站,我正在建立一个类似于在顶部的Stackoverflow上实现的通知;单击通知图标时,会显示一个下拉列表,其中包含相关通知。
我目前以一种api调用返回包含通知的json对象列表的方式编写我的系统,然后我在浏览器中用javascript构造html。但是当我查看SO发出的网络调用时,我看到这里的api调用只返回html,然后将其粘贴到下拉列表中。
我现在想知道;为什么这样做呢?在我看来,在json中提供数据而不是围绕它的所有html更有效率。
我检查了another question on this topic here:这表示第三种选择;某种模板系统,但对于我想要插入的简单html来说,这有点太多了。所以我真的不想考虑这个选择。 One more question on this topic专门讨论性能差异,我也不太关注(可维护性和简单性对我来说比那几毫秒差异更重要)。
所以我的问题是;是否更有利(无论哪个原因)在api调用中提供所有html或json,以及为什么?
答案 0 :(得分:1)
在理想的世界中,为了明确区分关注点,web api应该返回视图不可知的响应。这为您提供了多方面的灵活性
答案 1 :(得分:1)
我认为JSON响应是因为:
答案 2 :(得分:0)
这是一个意见,所以不能成为一个实际的答案(问题很快就会结束)。
JSON,原因是任何有意义的程序都会增长(它们总是这样),而你对状态的概念知识将会萎缩(就像它一直这样)这意味着你需要明确在您的程序中真相。
当真相存在于数据而非模板或演示文稿中时,这种真理概念最有效。我通过经验了解到,任何代码都应该由数据驱动。因此,将JSON数据发送到需要操作的单独关注点会降低服务器代码的复杂性,并允许客户端更灵活地呈现您希望的任何方式。当你在6个月内挠头时,想知道为什么会出现这个错误,你可以按照数据而不是猜测逻辑可能在哪里。
Human Javascript by Henrik Joreteg很好地解释了这一点。