Ich kann nichts im Web finden. Ich benutze Polymer 1.6 und versuche Lazy Loading der Elemente zu machen. Bisher ist es mir gelungen, Lazy Loading zu laden und die Geschwindigkeit hat sich erheblich erhöht.Abfangen von HTML-Importen
Ich mache die App Shell-Architektur, in der ich (durch Minimierung und Vulkanisation) alle Skripte bündle, die für Navbar und Schublade Arbeit benötigt werden. Aber sobald ich das tue, gibt es viele HTML-Importe, die Teil der App Shell sind, die aufgerufen werden, weil sie sich in Namen unterscheiden.
Ich könnte die HTML-Importe von meinen Elementen entfernen, aber das wäre fehleranfällig. Hinweis: Ich weiß, dass HTML-Importe nur einmal ausgeführt werden, aber da sie Teil eines Bundles sind, weiß der Browser nicht, wie er das Laden verhindert.
Also, was ich tun möchte, ist HTML-Importe abfangen, überprüfen Sie, ob das Element Teil der App-Shell ist, und verhindern Sie seine laden, wenn es bereits existiert.
Etwas wie folgt aus:
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;
}
});
Ich brauche auch einen Weg, um es mit anderen Browsern wie Firefox zu tun. Anscheinend verwendet Polymer ein Polyfill, das stattdessen AJAX aufruft.
Ich habe noch einen Weg gefunden, damit dies funktioniert. Gibt es eine Möglichkeit, einen allgemeinen Ereignis-Listener zu erstellen? –