推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
simple2025
0D

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

  •  
  •   simple2025 · Feb 25, 2017 · 6556 views
    This topic created in 3548 days ago, the information mentioned may be changed or developed.

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

    Supplement 1  ·  Feb 26, 2017

    看了这么多回复,大概的原因是这个

    1. 前后端分离.(但是我的管理后台,不需要前端,用bootstrap就好了,所以pass)
    2. 减少带宽。(我的管理后台不怎么在乎性能,用的没有几个人。pass)
    3. 降低服务器的cpu。(我现在服务器cpu不到50%,pass)
    4. 移动端。(没有移动端。。要有移动端的话,就需要前端来写样式了。。所以还是pass)

    所以我直接返回html,对我这个项目是合适的?

    36 replies  •  2017-02-27 12:50:33 +08:00
    Luckyray
    Luckyray
    Feb 25, 2017 via iPhone
    1
    还得后台渲染是不是加重了负担?
    RE
    RE
    Feb 25, 2017
    2
    用 ajax 的其中一个目的就是服务端只处理业务,然后返回业务处理后的结果,以 json 格式返回,就可以做到前后端分离了。
    如果返回 html ,那后端开发的时候还得去考虑到底某句话要放在什么标签里面,某个地方要搭配什么 icon 用什么 css ,而这些本应该是前端的工作。
    oisc
    oisc
    Feb 25, 2017❤️1
    3
    HTML --> HyperText Markup Language ,是标记语言,不是数据结构
    simple2025
    simple2025
    OP
    Feb 25, 2017
    4
    @RE 是为了前后端的目的是吧,那如果是一个管理后台这种几乎不需要前端的,那就可以返回 html 了?
    Cbdy
    Cbdy
    Feb 25, 2017 via Android
    5
    早期 jquery 的 onload 没有用过吗?
    cooro
    cooro
    Feb 25, 2017 via iPhone
    6
    @chenqh 管理后台几乎不需要前端?那这种 web 程序都可以直接静态网页就够了!
    simple2025
    simple2025
    OP
    Feb 25, 2017 via iPhone
    7
    @cooro 用 bootstrap 就好了呀 ,小公司后端样式不怎么看重,看重也没办法
    loading
    loading
    Feb 25, 2017 via Android
    8
    有返回 xml 的,你指的应该是这个吧。
    kindjeff
    kindjeff
    Feb 25, 2017 via iPhone
    9
    b 站搜索页面点下一页返回的就是个 html 然后嵌进去的。
    simple2025
    simple2025
    OP
    Feb 25, 2017
    10
    @kindjeff 那种估计是 pjax ,那种东西不会用
    Reign
    Reign
    Feb 25, 2017
    11
    万一前端模板变了啊
    kindjeff
    kindjeff
    Feb 25, 2017 via iPhone
    12
    @chenqh 那你这贴有结论了……因为返回 html 的你定义为 pjax 了……
    cooro
    cooro
    Feb 25, 2017 via iPhone
    13
    麻雀虽小,该有的都得有。后台管理不只是样式吧。前期图“省事”(还不一定),后期就费劲了。
    simple2025
    simple2025
    OP
    Feb 25, 2017
    14
    @kindjeff 不一样啊,那种不仅返回的是 html 并且好像 page 的变化也要表现在 history 里面
    doubleflower
    doubleflower
    Feb 25, 2017
    15
    几年前 ajax 刚开始的时候大家都返回 html 直接替换一块 dom 的。直到后来前端开始有架构了,从 backbone 开始,到 angular/react 才没人这么干了。
    Mbin
    Mbin
    Feb 25, 2017
    16
    比如现在的 express + ejs 模板,这种就是直接返回 html 模服务器渲染的,现在也是油公司这样开发的,配合内部框架,前后台一人搞定
    bombless
    bombless
    Feb 25, 2017 via Android
    17
    backbone 貌似就是返回 html 的,没用过
    helloccav
    helloccav
    Feb 25, 2017 via Android
    18
    @RE 对我个人来说,因为我要同时做前端和后端,所以我的 ajax 一般是返回 html ,这样我的 html 代码就可以复用了
    sfree2005
    sfree2005
    Feb 25, 2017
    19
    还有考虑到移动端的需要, 前后端分离其中的一个好处
    jsq2627
    jsq2627
    PRO
    Feb 25, 2017 via iPhone
    20
    上古时代 ajax 确实主要返回 xml 和 html
    lightening
    lightening
    Feb 25, 2017
    21
    不少。看 Pjax 和 Turbolinks 。 React 也可以 server 端 render 。前端不复杂(仅仅需要无刷新跳转,而不是类似 gmail 这样的页面内逻辑)的网站用这种方式更方便。

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

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

    还有把整个 dom 干掉, ajax load 一个新的 html 到页面上,也是经常用的......
    #所谓的无缝刷新...
    Tink
    Tink
    Feb 26, 2017 via iPhone
    30
    看你怎么用,我自己一个人写都是返回 json
    gouflv
    gouflv
    Feb 26, 2017 via iPhone
    31
    你可以查下前后端分离的具体做法
    leopku
    leopku
    Feb 26, 2017
    32
    踩过坑就知道为啥以前流行的 ajax 返回 html 现在不流行转而流行只返回数据了
    fuxiaohei
    fuxiaohei
    Feb 26, 2017
    33
    这是 pjax ,最有名的使用者是 Github 。
    你在项目切换代码文件目录,就可以看到 pjax 的 xhr
    ppwangs
    ppwangs
    Feb 26, 2017
    34
    pjax
    wenzichel
    wenzichel
    Feb 27, 2017
    35
    直接返回 json 格式的数据,有利于多环境的使用,比如多个页面中只是数据一样,但是展示的方式不一样;还有就是接口维护方便,当字段发生改变时,前端页面的展示尽量不受到影响
    tofishes
    tofishes
    Feb 27, 2017
    36
    ajax 返回 html 没什么问题,简单易用。至于什么时候返回 json ,你到时候自然会明白。选择适合你当前的用法就行了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2116 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    ♥ Do have faith in what you're doing.