我在网上找不到任何东西。我正在使用 Polymer 1.6,并且正在尝试对元素进行延迟加载。到目前为止,我已经成功地延迟加载它们并且速度大大提高了。
我正在做 App Shell 架构,我在其中捆绑(通过缩小和硫化)导航栏和抽屉工作所需的所有脚本。但是,一旦我这样做了,就会有许多 HTML 导入是 App Shell 的一部分,它们将被调用,因为它们的名称不同。
我可以从我的元素中删除 HTML 导入,但这很容易出错。注意:我知道 HTML 导入只执行一次,但由于它们是包的一部分,浏览器不知道如何阻止它的加载。
所以我想做的是拦截 HTML 导入,检查元素是否是 App Shell 的一部分,如果它已经存在则阻止它的加载。
像这样的东西:
var appShellComponents : [
'polymer'
'my-navbar',
'paper-button',
'app-drawer'
document.addEventListener('HTMLImportEvent', function(event){
//Untested code below
var href = event.srcTarget.href;
var component = href.substr(href.lastIndexOf('/').replace('.html','');
if(appShellComponents.indexOf(component) > -1){
//Element has been loaded, reject the import.
return;
}
});
我还需要一种方法来使用其他浏览器,例如 Firefox。显然 Polymer 使用了一个调用 AJAX 的 polyfill。