欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

目前我这边的web页面,都是采用php+smarty模板生成的,是一种比较早期的开发模式。好处是没有现阶段常用的前后端分离出现的首屏问题,因为其本身就是服务器渲染,坏处是代码分离不好做,公用化及组件化不好做。这里涉及前后端分离相关问题,老生常谈,这里暂不讨论。

​ 近期,在做一些前端分离的尝试。采用国内非常流行的的vue框架,选这个框架而不是react的原因主要是vue的mvvm保留html书写惯性,对于html里写代码多的人来说更容易入手。而且流行框架vue也经过了极大量的测试验证,参考资料充实详尽,可靠性和易用性都满足条件,没有理由不尝试一下。

​ 总的来说,做了一个如下小应用demo,长下面这样,三个简单页面,分页查看所有王者英雄,或者所有装备。分别采用 php+smarty,vue-cli,vue+ssr,三种方式进行开发,完了再对结果做一下对比。

​ 三个版本的体验入口如下(尽量用手机浏览器扫描,微信对ip域名有特殊处理),

​ 三个版本并没有严格做相同环境处理,所以下面的对比分析仅作为直观上的对比了解,并不适用于详细性能上的严格对比额。

​ 对三个页面分别进行webpage test,测试结果如下,

▲ 详细结果

​ php版:

​ vue ssr 服务器渲染版:

​ vue-cli 静态版:

▲ 综合参数

1、页面加载时间。理所当然是纯静态的vue-cli最快。vue ssr 和 php 版差不多(忽略上面的php版,因为php版有一些额外资源要加载)。

2、首字节时间。静态的最快。若扣除dns时间,其实php和vue-ssr版差不多。(注:php版和vue ssr版不是部署在同一台机器上,php版机器性能要强一些,多核,vue-ssr版机器比较弱单cpu单核)

3、渲染时间和页面呈现熟读指数,vue ssr版比php版本稍微慢一点。这是因为,php的html到页面后直接就呈现了,而vue ssr到client后,有一个vue框架的渲染过程。

▲ 加载瀑布流

​ 从加载流的角度上看一下三者的区别,

php版本

vue ssr 服务器渲染版本

vue-cli静态版本

​ 从瀑布流上可以看出很多三种页面执行方式的区别,列举一部分如下:

1、php 版以及 vue-ssr 版 有较长的服务器处理时间,,,对应的首字节时间明显高于没有服务器处理的vue-cli静态页面。

2、由于服务器版本的php或者vue-ssr的首屏数据都已经生成了,所以页面不会再次请求接口,少了数据的请求过程。而vue-cli版有一个较长的数据请求过程。

3、vue-cli静态页面的dom content time 或者 document complete time 明显最短,原因是模板html几乎没什么内容。

4、webpack打包拆离出来的独立js或者css文件,其实在同一域名下,由于浏览器同一域名可以并行6个tcp,以及http的keep-alive性质,其实总的下载时间不多。对比看,跟阻塞的dns时间差不多。

5、三种页面 Start Renderer Time 分别是 1.2s,1.3s,2.0s。 vue-cli静态页面生成的白屏时间中,大部分是首屏数据请求消耗的时间,,同时也可以对比出,服务器渲染的对首屏时间的确有很明显的效果。

▲ 直观体验

​ 时间,,平均速度指数Speed Index,分别是1.2,,,1.3,,,2.0s,,,可以观察下面的对比视频体验。

​ >点此观看动态视频<

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区!

php动态渲染和静态渲染,php,vue,vue-ssr 做出来的页面有什么区别?相关推荐

  1. python中动态语言静态语言的定义_作为程序开发,你所需要知道的编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的概念以及区别...

    作为程序开发,你所需要知道的编译型与解释型.动态语言与静态语言.强类型语言与弱类型语言的概念以及区别! 在各式各样的开发过程当中,我相信各位开发小伙伴在开发过程中并没有太关注什么是解释性语言和编译性语 ...

  2. 动态IP与静态IP的区别

    在互联网上,每一台电脑都拥有自己的ip,往往区分为动态ip和静态ip.很多新手用户往往都可能会混淆动态ip和静态ip的概念.那么,它们之间到底有哪些区别呢? 1.静态ip:在Internet上有千百万 ...

  3. 前端学习(1969)vue之电商管理系统电商系统之渲染动态参数和静态参数的表格

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  4. uni-app 动态拼接图片地址,图片无法渲染,静态地址可以显示

    先上图 这里 根据请求的参数 拼接图片的地址,采用-/方式. 问题:动态无法渲染,静态 完全可以. 解决: 这里将 路径 改成 根路径 就ok啦.试了很多种请求的方式,原来是路径问题,就解决啦.

  5. 服务端渲染与客户端渲染详解(vue)

    1.客户端请求 (1)用户在浏览器输入请求的地址例如:172.0.0.1:8080 到服务器 服务器接受到客户端的请求拿到一个没有被数据渲染的空页面 (2)客户端拿到服务端的空字符串页面,然后从上往下 ...

  6. Vue的常用指令(v-html {{}}文本插值,v-bind绑定属性,v-if条件渲染,v-for列表渲染,v-on @ 事件绑定,v-model表单绑定)

    Vue的常用指令(文本插值,绑定属性,条件渲染,列表渲染,事件绑定,表单绑定) Vue 的介绍 Vue 是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已 ...

  7. vue 限制渲染条数_深入理解Vue 的条件渲染和列表渲染

    这两天学习了Vue.js 感觉条件渲染和列表渲染知识点挺多的,而且很重要,所以,今天添加一点小笔记. 条件渲染 v-if 在 < template > 中配合 v-if 渲染一整组 在使用 ...

  8. [vue]vue渲染模板时怎么保留模板中的HTML注释呢?

    [vue]vue渲染模板时怎么保留模板中的HTML注释呢? <template comments>... </template> 个人简介 我是歌谣,欢迎和大家一起交流前后端知 ...

  9. vue隐藏浏览器_一分钟学会Vue的条件渲染和列表渲染

    介绍 之前一段时间由于工作很忙,没有时间继续学习Vue,今天算是继续对之前的学习进行补充了,今天要学习的便是Vue的条件渲染和列表渲染,我们将讨论if.if-else.if-else-if,show等 ...

最新文章

  1. SCOPE_IDENTITY()
  2. php控件不显示,解决控件遮挡问题:关于有窗口元素和无窗口元素
  3. linux 网卡驱动分析,LINUX_网卡驱动分析
  4. DotLucene 系列文章
  5. 【原创】如何写一个框架:步骤(下)
  6. 腾讯之后,网易跟上了:未成年人每日限玩1.5小时游戏
  7. CentOS 6系统FreeSwitch和RTMP服务 安装及演示(四)
  8. C语言4位BCD码加法器,四位二进制BCD码加法器.doc
  9. 仓库实现降本增效的秘密法宝,WMS智能仓储系统
  10. 【DIY】手把手教你爆改一台手机制作掌上游戏机
  11. 卸载程序时总是 显示“请等待当前程序完成卸载或更改”!
  12. RN:metro缓存以及如何清除缓存
  13. 用transform:scale();缩放
  14. Playcanvas 上手使用
  15. selenium模拟12306登录
  16. 让群晖ds218play同树莓3B+派互通有无
  17. jquery的在线api
  18. SOLIDWORKS工程图导出为DWG图纸
  19. Google Earth Engine ——数据全解析专辑(US NED CHILI /Landforms/Topographic Diversity)美国DEM地形10米分辨率数据集
  20. Win7下设置WiFi热点

热门文章

  1. 这条路有多长,有多难 | 专访OnVideo创始人余世兵刘歧
  2. 音视频技术开发周刊 | 143
  3. 高孟平:深度学习是视频技术与人眼视觉连结的重要桥梁
  4. 2021 有哪些不容错过的后端技术趋势
  5. 一起 goroutine 泄漏问题的排查
  6. SuperSQL:跨数据源、跨DC、跨执行引擎的高性能大数据SQL中间件
  7. nginx-rtmp常用指令
  8. nginx利用proxy_cache来缓存文件
  9. 基于Hexo搭建博客
  10. java spring-webflux netty