今天,世界各地的计算机和网络通讯速度都变得越来越快。这有利于提升 Web 开发和用户体验。人们通过互联网能够实现的可能性也向前迈了一大步。
显著进步的另一面也意味着有一些人掉队了。在这个数字分化的年代,如何提高网络体验,以触达到更多网络和设备条件没有那么好的用户,是一个难题。
要解决这个难题,必须先理解浏览器上渲染网页的方法。
在开始之前,我需要确保你熟悉本文涉及的术语。其中一些对于新开发者来说可能难以理解。如果你对这部分已经很了解了,可以跳过。
现在让我们学习渲染网站的不同方式。
客户端渲染完全依赖 JavaScript 代码在浏览器中生成网页。在页面内容加载完毕,供用户浏览之前,浏览器预先处理 JS 代码。
JavaScript 在下载时就动态辅助定义网站架构。这里的架构指的是从 API 获取数据、 网站导航和一些网站内简单的业务逻辑。
客户端渲染因为一些 JavaScript 框架或者库,如:React、 Vue 和 Angular 的发布而变得越来越流行。仅当在 HTML 页面的头部(head)引入一个 CDN,这些架构才生效——通常这些 CDN 包含大量的 JS 代码。
毫无疑问大文件意味着更久的下载时间,同时,在首次加载就下载好大文件意味着之后访问网站其他页面的加载时间会大幅下降。
网站首先从 API 获取数据,然后数据被用于填充在客户端渲染的页面。
许多我们现实生活中的渐进式应用(PWA)就是使用 CSR 的示例,如:Spotify、Figma 和 Google Drive。
客户端渲染改变了游戏规则,并且这种改变仍在持续。但是,如果细看 CSR 的性能,会发现想要网站具备更多的功能,就需要更多的 JS 代码。也就是上文提到的越多的 JS 代码意味着更久的下载时间。
牺牲首次加载时间来换取网页的快速访问,对于一些人来并不划算。服务器端渲染就应运而生。
SSR 并未解决网页渲染的所有问题,但确实解决了使用 CSR 会面临的问题,如首次加载的时间,更多优势会在后文提到。
服务器端在接收到浏览器的请求后就在服务器渲染生成网页。服务器通过 SSR 渲染整个 HTML、CSS 和资源需求的必要 JavaScript,并且返回给浏览器。
也就意味着网站内容始终是来自服务器的最新的信息。你可以把这个类比为 REST API——后端内容实时更新。
和其他渲染手段一样,SSR 也有一些弊端。其中一个就是因为需要通过向服务发送请求才能加载网页,所以网络带宽小的用户会受到影响。同时,SSR 也对计算机的算力有要求。
静态网站生成是渲染网页一个常用的手段,在 JavaScript 框架诞生之前,大部分的网站都是静态生成的。
静态网站很受欢迎,但是有更好的生成它们的方式。这主要取决于网站是否看重性能。
静态网站的渲染和生成是一致的,也就是说静态网站的内容基本上不会被浏览的用户影响,不像使用 CSR 或者 SSR 渲染的 web 应用,用户看到的内容取决于认证和授权。
静态网站是展现不会改变,或者只需要定期更新内容的理想手段。
静态网页生成主要设计到自动化构建网页的过程。今天的 JavaScript 框架(如 Nuxt.js、Next.js 等)提供模版引擎,可使用一个模板来构建多个静态页面,可以想像这样可以解决时间。
在 SSR 和 CSR 中,HTML 网页是在构建时渲染和生成,但是静态网站生成截然不同。在你尝试访问网页之间,SSG 就生成了网站。这就是为什么 SSG 被认为是预渲染,苦差事都在渲染前做完了。
看上去 SSG 可以春风化雨,但使用 SSG 渲染页面有一个大缺点就是必须为网站的每一个可以访问的 URL 生成一个页面,如果你使用动态页面,就会更复杂。
这就回到上文提到的,静态网站的理想使用场景是展现不怎么更新的内容,也就是静态网站并不是万金油。
在分别了解这些渲染方式之后,让我们把知识整合到一起做一下对比。
我们将看三个指标——性能、SEO 和花销。
搭建可以兼容不同网络和电脑速度的网站,需要考虑到网站的性能。这里的性能指的是网站的加载速度和从 API 获取数据的速度。
接下来将分析 CSR、SSR 和 SSG 在这方面的表现
客户端渲染网站相对较慢。因为一开始需要加载 JS 代码,才能生成用户可以看到的内容。
通常情况下,JS 下载都很慢,特别是使用 JS 框架的时候。客户端渲染网页也调用 API 以从后端获取数据,这样也会增加用户的加载时间。
SSR 渲染网页可以非常快。这主要取决于服务器的速度以及用户电脑的速度,如果两者都达到预期,SSR 在性能方面可以轻松取胜。
使用 SSG 生成页面相对较快,因为实际渲染并没有在浏览器发生。
SSG 不需要额外的工作就可以向浏览器提供内容。和 CSR 一样,SSG 可能也需要调用 API 来获取后端数据,这样也会增加用户的加载时间。
最终性能是由网页中使用的 JavaScript 的数量决定的。
页面如果需要曝光的话,就应当重视搜索引擎优化。SEO 决定了内容在如 Google 这样的搜索引擎上的可访问性,同时也决定了网站在搜索引擎结果页面(SERP)上的排名。
让我们看看当这些网站被搜索引擎索引的时候,它们的 SEO 表现如何。
使用 CSR 渲染的页面并没有语义化的内容,内容主要靠 JS 生成。这样的弊端是不是所有网络爬虫都支持 JS,因此你的网站可能不能被搜索引擎正确索引。
SSR 渲染通过由服务器发出的最新的内容生成页面,由 SS 渲染的页面可以被爬虫识别也可以被搜索引擎索引。
由 SSG 生成的页面极易被网络爬虫爬取,因为它不完全依赖 JS 渲染。
给用户提供最佳的体验很重要,但账单不会自我消化,所以由体验带来的花销越精简越好。
三种渲染手段的经济花销并不相同。让我们仔细分析一下:
客户端渲染 100% 在浏览器运行,也就意味着没有额外产生花销。
客户端渲染由远程的服务器生成功能完整的页面,所以会生成额外的计算资源和花销。
没有花销。静态网站生成在构建时完成。因此,生成的网页被托管,不需要服务器额外的渲染。
当选择渲染方式的时候,请考虑好你的用例,可以根据本文所学来做判断。不同的渲染方式适用于不同的网站。
电子商务网站的开发者可能会选择 SSR 路线,或者选择更安全的静态网站。同时,web 应用的开发可能不在乎首次加载的时长,只要长远看的用户体验够好。
不论你选用哪种渲染方式,都要确保网站的可访问性——跳出自身经历。最后,千万别忘了 JS 代码的精炼。
本文由哈喽比特于1年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/OZAtn-d_aT8Q6eo_7jARkg
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。