跳至正文
首页 » 博客 » Expert Opinions: Server-Side Rendering and Standards

Expert Opinions: Server-Side Rendering and Standards

随着web继续2018年发展,开发人员需要知道是依赖客户端还是服务器端渲染-或者是否有中间方法。SVP的开发者工具,Jason Beres有机会与Stephen Fluin,开发者倡导者在角团队在谷歌坐下来。这是对话的三个部分中的第三部分, 包括未来的原生应用程序与pw ,这篇关于服务器端渲染的文章,以及Angular团队对企业开发人员的建议。

杰森·贝尔斯:在Angular Connect的主题演讲中,你谈到了服务器端渲染的好处。如果我正在研究搜索引擎优化之类的东西,那么使用服务器端渲染与纯客户端是否有好处,或者是否有负面影响?

Stephen Fluin: 总是取决于你的观众。你应该看看具体的情况,但例如,谷歌网络爬虫能够运行JavaScript。所以角应用程序,如果你有正确的polyfills,他们将完美的索引。

遵循你的路线。在您的应用程序中导航。获取所有内容索引,所有这些东西。

其他搜索引擎爬虫不一定运行JavaScript。因此,如果其他搜索引擎对您很重要,那么这将是服务器端渲染的驱动程序。

但我会看的另一件事是; 你在你的应用程序中有一个分享按钮,或者你的用户想要复制和粘贴你的网址,并把它们放在Twitter或Facebook上?因为这些类型的抓取工具,社交媒体平台拥有的那些网络爬虫也不运行JavaScript。

因此,能够共享一个链接,然后让他们通过一个单一的HB请求得到你的大部分内容和图像和类似的东西增加了与这些平台的连接。因此,这也促使您进行服务器端渲染。

然后,从我的角度来看,关于它的最后一块是,它增加了感知性能。我说感知性能,因为从技术上讲,你实际上减慢了服务器端渲染的过程。通过为用户提供服务器端渲染,您将通过HTML为他们提供应用程序的完全渲染版本,因为浏览器必须解析,然后引导JavaScript并在此之上运行应用程序。最终,这就是我认为企业正在寻找的东西。

它呈现页面,然后用它呈现页面。所以如果我看每毫秒的性能,它实际上更慢。

但因为它提高了感知性能,这通常是最重要的。

贝尔斯: 我认为世界上很多地方都是服务器端渲染,然后我们在过去的五到七年里来到了客户端渲染,有趣的是,你们不是回去,而是在你的框架中引入了一个服务器端选项。

Fluin: 是的。完全正确.对我来说,我在另一个叫做 “网络是怎么回事” 的会议上做了一个演讲,因为我发现看着钟摆在客户端和服务器之间来回摆动,现在钟摆正在摆动,这真的很有趣,或者因为经验是如此关键而转向客户。

每一毫秒,我延迟或打断我的用户,我正在失去参与。我不能完全想出我的头顶上的数字,但这就像如果你脱离用户,或者如果你让他们等待加载屏幕超过四秒钟,这就像一个60或70% 的机会,他们会脱离并进行任务切换,想想别的事情。

因此,无论你是在为你的员工服务,你正在失去他们的注意力,还是你在为客户服务,你正在失去他们的销售,这都是一件非常重要的事情。

贝尔斯:作为提供组件库等解决方案的供应商,我们进行的许多讨论都围绕着这样的问题: “网络将走向何方?最好的决定是什么?“。真的没有标准,但我相信Angular的好处是你们提供了一个更完整的、规范性的框架,开发人员可以落后于它。就像,“我们在这里。准备好了.这是黄金时段。”

您在Angular Connect上对使用beta版本和RC版本的人们说: “谢谢,但我们很抱歉。”我认为这是正确的方法,因为你正在建立这种信任,但现在你在Angular 5上,我们看到了Angular的更多增长。实际上,这是因为你推动的规范性指导给了你一点确定性和标准化的推进。

最终,这就是我认为企业正在寻找的东西。

Fluin: 是的,我的意思是我们也看到了巨大的增长。每天都有大量的生产应用程序使用Angular启动,这是一种非常令人兴奋的看到我们所有的辛勤工作得到回报,Angular回到主流,所以说在Angular JS到Angular 2切换之后。

