赞
踩
很不错的一篇关于前端和后端渲染的文章,这里记录一下
英文原文连接:https://medium.freecodecamp.com/heres-why-client-side-rendering-won-46a349fadb52
原文连接:https://zhuanlan.zhihu.com/p/26366128
本期精读的文章是:Here's why Client-side Rendering Won
讨论地址是:前后端渲染之争 · Issue #5 · dt-fe/weekly
明确三个概念:「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;「前端渲染」指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA 单页面应用;「同构渲染」指前后端共用 JS,首次渲染时使用 Node.js 来直出 HTML。一般来说同构渲染是介于前后端中的共有部分。
- export const isSsr = () => (
- !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout)
- );
1. 分拆打包
现在流行的路由库如 react-router 对分拆打包都有很好的支持。可以按照页面对包进行分拆,并在页面切换时加上一些 loading 和 transition 效果。
2. 交互优化
首次渲染的问题可以用更好的交互来解决,先看下 linkedin 的渲染
有什么感受,非常自然,打开渲染并没有白屏,有两段加载动画,第一段像是加载资源,第二段是一个加载占位器,过去我们会用 loading 效果,但过渡性不好。近年流行 Skeleton Screen 效果。其实就是在白屏无法避免的时候,为了解决等待加载过程中白屏或者界面闪烁造成的割裂感带来的解决方案。
3. 部分同构
部分同构可以降低成功同时利用同构的优点,如把核心的部分如菜单通过同构的方式优先渲染出来。我们现在的做法就是使用同构把菜单和页面骨架渲染出来。给用户提示信息,减少无端的等待时间。
相信有了以上三步之后,首屏问题已经能有很大改观。相对来说体验提升和同构不分伯仲,而且相对来说对原来架构破坏性小,入侵性小。是我比较推崇的方案。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。