3 回答
TA贡献1884条经验 获得超4个赞
我实际上是双方都有点:
当我在javascript方面需要的是数据时,我使用JSON
当我在javascript方面需要的是我不会做任何计算的演示时,我通常使用HTML
使用HTML的主要优点是,当您想要使用Ajax请求返回的内容替换页面的完整部分时:
在JS中重新构建页面的一部分是非常困难的
您可能已经在服务器端有一些模板引擎,它首先用于生成页面...为什么不重用它?
我通常不会真正考虑事物的“性能”方面,至少在服务器上:
在服务器上,生成一部分HTML或一些JSON可能不会产生太大的影响
关于通过网络的东西的大小:好吧,你可能不会使用数百KB的数据/ html ...在你传输的任何东西上使用gzip会产生最大的不同(不是在HTML之间选择)和JSON)
但是,可以考虑的一件事是,客户端需要从JSON数据中重新创建HTML (或DOM结构)的资源...将其与将部分HTML推入页面进行比较; - )
最后,有一点非常重要:
你需要多长时间来开发一个新的系统,将JS作为HTML注入页面所需的JSON +代码发送数据?
返回HTML需要多长时间?如果您可以重用一些已有的服务器端代码,可以使用多长时间?
并回答另一个答案:如果您需要更新页面的多个部分,仍然有解决方案/黑客将所有这些部分发送到一个大字符串中,该字符串将多个HTML部分组合在一起,并在JS中提取相关部分。
例如,您可以返回一些如下所示的字符串:
<!-- MARKER_BEGIN_PART1 -->here goes the html code for part 1<!-- MARKER_END_PART1 --><!-- MARKER_BEGIN_PART2 -->here goes the html code for part 2<!-- MARKER_END_PART2 --><!-- MARKER_BEGIN_PART3 -->here goes the json data that will be used to build part 3 from the JS code<!-- MARKER_END_PART3 -->
这看起来并不是很好,但它确实很有用(我已经使用了很多次,主要是当HTML数据太大而无法封装到JSON中时):你正在为页面的各个部分发送HTML需要演示,并且您正在为您需要数据的情况发送JSON ...
...为了提取这些,我猜想JS子串方法会起作用;-)
TA贡献1796条经验 获得超4个赞
好,
我是那些喜欢以这种方式分离事物的少数人之一: - 服务器负责提供数据(模型); - 客户负责显示(查看)和操纵数据(模型);
因此,服务器应该专注于交付模型(在这种情况下,JSON更好)。这样您就可以获得灵活的方法。如果要更改模型的视图,可以让服务器发送相同的数据,只需更改将数据更改为视图的客户端javascript组件即可。想象一下,您有一台服务器向移动设备和桌面应用程序提供数据。
此外,这种方法提高了工作效率,因为服务器和客户端代码可以同时构建,永远不会失去焦点,这是当你从js切换到PHP / JAVA /等时会发生的事情。
一般来说,我认为大多数人更喜欢在服务器端尽可能多地做,因为他们不掌握js,所以他们试图尽可能地避免它。
基本上,我和那些正在研究Angular的人有同样的看法。在我看来,这是Web应用程序的未来。
添加回答
举报