V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pipelining
V2EX  ›  .NET

客户端渲染和服务端渲染的区别

  •  
  •   pipelining · 2018-12-13 09:11:00 +08:00 · 6051 次点击
    这是一个创建于 2170 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 ASP.Net MVC,如果在 Controller 获取 Model 传给 View,这算是服务端渲染,那如果在 View 中通过 Ajax 获取数据填充模板,这也算服务端渲染吗?

    17 条回复    2018-12-13 20:21:54 +08:00
    tohert
        1
    tohert  
       2018-12-13 09:18:29 +08:00
    可以理解前者是服务端渲染,后者是客户端渲染。
    Mazexal
        2
    Mazexal  
       2018-12-13 09:18:59 +08:00
    不算
    wu67
        3
    wu67  
       2018-12-13 09:29:05 +08:00
    按我的理解, 客户端渲染基本等同于 ajax, 禁用了 js 之后重要内容显示不出来的, 基本都是客户端渲染
    hatsuyuki
        4
    hatsuyuki  
       2018-12-13 09:48:26 +08:00   ❤️ 1
    客户端只认识 html
    服务端将内容填充到模板后生成 html 页面发送给客户端,就是服务端渲染
    服务端将模板页面发送给客户端,客户端通过 js 获取数据填充模板,就是客户端渲染
    yidinghe
        5
    yidinghe  
       2018-12-13 09:50:46 +08:00
    渲染是指:
    1、展现数据的过程;
    2、实现响应用户操作的视觉效果。

    如果后台传给前台的是数据而不是 HTML,那么说明后台是不参与渲染的。
    oonnnoo
        6
    oonnnoo  
       2018-12-13 09:57:12 +08:00   ❤️ 1
    客户端渲染:HTML 由客户端生成,
    服务端渲染:HTML 由服务端生成,发送到客户端
    TomVista
        7
    TomVista  
       2018-12-13 10:35:25 +08:00   ❤️ 1
    首先确定一件事,web 服务器并不能进行渲染,(容我装个那啥,跳过这句吧,写的时候脑子抽抽了)

    web 服务器的渲染指的是在下发 html 前,对 html 进行处理或生成.

    客户端渲染指的是把接收到的 html 或数据处理成浏览器中的图形图像.
    ragnaroks
        8
    ragnaroks  
       2018-12-13 10:42:14 +08:00
    我个人认为屏蔽 js 能正常使用的网站才算服务端渲染
    geying
        9
    geying  
       2018-12-13 10:58:43 +08:00
    认同 6L
    比如 jsp 文件在你你访问的时候服务器返回的就是完整的 html 代码,浏览器直接显示;另一种请求 web 服务器返回的也是 html,但只是个架子,内容需要在 js 里请求,然后生成的 html 去显示。

    话说现在的前端是不是重新定义了“渲染”和“编译”两个词
    learnshare
        10
    learnshare  
       2018-12-13 11:13:04 +08:00
    看 html (或者就叫文本)是前端拼接的,还是后端拼接的
    plqws
        11
    plqws  
       2018-12-13 11:15:21 +08:00   ❤️ 1
    区别就是 HTML 是在哪里生成的
    faceRollingKB
        12
    faceRollingKB  
       2018-12-13 12:08:50 +08:00
    我脚的是,url 对应的 html 内容由服务端直接提供的才算服务端渲染,而通过 ajax 从服务端获取 html 并用 js 绑定到 dom 节点上的方式依然是客户端渲染
    wly19960911
        13
    wly19960911  
       2018-12-13 13:45:46 +08:00
    我认为重要数据能在服务器端渲染完成并且首屏展示就 ok,也就是服务器具有发送一个渲染完成的页面给客户端的能力。
    LZYPPP
        14
    LZYPPP  
       2018-12-13 14:02:35 +08:00
    在浏览器请求一个网站时服务端渲染是把带数据的 html 返回,客户端渲染是把 html 返回给浏览器然后再请求数据,这样就可以利用客户端的机器,一定程序减轻服务器的压力;这就是为什么搜索引擎(以前的说法)搜索不了客户端渲染的网站,因为这个网站的没有数据的
    godbmw
        15
    godbmw  
       2018-12-13 14:03:34 +08:00
    后者是客户端渲染
    liuxey
        16
    liuxey  
       2018-12-13 14:10:43 +08:00
    第一种是服务端渲染没问题,服务端直接出来 HTML
    第二种我觉得应该叫"客户端二次渲染",流程是服务端将数据"渲染"成 JSON,客户端再将接受到的 JSON 渲染成 HTML

    我觉得对于服务端来说,渲染成 HTML 还是 JSON 性能上并没有差多少,反而第二种多了一次客户端渲染。出现这种情况是工程化分工的结果,让所有开发都熟练的掌握从 DB 到 HTML 的技术并不是很好的发展路线。
    mmdsun
        17
    mmdsun  
       2018-12-13 20:21:54 +08:00 via Android
    net mvc 的页面是.aspx,.cshtml razor 语法标记。这种都算。浏览器只认识 html。

    静态页面+ ajax restful。服务端只返回 json 数据。这种算是客户端渲染。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:17 · PVG 20:17 · LAX 04:17 · JFK 07:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.