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

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

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

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

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

你站在哪一边,为什么?


当前回答

好吧,

我是极少数喜欢这样区分事物的人之一: -服务器负责传递数据(模型); -客户端负责显示(视图)和操作数据(模型);

因此,服务器应该专注于交付模型(在这种情况下JSON更好)。 通过这种方式,您可以获得灵活的方法。如果你想改变你的模型的视图,你让服务器发送相同的数据,只改变客户端,javascript组件,将数据改变为视图。想象一下,你有一个服务器向移动设备和桌面应用程序传递数据。

此外,这种方法提高了工作效率,因为服务器和客户端代码可以同时构建,永远不会失去从js切换到PHP / JAVA / etc时所发生的重点。

一般来说,我认为大多数人更喜欢在服务器端做尽可能多的事情,因为他们不精通js,所以他们尽量避免它。

基本上,我和那些致力于Angular的人有着相同的观点。在我看来,这就是网络应用的未来。

其他回答

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

好吧,

我是极少数喜欢这样区分事物的人之一: -服务器负责传递数据(模型); -客户端负责显示(视图)和操作数据(模型);

因此,服务器应该专注于交付模型(在这种情况下JSON更好)。 通过这种方式,您可以获得灵活的方法。如果你想改变你的模型的视图,你让服务器发送相同的数据,只改变客户端,javascript组件,将数据改变为视图。想象一下,你有一个服务器向移动设备和桌面应用程序传递数据。

此外,这种方法提高了工作效率,因为服务器和客户端代码可以同时构建,永远不会失去从js切换到PHP / JAVA / etc时所发生的重点。

一般来说,我认为大多数人更喜欢在服务器端做尽可能多的事情,因为他们不精通js,所以他们尽量避免它。

基本上,我和那些致力于Angular的人有着相同的观点。在我看来,这就是网络应用的未来。

IMV, it's all about separating the data from the presentation of the data, but I'm with Pascal, it doesn't necessarily follow that that separation can only be across the client/server boundary. If you have that separation already (on the server) and just want to show something to the client, whether you send back JSON and post-process it on the client, or just send back HTML, depends entirely on your needs. To say you're "wrong" to send back HTML in the general case is just far too blanket a statement IMV.

Html响应在大多数情况下是足够的,除非你必须在客户端执行一些计算。

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

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