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

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

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

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

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

你站在哪一边,为什么?


当前回答

如果你想要一个干净的解耦客户端(在我看来这是最佳实践),那么100%的DOM由javascript创建是有意义的。如果你构建了一个基于MVC的客户端,它拥有如何构建UI的所有知识,那么你的用户一次下载一个javascript文件,它就会缓存在客户端上。初始加载之后的所有请求都是基于Ajax的,并且只返回数据。这种方法是我发现的最干净的方法,它提供了一个干净独立的表示封装。

然后,服务器端只专注于交付数据。

所以,明天当产品要求你完全改变一个页面的设计时,你所改变的只是创建DOM的源JS,但可能会重用你已经存在的事件处理程序,而服务器是无关的,因为它100%与表示分离

其他回答

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

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

根据您的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>' }

我认为这取决于设计的结构,使用JSON比使用HTML更吸引人,但问题是如何处理它,使其易于维护。

例如,假设我有一个使用整个网站相同html/风格的列表页面,我将编写全局函数来格式化html的这些部分,我所要做的就是将JSON对象传递到函数中。

这取决于具体情况。

有时,避免使用JSON是必要的。 例如,当我们的程序员在用js编程时遇到困难。

我的经验告诉我:使用ajax服务比使用内联JSON更好。

迟早js会成为一个问题

如果你想要一个干净的解耦客户端(在我看来这是最佳实践),那么100%的DOM由javascript创建是有意义的。如果你构建了一个基于MVC的客户端,它拥有如何构建UI的所有知识,那么你的用户一次下载一个javascript文件,它就会缓存在客户端上。初始加载之后的所有请求都是基于Ajax的,并且只返回数据。这种方法是我发现的最干净的方法,它提供了一个干净独立的表示封装。

然后,服务器端只专注于交付数据。

所以,明天当产品要求你完全改变一个页面的设计时,你所改变的只是创建DOM的源JS,但可能会重用你已经存在的事件处理程序,而服务器是无关的,因为它100%与表示分离