知乎这种纯前端渲染真的没问题么?

2017-07-03 14:34:30 +08:00
 autoxbc
类似专栏页面这种,body 里就是空标签和 json
https://zhuanlan.zhihu.com/p/26644788

我就不说禁用 js 会怎样了
就是那大几万行的脚本,随便抛出个错误就会导致页面白板
Web 设计第一课,老师说要 "平稳退化,渐进增强"
是不是知乎的高逼格导致他们的前端也很吊?
17201 次点击
所在节点    前端开发
103 条回复
chengluyu
2017-07-03 15:49:48 +08:00
@autoxbc 开头不会崩,不然开发和测试都是干啥的。

知乎并不只是一个纯展示弱交互网站,投票、评论、答案的展开折叠、图片的动态加载、消息查看与回复。虽然交互性不如微博网页版这样的网站强,但也不算很弱了吧。
qiayue
2017-07-03 16:03:21 +08:00
@tabris17 给搜索引擎的另有页面
tabris17
2017-07-03 16:07:09 +08:00
@qiayue 这个算是作弊了
zander1024
2017-07-03 16:13:42 +08:00
你这就好像要人家兼容 ie5 一样恶心
jsq2627
2017-07-03 16:13:44 +08:00
在想这年代还有谁会禁用 js...
wxsm
2017-07-03 16:15:06 +08:00
"平稳退化,渐进增强" 是正确的理念,但是实际上要考虑的东西要更多一些,反正说肯定是这么说,具体怎么做那得跟着实际情况来。就最简单的一个开发效率问题,React 那得比后端渲染 + jQuery 要快得多,这是一大块成本,不可能不考虑的。至于其它问题,SEO 什么的,都可以有解决方案。当然禁用 JS 肯定得炸,只是今天禁用 JS 的浏览器有多少呢?
jsq2627
2017-07-03 16:15:07 +08:00
知乎专栏用了 angular,针对 seo 是有预渲染的,ua 改成 googlebot 就能看到返回的是渲染后的结果
haogefeifei
2017-07-03 16:25:14 +08:00
@tabris17 知乎现在很多内容都出现在百度的搜索结果里,SEO 看来是不用担心的
libook
2017-07-03 16:33:41 +08:00
个人不认为纯前端渲染就一定是只为了高逼格,任何技术的选型都是要综合考虑的,而不是凭借书本上或者老师的一句话。

通常会在以下几个方面考虑:
网站业务特点:网站是更适合纯前端渲染还是更适合非纯前端渲染?
开发成本:使用纯前端渲染技术和非纯前端渲染技术的成本差距有多大?
风险:纯前端渲染和非纯前端渲染在网站可靠性方面的差距有多少?是否有额外的产品设计可以保证在有问题的情况下正常提供核心功能或者引导解决问题?
运营成本:使用纯前端渲染和非前端渲染,在网站的运营成本上有多大差距?
人力资源:目前有限的开发人力资源是适合纯前端渲染还是非纯前端渲染?
技术发展趋势:目前网站技术的发展趋势是纯前端渲染还是非纯前端渲染?趋势是否已经成熟?

我司(不是知乎)选择纯前端渲染架构是因为:
网站业务特点:我们的网站的业务是以内容展示为核心,UI 有大量复杂的交互功能,而且并不是每次操作都需要重新渲染整个页面,只对页面中的特定元素做变化处理,而且也没有很多的敏感业务逻辑必须要隐藏在服务器端,所以我们的网站是更适合纯前端渲染的。
开发成本:有很多现成的纯前端渲染框架可以使用,不需要开发者关心前端渲染本身,只需要关心交互方式、视觉样式和数据流,极大地缩短了开发时间。
风险:我们使用的 React 只兼容 IE9 及以上版本的“旧浏览器”和所有的“现代浏览器”,截止到 2017 年 6 月,IE 整体的占比已经下跌到 9%,而其中 IE9 以下的版本占 IE 总量的 49%,也就是浏览器市场总量的 4.4%,加点余地的话差不多有 5%的网民是排除在 React 之外,假设我们的用户是在网民中均匀分布的,那么就会有 5%的用户不能正常使用我们的网站,但若为这 5%的用户做兼容的话可能要多花费 50%的开发成本,所以即便有 5%的不兼容也算是性价比较高的方案,同时会有辅助方案如页面发现兼容性问题即引导用户安装现代浏览器或使用 PC 版客户端,可以进一步削弱对这 5%用户的影响。React 本身有世界顶级软件公司的支持,技术水平和质量把控要远远超过我司这种小公司,所以在这方面无论是用前端渲染框架还是服务端渲染框架都是差不多的,毕竟服务端渲染出 Bug 也不能保证前端不是空白的,容灾设计无论在前端还是后端都是要有设计的。
运营成本:纯前端渲染的时候,渲染压力被转移到了前端浏览器上,服务端只需要关心核心的业务逻辑,不需要关心 UI,节省了大量服务器计算资源;用 AJAX 等技术可以有效减少数据的传输量,节省昂贵的带宽费用;前端除了 index.html 以外全部托管在 CDN 上,任何地区的任何量级的用户都能流畅加载前端页面,而且 CDN 的流量费用比服务器的流量费用比起来简直就是白菜价。
人力资源:我司所有前端开发都有纯前端渲染架构开发的经验,所以采用纯前端渲染的架构方案是没有问题的,反而服务端渲染架构的话多多少少需要服务端开发人力的介入,两端工作有一定程度相互耦合,项目可能会互相牵制。
技术发展趋势:这个就不多说了吧,看一看纯前端渲染相关技术栈在国内外受到关注的上升速度,就大概了解了。React 已经是第二代真正意义上的前端框架了,此类技术已经完全成熟。而且我前两个月招实习的时候发现绝大多数的投简历的实习生都自学过至少一种前端框架,而像 Ract 这样的前端框架,正是纯前端渲染架构的基础。

综上所述,我司决定使用纯前端渲染的架构设计。
具体情况具体分析,我司的情况并不一定适应于所有其他公司,但思路可以作为参考。

软件工程没有银弹;没有最好的方案,只有最适合的方案。
qiayue
2017-07-03 16:51:29 +08:00
@tabris17 看你具体怎么给,可合法,可作弊
j
2017-07-03 17:44:16 +08:00
SEO 是什么鬼?把内容免费提供给百度么?需要么?
sunjourney
2017-07-03 17:47:16 +08:00
@tabris17 #7 textarea 里的不是就 SEO 吗
sunjourney
2017-07-03 17:50:54 +08:00
@tabris17 #23 “作弊”这个词应该没法洗成褒义的吧?世界通用的做法原来是作弊
371657110
2017-07-03 17:51:16 +08:00
没毛病...
zythum
2017-07-03 17:57:04 +08:00
要不你再看下 facebook 吧....
learnshare
2017-07-03 17:57:48 +08:00
纯前端渲染是趋势,就是为了实现更复杂的 Web App。
你们说禁用 JS,那前端行业还要不要发展了
autoxbc
2017-07-03 18:00:11 +08:00
@XueSeason
@zander1024
@jsq2627
@wxsm
@libook

我提纯前端渲染,大家就揪着纯前端渲染
我提禁用 js,大家就揪着禁用 js
这是我没想到的

我提平稳退化,大家打个哈哈,提开发成本云云就算过去了
这个我预想到了

从理念上讲,完全没有退化就是错的,这和用户是否禁用 js 没关系。进一步说,我们不仅要考虑退化问题,还有可访问性,无障碍浏览,这才是前端应该做的,不然和切图仔有什么分别。

从技术上讲,只要把几百个字的正文复制一份放在标签里,不要说 IE6 IE5,就是 lynx 都没问题,这很难么?需要多少开发成本?浪费流量?那 2MB 的脚本是怎么回事?

提技术栈的,桌上没筷子就上手抓么? React 不做退化,所以选择 React 就没办法做退化?退化的核心是内容权重分析,是 UX 体验调整,前端技术栈不能思考,前端程序员可以。
LINAICAI
2017-07-03 18:03:39 +08:00
对用户来说,第一不知啥是 js,第二找不到禁用开关吧
别鸡蛋里挑骨头啦
just1
2017-07-03 18:06:30 +08:00
这年头禁用 js 的除了 tor 浏览器没了吧。。
这又不是银行一定要兼容所有客户端
autoxbc
2017-07-03 18:24:37 +08:00
@just1 #39 这里讨论的不是兼容,是退化,退化是允许功能缺失的
@zythum #35 我去看了 google search,gmail,退化做的相当好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372673

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX