2017-04-15 24 views
0

私は、ポリマーショップアプリと同様のプロジェット設定をしています。アプリケーション自体のコードベースを減らすために、私はホールのメインページレイアウトをseparete要素プロジェクトに分割しました。このプロジェクトは、怠惰なそのDependencysの7をロードする要素Layoutがありますポーラーアプリケーションシェルと遅延ロード

_pageLoaded: function (shouldResetLayout) { 
      this._ensureLazyLoaded(); 
... 
} 
_ensureLazyLoaded: function() { 
     if (!this.loadComplete) { 
     Polymer.RenderStatus.afterNextRender(this, function() { 
      this.importHref(this.resolveUrl('lazy-resources.html'), function() { 
         this.loadComplete = true; 
        }, null, true); 
     }); 
    } 
}, 

ショップアプリのexmapleと基本的に同じロジックを。 _pageLoadedは、私のShop-appの双方向データバウンドページプロパティのオブザーバーです。

<link rel="import" href="../bower_components/lc-app-layout/lc-app-layout.html"> 

<lc-app-layout categories="[[categories]]" page="[[page]]" category-name="{{categoryName}}"> 
     <iron-pages role="main" selected="[[page]]" attr-for-selected="name" selected-attribute="visible"> 
      <!-- home view --> 
      <shop-home name="home" categories="[[categories]]"></shop-home> 
      <!-- list view of items in a category --> 
      <shop-list name="list" route="[[subroute]]" offline="[[offline]]" query-Params="[[queryParams]]"></shop-list> 
      <!-- detail view of one item --> 
      <shop-detail name="detail" route="[[subroute]]" offline="[[offline]]"></shop-detail> 
     </iron-pages> 
    </lc-app-layout> 

layoutと同じ方法でロードされているアプリ自体、中にいくつかの怠惰なressourcesを持っている:私のショップアプリ自体に

は、私がlayout要素とても似ています。

私はeverythinを構築したいとき今、私はアナライザはそれのdependencysを見つけるようにPolymer.jsonへのフラグメントとしてlayout要素のlazy-resurcesを追加する必要があります。

"fragments": [ 
"src/view/list/shop-list.html", 
"src/view/detail/shop-detail.html", 
"src/lazy-resources.html", 
"bower_components/lc-app-layout/lazy-resources.html" 

ありません、私は、このサービスを提供ビルドすると、ほとんどの時間はページにロードされません。

私はネットワークの速度を抑えると、すべてがロードされる可能性が高くなります。ですから、私は、非同期のImportHrefなどのタイミング問題があると想定しています。または、私はちょうどlayout要素の私の怠け者のリソースをスキャンするようにアナライザに伝えるために断片を欠場ですか?

私はPolymer-CLI 0.18.0を使用しています。 polymer serveでアプリを実行すると意図したとおりに動作します。

答えて

1

遅延読み込みをlayout要素からShop-appの遅延読み込み元に移動することで問題を解決しました。