用了这些久 ajax 为什么感觉 ajax 直接返回 html 用得少啊

2017-02-25 16:00:07 +08:00
 chenqh

感觉一般 ajax 都是直接返回 json. 难道是因为 html 比 json 大的原因?

5386 次点击
所在节点    JavaScript
36 条回复
lightening
2017-02-25 19:51:04 +08:00
不少。看 Pjax 和 Turbolinks 。 React 也可以 server 端 render 。前端不复杂(仅仅需要无刷新跳转,而不是类似 gmail 这样的页面内逻辑)的网站用这种方式更方便。

我现在比较偏向与用这种方式再在需要复杂前端的页面嵌入 React 。
k9982874
2017-02-25 20:02:29 +08:00
不少啊,返回的 500 错误都是 html 啊,(斜眼笑
xrlin
2017-02-25 20:38:34 +08:00
用 rails 的时候偶尔会这么干,虽然感觉不太好,但比在前端用 js 写逻辑方便多了。
hoythan
2017-02-25 21:46:46 +08:00
分页和无刷新加载我都是使用 ajax 返回 html, 直接用 ajax 获取下一页地址然后获取到下一页的 html, 直接填充到当前网页就行了.
rekulas
2017-02-25 22:15:23 +08:00
@chenqh 一样的工作原理,只不过现在浏览器支持 pushstate 了 为了体验好很多网站就顺便更新了地址栏而已。
halden
2017-02-26 01:12:02 +08:00
除去上面已经提到的前后端分离,还有性能的影响,现在前端很少直接写整个 html 的了,而且现在“需要”返回 html 的情况非常少吧,除非你说要替换大部分 dom ,有点类似潜入 iframe 的感觉,但这是有具体需求的情况下才会这样用(比如防止 js/css 污染等,绝大多数在线 code 编辑器都是用的 iframe )

@helloccav 并没有理解你所说代码复用是什么情况, html 作为 view 本来就是复用的,但这和返回 json 并不冲突啊, html(layout 不变) + json(数据动态变化) -> 完整页面
jarell
2017-02-26 01:21:16 +08:00
@rekulas gmail 好像只更新了 #号后面内容, 而且很久之前就是这样了,不知道它用的什么方案。
hst001
2017-02-26 01:32:51 +08:00
1 、减少服务端渲染的步骤,节约服务器的资源
2 、前后端分离,可以让一个接口服务不同的前端,前端爱怎么渲染怎么渲染,这里的前端当然包括移动端等
3 、只传数据可以减少传输的字节,节约带宽就是节约金钱
vibbow
2017-02-26 01:57:13 +08:00
我之前的单位就是这样做的, ajax 直接返回 html 。

还有把整个 dom 干掉, ajax load 一个新的 html 到页面上,也是经常用的......
#所谓的无缝刷新...
Tink
2017-02-26 10:17:47 +08:00
看你怎么用,我自己一个人写都是返回 json
gouflv
2017-02-26 10:43:24 +08:00
你可以查下前后端分离的具体做法
leopku
2017-02-26 11:08:26 +08:00
踩过坑就知道为啥以前流行的 ajax 返回 html 现在不流行转而流行只返回数据了
fuxiaohei
2017-02-26 11:21:38 +08:00
这是 pjax ,最有名的使用者是 Github 。
你在项目切换代码文件目录,就可以看到 pjax 的 xhr
ppwangs
2017-02-26 15:47:06 +08:00
pjax
wenzichel
2017-02-27 09:39:24 +08:00
直接返回 json 格式的数据,有利于多环境的使用,比如多个页面中只是数据一样,但是展示的方式不一样;还有就是接口维护方便,当字段发生改变时,前端页面的展示尽量不受到影响
tofishes
2017-02-27 12:50:33 +08:00
ajax 返回 html 没什么问题,简单易用。至于什么时候返回 json ,你到时候自然会明白。选择适合你当前的用法就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX