感觉一般 ajax 都是直接返回 json. 难道是因为 html 比 json 大的原因?
看了这么多回复,大概的原因是这个
所以我直接返回html,对我这个项目是合适的?
1
Luckyray 2017-02-25 16:03:43 +08:00 via iPhone
还得后台渲染是不是加重了负担?
|
2
RE 2017-02-25 16:09:53 +08:00
用 ajax 的其中一个目的就是服务端只处理业务,然后返回业务处理后的结果,以 json 格式返回,就可以做到前后端分离了。
如果返回 html ,那后端开发的时候还得去考虑到底某句话要放在什么标签里面,某个地方要搭配什么 icon 用什么 css ,而这些本应该是前端的工作。 |
3
oisc 2017-02-25 16:12:39 +08:00 1
HTML --> HyperText Markup Language ,是标记语言,不是数据结构
|
5
Cbdy 2017-02-25 16:27:12 +08:00 via Android
早期 jquery 的 onload 没有用过吗?
|
8
loading 2017-02-25 17:08:09 +08:00 via Android
有返回 xml 的,你指的应该是这个吧。
|
9
kindjeff 2017-02-25 17:08:21 +08:00 via iPhone
b 站搜索页面点下一页返回的就是个 html 然后嵌进去的。
|
11
Reign 2017-02-25 17:12:14 +08:00
万一前端模板变了啊
|
13
cooro 2017-02-25 17:16:29 +08:00 via iPhone
麻雀虽小,该有的都得有。后台管理不只是样式吧。前期图“省事”(还不一定),后期就费劲了。
|
15
doubleflower 2017-02-25 18:51:50 +08:00
几年前 ajax 刚开始的时候大家都返回 html 直接替换一块 dom 的。直到后来前端开始有架构了,从 backbone 开始,到 angular/react 才没人这么干了。
|
16
Mbin 2017-02-25 18:58:20 +08:00
比如现在的 express + ejs 模板,这种就是直接返回 html 模服务器渲染的,现在也是油公司这样开发的,配合内部框架,前后台一人搞定
|
17
bombless 2017-02-25 18:58:56 +08:00 via Android
backbone 貌似就是返回 html 的,没用过
|
18
helloccav 2017-02-25 19:01:42 +08:00 via Android
@RE 对我个人来说,因为我要同时做前端和后端,所以我的 ajax 一般是返回 html ,这样我的 html 代码就可以复用了
|
19
sfree2005 2017-02-25 19:28:17 +08:00
还有考虑到移动端的需要, 前后端分离其中的一个好处
|
20
jsq2627 2017-02-25 19:32:19 +08:00 via iPhone
上古时代 ajax 确实主要返回 xml 和 html
|
21
lightening 2017-02-25 19:51:04 +08:00
不少。看 Pjax 和 Turbolinks 。 React 也可以 server 端 render 。前端不复杂(仅仅需要无刷新跳转,而不是类似 gmail 这样的页面内逻辑)的网站用这种方式更方便。
我现在比较偏向与用这种方式再在需要复杂前端的页面嵌入 React 。 |
22
k9982874 2017-02-25 20:02:29 +08:00 via iPad
不少啊,返回的 500 错误都是 html 啊,(斜眼笑
|
23
xrlin 2017-02-25 20:38:34 +08:00
用 rails 的时候偶尔会这么干,虽然感觉不太好,但比在前端用 js 写逻辑方便多了。
|
24
hoythan 2017-02-25 21:46:46 +08:00
分页和无刷新加载我都是使用 ajax 返回 html, 直接用 ajax 获取下一页地址然后获取到下一页的 html, 直接填充到当前网页就行了.
|
26
halden 2017-02-26 01:12:02 +08:00
除去上面已经提到的前后端分离,还有性能的影响,现在前端很少直接写整个 html 的了,而且现在“需要”返回 html 的情况非常少吧,除非你说要替换大部分 dom ,有点类似潜入 iframe 的感觉,但这是有具体需求的情况下才会这样用(比如防止 js/css 污染等,绝大多数在线 code 编辑器都是用的 iframe )
@helloccav 并没有理解你所说代码复用是什么情况, html 作为 view 本来就是复用的,但这和返回 json 并不冲突啊, html(layout 不变) + json(数据动态变化) -> 完整页面 |
28
hst001 2017-02-26 01:32:51 +08:00
1 、减少服务端渲染的步骤,节约服务器的资源
2 、前后端分离,可以让一个接口服务不同的前端,前端爱怎么渲染怎么渲染,这里的前端当然包括移动端等 3 、只传数据可以减少传输的字节,节约带宽就是节约金钱 |
29
vibbow 2017-02-26 01:57:13 +08:00
我之前的单位就是这样做的, ajax 直接返回 html 。
还有把整个 dom 干掉, ajax load 一个新的 html 到页面上,也是经常用的...... #所谓的无缝刷新... |
30
Tink 2017-02-26 10:17:47 +08:00 via iPhone
看你怎么用,我自己一个人写都是返回 json
|
31
gouflv 2017-02-26 10:43:24 +08:00 via iPhone
你可以查下前后端分离的具体做法
|
32
leopku 2017-02-26 11:08:26 +08:00
踩过坑就知道为啥以前流行的 ajax 返回 html 现在不流行转而流行只返回数据了
|
33
fuxiaohei 2017-02-26 11:21:38 +08:00
这是 pjax ,最有名的使用者是 Github 。
你在项目切换代码文件目录,就可以看到 pjax 的 xhr |
34
ppwangs 2017-02-26 15:47:06 +08:00
pjax
|
35
wenzichel 2017-02-27 09:39:24 +08:00
直接返回 json 格式的数据,有利于多环境的使用,比如多个页面中只是数据一样,但是展示的方式不一样;还有就是接口维护方便,当字段发生改变时,前端页面的展示尽量不受到影响
|
36
tofishes 2017-02-27 12:50:33 +08:00
ajax 返回 html 没什么问题,简单易用。至于什么时候返回 json ,你到时候自然会明白。选择适合你当前的用法就行了。
|