HTML导入异步标记 - Chrome中的奇怪行为

时间:2016-06-09 16:29:58

标签: google-chrome polymer

我正在尝试在基于Polymer的Web应用程序中优化Polymer Elements的加载。特别是我在初始启动屏幕上集中精力。如果用户没有在cookie中保存有效的jwt令牌,则必须登录。

index.html加载应用程序元素<pas-app>,后者又加载会话管理器(<pas-eession>)。由于正常启动将是用户已经登录时处理用户名和密码输入的元素(<pas-logon>)隐藏在<template is="dom-if">内的<pas-session>元素后面,我有将async标志添加到该元素中的html导入行 - 因此:

<link rel="import" href="pas-logon.html" async>

然而,在chrome中(我没有在firefox中遇到过这种情况,html导入是polyfilled),这个异步似乎流过自定义元素中的嵌入式<script>元素。特别是我得到一个类型错误,因为将它作为自定义元素重新定位的脚本认为Polymer不是函数。

我怀疑我使用了错误的async标志 - 有没有办法指定html导入不应该阻止当前元素,但是应该在加载时阻止自身内部的脚本。

1 个答案:

答案 0 :(得分:1)

我认为我今天遇到了同样的问题,并在寻找解决方案时发现了这个问题。使用importHref异步时,我得到[paper-radio-button::_flattenBehaviorsList]: behavior is null, check for missing or 404 import之类的错误,并且没有按正确的顺序加载依赖项。当我更改为async = false时,错误消息就消失了。

这似乎是Polymer的一个已知错误,或者可能是Chrome https://github.com/Polymer/polymer/issues/2522