当谈到稳定性时,我真的认为这对开发人员来说是关键,但与此同时,我们必须在创新之间取得平衡。我真的很喜欢我们对未来的定位,我们可以让你以你学习的方式开发应用程序。所以你学习角,然后你写应用程序的一种方式。然后我们可以自动利用网络,因为它继续为你进步。

我会举几个例子。

WebAssembly是一种非常酷的新技术,但是您实际上不应该将WebAssembly交付给很多用例。

但是,作为Angular团队,我们处于一个非常独特的位置,如果在某个时候WebAssembly对您应该如何交付所有web应用程序有意义,我们实际上可以翻转开关,然后而不是编译到ES5,我们可以交付WebAssembly。然后根据引导,处理所有连接的部分,所有的dom通信,因为我们已经有了这个平台的方法,我们真的有独特的位置来做到这一点。

另一个例子是围绕ES模块的转变。所以ES模块已经成为规范标准了一段时间。但是直到今年基本上它们才真正存在于浏览器中。像WebAssembly一样,为了搜索质量和其他原因,尝试使用ES 2015模块来发布应用程序可能不是最好的主意。但是,当这确实有意义时,或者如果我们有一种方法可以将应用程序自动选择用户的现代浏览器以获得性能提升,我们可以为您做到这一点,因为我们是处理构建工具室的人,那些为你处理引导的人。

我真的,真的很高兴看到网络继续发展,Angular开发人员能够打开一个开关,或者在默认情况下自动获得所有这些好处。

贝尔斯: 您如何看待WebAssembly在未来几年的发展?

Fluin: 我不知道。我觉得这真的很令人兴奋。我们几乎已经到了JavaScript是web组件的地步,但是显然,WebAssembly的性能要高得多。我认为在接下来的几年里,随着人们开始尝试使用它,它将会发生戏剧性的变化。由于他们遇到了所有跨项目兼容性的问题,运行时…权限问题。我们必须在每个应用程序之前完成所有这些工作,每个站点都可以利用它。

贝尔斯: 对于特定的垂直行业,比如金融服务,他们正在构建内部应用程序,其中每一纳秒都很重要,性能是主要目标。因此,如果开发团队可以使用任何技术来提高任何类型的性能,这对他们来说可能是有趣的,但我是耐人寻味几年前,当我在Google IO看到WebAssembly时,有趣的是,它正在慢慢上升,对吧。

Fluin: 是的。完全正确.

贝尔斯: 我之前提到过材料,在Angular Connect上有很多关于材料的讨论。你如何看待材料的演变,或者你看到它的使用角度和其他平台多年来,材料是你们关注的东西吗?或者你也专注于其他设计语言?

Fluin: 当然。Angular Material团队专注于两件事。首先,他们专注于采用Google的材料设计理念,并将这种理念体现为一组可用的组件,为您提供开箱即用的材料设计美学。如果您将材料添加到您的项目,它会感觉像一个材料应用程序。这对很多团队来说真的很重要,因为我们想出了材料设计,我们出货角度,所以有一个默认,“嘿,我不想做任何时间思考我的设计。

贝尔斯: 像清晰度。使用它,你会得到你所期望的。

Fluin: 是的。因此,可以说,材料最终成为一种很好的违约。但是他们正在做的另一半是CDK或组件深度工具包,旨在使其他人能够构建出色的组件库。至少对我来说,我们有一个健康的生态系统,包括设计理念、组件方法、解决不同问题的企业级解决方案,这对我来说真的很重要。材料永远不会解决每个人的问题。

因此,让我们提供工具来帮助其他组件作者和供应商更快地移动,提供更高质量的用户体验,这实际上是他们的第二个任务。

我认为,如果我们从现在开始展望五年,该团队可能仍然有点专注于材料,但他们也负责使所有其他组件库的成功。

贝尔斯: 我从我们的客户那里听到的很多是,“它是基于材料的吗?它与材料一起工作吗?“。所以我认为材料无论如何都会获得这种吸引力,因为它是一个美丽的程式化图书馆,它有一个美丽的外观和感觉。

Fluin: 跨平台感觉非常一致。

###

我们要感谢Stephen Fluin在这次采访中的时间,并邀请您查看他在Angular博客上要说的更多内容。要了解有关infragistics对Angular的支持的更多信息,请查看我们的Ignite UI for Angular 页面。ICYMI-这是第一部分对话第三部分现在可以使用。

</p