仅使用json对象进行通信的WebApp?

时间:2010-10-22 16:37:59

标签: javascript jquery css json html5

大家好,我一直在思考大多数网络应用程序目前是如何运作的。如果作为一个例子,后端是用java / php / python编写的,你可能会看到后端是“回显/打印”html准备好的浏览器,对吧。

对于几乎只使用ajax工作的网络应用程序,有理由不简单地在没有html的情况下进行通信,仅作为一个例子,只使用在服务器和客户端之间传回和第四次的JSON对象,而不是“打印或回显”在我们的脚本/ app后端的html中,我们只是回显json字符串,ajax获取它并将JSON字符串转换为具有所有属性/数组的对象,依此类推。

当然这样我们可以发送更少的字符,没有html标签等等,在客户端我们只是使用jQuery等框架并在那里创建/格式化我们的html而不是打印并回显服务器中的html脚本?

也许人们已经这样做但我还没有看到很多应用程序以这种方式工作? 原因是我想要todo这是因为我想将表示层和逻辑层分开比现在更多,所以不要在我的java / php中“回显”html而只是“回显”json对象,并且javascript需要关心整个表现层,这有什么根本性的错误,你的意见是什么?

再次感谢Stackoverflow。

3 个答案:

答案 0 :(得分:3)

有很多应用程序以这种方式工作(只需使用JSON对象通过AJAX进行通信而不是发送标记)。

我做过一些工作,它有其优点。

在某些情况下(比如使用大型结果集),在服务器端呈现标记并将其发送到浏览器更有意义。这样,你就不依赖于JavaScript / DOM操作来创建一个大文档(取决于浏览器,它会表现不佳)。

答案 1 :(得分:0)

这是一种非常明智的方法,实际上在我们的一些生产应用程序中使用。

该方法的主要弱点在于它增加了浏览器资源的负载,因此可能 - 鉴于浏览器通常已经缓慢的JS性能 - 导致更糟糕的用户体验,除非表示层机制得到很好的调整

答案 2 :(得分:0)

现在很多时候很多webapp都使用这种方法,比如gmail和其他大型应用甚至是facebook   这种方法的主要优点是用户不需要刷新所有页面,他得到我们想要显示他或他想要的东西。
但是如果用户刷新页面,我们必须制作像ajax和普通页面这两个版本 我们可以使用生成html的jquery模板以及gogle和其他谷歌产品使用的google更接近的模板。