Kriss
V2EX  ›  问与答

为啥有些网站接口返回 html 页面?比如 v2ex

  •  
  •   Kriss · Jun 1, 2020 · 6032 views
    This topic created in 2201 days ago, the information mentioned may be changed or developed.

    问了下群友,大概有如下回答:

    • seo 优化
    • 提高响应速度
    • 历史遗留问题?以前没有前后分离概念,都是服务器渲染?

    我个人猜测是提高访问速度。 比如当帖子创建,修改,回复的时候,后端生成静态页面。当查询的时候就直接返回生成页面。

    39 replies    2020-06-02 12:02:27 +08:00
    2kCS5c0b0ITXE5k2
        1
    2kCS5c0b0ITXE5k2  
       Jun 1, 2020
    前后端分离也能 服务器渲染啊 XD
    misaka19000
        2
    misaka19000  
       Jun 1, 2020
    那么为什么不直接返回 HTML 页面?
    Kriss
        3
    Kriss  
    OP
       Jun 1, 2020
    @misaka19000 不太懂。我也是个人猜测吧。不知道为什么要这样设计,b 站的主页接口也是返回静态页面,v2 全站的接口好像都是返回页面
    misaka19000
        4
    misaka19000  
       Jun 1, 2020
    @HHAO2019 #3 我的意思是一般都是返回动态渲染过的页面,这是一种很正常的做法
    Kriss
        5
    Kriss  
    OP
       Jun 1, 2020
    @misaka19000 和返回数据相比,返回页面会有什么优势嘛?
    reus
        6
    reus  
       Jun 1, 2020 via Android   ❤️ 11
    终于也出现只知道接口不知道页面的新一代了啊
    monsterxx03
        7
    monsterxx03  
       Jun 1, 2020 via Android
    程序员的代沟😂
    MrKou47
        8
    MrKou47  
       Jun 1, 2020 via iPhone   ❤️ 1
    这就是前端的后浪吗🐶
    misaka19000
        9
    misaka19000  
       Jun 1, 2020
    @HHAO2019 #5 开发简单
    Kriss
        10
    Kriss  
    OP
       Jun 1, 2020
    @reus @monsterxx03 前辈能详细说说嘛?/xk
    Kriss
        11
    Kriss  
    OP
       Jun 1, 2020
    @MrKou47 我是做后端的,没见过这种玩法
    ccraohng
        12
    ccraohng  
       Jun 1, 2020 via Android
    网站不吐页面吐什么
    hanyceZ
        13
    hanyceZ  
       Jun 1, 2020
    马克。。。表示只知道返回接口数据。。。
    dcalsky
        14
    dcalsky  
       Jun 1, 2020 via Android
    兄弟你本末倒置了。是用了后端模板引擎渲染,才会返回 html 。相反如果纯粹使用 restful api,那会返回数据。这是一个选择问题,如果选择 restful api 那前端工作量就要提高,毕竟是需要做状态管理以及 DOM 动态增删的。
    Kriss
        15
    Kriss  
    OP
       Jun 1, 2020
    @ccraohng 我熟知的是,前后端交互是 json 。所以一下有点懵
    yty2012g
        16
    yty2012g  
       Jun 1, 2020
    我们这里有两个原因:第一,直出性能好。第二,后端发版比前端发版容易,影响更小一点。
    dcalsky
        17
    dcalsky  
       Jun 1, 2020 via Android
    补充:如果是一个接口,但又返回了 html,那就是为了方便不用管理前端状态,而直接替换 DOM
    Kriss
        18
    Kriss  
    OP
       Jun 1, 2020
    @dcalsky 噢噢 懂了。 看了下我们公司的后台也是返回 html,用的模板引擎。/xk
    ccraohng
        19
    ccraohng  
       Jun 1, 2020 via Android
    你所指的前,这里是浏览器,并不是 “前端”。
    guanhui07
        20
    guanhui07  
       Jun 1, 2020
    接口返回 xml 或 json 好了, 让后端拼接 html 接口返回 html 给前端 我也不喜欢 .
    knva
        21
    knva  
       Jun 1, 2020
    后浪
    adrianduan
        22
    adrianduan  
       Jun 1, 2020 via iPhone   ❤️ 1
    “为什么手机电池不做成可拆卸的”
    aureole999
        23
    aureole999  
       Jun 1, 2020
    你说的这个我们一般不叫接口,叫请求。你直接在地址栏里输入地址,这时候前端在哪呢?还不是得浏览器下载 html 页面,再执行其中你自己写的 js 。现在一些网站用单页面应用,也就是用你说的接口来实现动态变化,但单页面也至少一开始得有个页面请求啊。


    发展顺序是这样的:静态网站(直接返回静态的 html ) -> 动态网站( CGI,JSP/Servlet 等动态取得数据来生成 html )-> 单页应用网站


    现在几乎见不到静态网站了(谁还记得 FrontPage 和网页三剑客)。大多数都是动态和单页之间的混合型。
    Felldeadbird
        24
    Felldeadbird  
       Jun 1, 2020
    返回 HTML 好处是不需要前端作多一次渲染。

    很多以前项目,前后分离都不彻底,接口返回不一定全是 J 结构的。
    tlday
        25
    tlday  
       Jun 1, 2020
    那个...
    你们知道 asp/jsp 吗...
    你们还记得为什么 php 代码要写在 html 标签里面了吗...
    QlanQ
        26
    QlanQ  
       Jun 1, 2020
    后浪
    NotFoundEgg
        27
    NotFoundEgg  
       Jun 1, 2020
    JSP 时代也是返回页面的 el 表达式乱七八糟的 学过 Java 的应该都知道
    cgpiao
        28
    cgpiao  
       Jun 1, 2020 via iPhone
    感觉到代沟了(非贬义)
    anmie
        29
    anmie  
       Jun 1, 2020
    哎 我们已经老了,连技术都已经隔代产生代沟了。。。
    NasirQ
        30
    NasirQ  
       Jun 1, 2020
    真*代沟....
    Caratpine
        31
    Caratpine  
       Jun 1, 2020
    模板引擎渲染的,以前的 Web 框架都自带模板引擎,比如 Django, Flask.

    Flask 比较简单,可以看一下模板渲染的过程。
    revalue
        32
    revalue  
       Jun 1, 2020
    看来我不是最菜的。这个前端必须会哦,不然怎么吹所谓的 SSR
    lewinlan
        33
    lewinlan  
       Jun 1, 2020 via Android
    问就是历史遗留问题……
    TsuiiusT
        34
    TsuiiusT  
       Jun 1, 2020
    嗯?没有一个返回 html 的请问页面从哪里来?
    jzmws
        35
    jzmws  
       Jun 1, 2020
    时代发展太快了 , 都忘记服务器渲染了, 前后端分离开发就是爽
    tingyunsay
        36
    tingyunsay  
       Jun 2, 2020 via iPhone
    seo,不然前后分离只有 json,爬虫看不到
    wusheng0
        37
    wusheng0  
       Jun 2, 2020 via Android
    你说的接口是直接访问的地址吗?
    难道说 api 返回 html ?
    lumotian
        38
    lumotian  
       Jun 2, 2020
    感觉你们都没看懂楼主说的什么,楼主说的 页面加载完了 又发了一个异步接口返回的 html 代码的那种情况
    julyclyde
        39
    julyclyde  
       Jun 2, 2020
    现在的前端界真是祸害……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 163ms · UTC 12:41 · PVG 20:41 · LAX 05:41 · JFK 08:41
    ♥ Do have faith in what you're doing.