我试图将Polymer 2组件集成到现有的SPA中(使用JSF构建[ab])。 只要我的POC在Chrome中运行,我就掌握了基础知识,我真的不在乎它是在Shadow还是Shady DOM中呈现(但两者都经过成功测试)。此外,还没有聚合物构建。 但一切都很好。
输入MS Edge。
现在我需要填充每个平台功能,但我很好:
我做了 bower安装webcomponentsjs ,我还 <script>
- 包含webcomponents-lite.js
,这是我的html标头中的第一件事。
即使强制所有polyfill ,Chrome中的一切也能正常运行。
对于以下文件(非详尽列表),MS Edge只会产生大量 HTTP 404 :
+
63个类似的失败请求,全部指向bower_components / node_modules 有趣的是,在仅运行bower install
后,我的设置中不存在这些问题。他们应该被生成吗?如果是这样,在什么构建/设置步骤?
包括webcomponents-loader
而不是webcomponents-lite
并没有任何区别。
Webcomponents polyfill首先包含在标题中;聚合物lib最后。其中还加载了一些其他JavaScript库,用于呈现应用程序。 在呈现和初始化应用程序本身之后,按需实例化组件并延迟加载。但我怀疑Edge在此之前很久就停止了与WC相关的任何事情。 此外,我无法调试任何网络活动(例如正确加载webcomponents- [lite | loader]),因为F12调试工具&#39;网络标签在加载时立即死亡。
我的应用由 WebSphere Liberty个人资料(Windows 7)提供服务,这可能会也可能不会产生重大影响。也许这是文件/磁盘权限的问题?我怎么检查呢?
我知道这个问题与Polymer 2.0 webcomponents-loader.js is missing Edge polyfill非常相似,但我决定对环境进行更全面的描述,因为我怀疑这是问题。
任何想法都赞赏。
答案 0 :(得分:0)
Edge正在运行,但使用F12开发人员工具可以解决问题。
事实证明,这与我的背景根本没有关系;同样的问题适用于使用入门套件创建的项目。
请参阅https://github.com/PolymerElements/polymer-starter-kit/issues/1025了解另一个角度:
@Inrego于7月27日发表评论: 我更新了聚合物-cli并使用聚合物初始化,然后使用聚合物 结果:没有F12窗口,应用程序加载。在F12窗口打开的情况下,应用程序无法加载,并且会抛出一些js错误。
答案 1 :(得分:0)
我找到了邪恶的真正根源,至少对于我非常具体的背景(见OP):
webcomponentsjs-polyfills修改本机DOM功能,该功能由同一页面中包含的任何其他框架使用!
因此,虽然Web组件可能仍然可以快速呈现(取决于它们自己的实现),但polyfill也会严重影响封装页面的呈现行为(和性能)。 因此,如果您正在进行大量必要的DOM操作(就像我一样),那么页面/应用程序可能会死于缓慢的死亡。