聚合物&移动性能。它准备好生产吗?

时间:2014-07-29 20:53:53

标签: performance mobile polymer web-component

我正在考虑在我的移动网络应用上集成Web Components / Polymer。

这里有两个性能主要瓶颈(我认为):

  1. Polymer" platform.js"大小为163KB(44KB GZipped)。这对移动3G网络来说非常重要。 Polymer声称他们的主要目标是性能,而同时,Google best performance practice首先加载移动应用程序的关键路径,最小网络请求(1个请求?)+最小化此请求大小。 如果我只想使用Polymer加载非关键组件,我可以使用async script loading pattern。如果不是这种情况,我将被迫等待加载此脚本,直到页面可以开始渲染。

  2. Web组件大量使用html导入,后者使用其他网络请求。在这里,我找到了两种可能的解决方案(12

  3. 我唯一的结论是Web组件&聚合物不是ready for (mobile) production(?)

3 个答案:

答案 0 :(得分:5)

我不是在起诉你究竟在问什么,但Polymer目前的版本是0.3.4,polymer homepage本身表示它目前处于“开发者预览版”。

一旦浏览器本身实现platform.js功能,polyfill就会消失。

  1. 如果您使用任何框架或JavaScript库,您将需要支付费用。这是除非你想在VannilaJS中编码所有东西(大多数都不会反正)。因此,您必须与任何其他库一起处理此问题。通常,您不仅会包含jQuery(22 KB),还会包含其他库,因此我不会将此视为针对Polymer的参数。

  2. 您正确地提到了解决方法。使用SPDY / HTTP-2,硫化的需求将会消失,因为那些新的HTTP协议在处理多个资源/请求时更加聪明。

  3. 您可以在移动浏览器上试用Topeka app。我觉得它在手机上运行得很好。

答案 1 :(得分:2)

在使用非常好的wifi连接的iPhone 5上,Topeka应用程序的加载时间非常糟糕(实际上对我来说,即使加载也没有超过“连接”)。这不一定是文件大小的问题,它是复杂的,执行起来很慢。这些不会很快在Safari或IE等浏览器中消失,因此除非您可以要求用户使用Chrome,否则我不会将Web组件称为“准备生产”。

有潜在的Web组件替代品不会填充聚合物所依赖的所有技术:KnockoutJS最近实现了自己的WCs版本,还有VanillaJS实现。 X-tag 2现在使用聚合物填料,因此它可能没有聚合物好多少,但值得考虑。

答案 2 :(得分:2)

我厌倦了将聚合物用于聊天应用程序,并且公平地说,我并不关心他们的polyfill和shadow dom,我只是想要很好的纸质元素集合。我使用了meteor和他们的Blaze模板引擎。 至于聚合物0.5.5,阴影dom 有很多疼痛,浏览器不支持它。你必须非常严格地面向浏览器。我最终摆脱了聚合物并使用了物化ui。

但现在发布了Polymer 1.0

他们使它与0.5 API不兼容,并说他们摆脱了影子dom概念并引入了新的shady dom,它比0.5.5快得多,但我不想做更多的实验。