使用JQuery或其他类似框架从自定义url /Web服务加载HTML内容非常容易。到目前为止,我已经多次使用这种方法,并发现性能令人满意。

但是所有的书,所有的专家都试图让我使用JSON而不是生成的HTML。它为什么比HTML更优越?

它会快很多吗? 它在服务器上的负载是否非常小?

另一方面,我有一些使用生成HTML的理由。

它是简单的标记,通常和JSON一样紧凑,甚至更紧凑。 它更不容易出错,因为你得到的都是标记,而不是代码。 在大多数情况下,编程会更快,因为你不必为客户端单独编写代码。

你站在哪一边,为什么?


当前回答

如果响应不需要进一步的客户端处理,在我看来,HTML是可以的。发送JSON只会迫使您执行客户端处理。

另一方面,当我不想一次使用所有响应数据时,我会使用JSON。例如,我有一系列三个链式选择,其中一个的选定值决定哪些值将用于填充第二个,依此类推。

其他回答

JSON is very versatil and lightweight format. I have discovered its beauty when I have started to use it as a client side template parser data. Let me explain, while before I was using smarty and views on server side (generating high server load), now I use some custom jquery functions and all the data is rendered on client side, using clients browser as template parser. it saves server resourses and on another hand browsers improve their JS engines every day. So the speed of client parsing is not an important issue right now, even more, JSON objects are ususally very small so they don't consume a lot of client side resourses. I prefer to have a slow website for some users with slow browser rather than slow site for everyone because of very loaded server.

另一方面,从服务器发送纯数据,你可以从表示中抽象它,所以如果明天你想改变它或将你的数据集成到另一个服务中,你可以更容易地做到这一点。

这只是我的个人意见。

根据您的UI,您可能需要更新DOM中的两个(或多个)不同元素。如果你的响应是HTML格式的,你会解析它来确定内容在哪里吗?或者你也可以使用JSON散列。

你甚至可以结合它,返回一个JSON w/ html数据:)

{ 'dom_ele_1' : '<p>My HTML part 1</p>', 'dome_ele_2' : '<div>Your payment has been received</div>' }

HTML有许多冗余和不显示的数据,即标签,样式表等。 因此,与JSON数据相比,HTML的大小会更大,导致更多的下载和渲染时间,也会导致浏览器忙于渲染新数据。

发送json通常是在javascript小部件从服务器请求信息时完成的,比如列表、树视图或自动补全。这是当我将发送JSON,因为它是数据,将被解析和使用原始。然而,如果你只是要显示HTML,那么在服务器端生成它并在浏览器上显示它就会少很多工作。浏览器在使用innerHTML = ""直接将HTML插入dom时进行了优化,所以这样做不会出错。

如果响应不需要进一步的客户端处理,在我看来,HTML是可以的。发送JSON只会迫使您执行客户端处理。

另一方面,当我不想一次使用所有响应数据时,我会使用JSON。例如,我有一系列三个链式选择,其中一个的选定值决定哪些值将用于填充第二个,依此类推。