Loading Polymer elements on demand
我正在尝试减少需要加载大量元素的 Polymer 页面的加载时间。
所以,考虑让元素按需加载,意味着一旦我在 HTML 代码中使用了一个元素,如果没有加载,它会立即加载。
有人知道如何做到这一点吗?
当使用未知的 HTML 元素时,可能会触发某些事件?因此,一旦发生这种情况,我可以使用 importHref() 处理加载?
iron-lazy-pages 可能对你有用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | </app-location> <app-route data="{{route_data}}" pattern="/:page" route="{{route}}" ></app-route> <iron-lazy-pages attr-for-selected="data-route" selected="{{route_data.page}}"> <x-page1 data-route="page1" data-path="demo/x-page1.html"></x-page1> <x-page2 data-route="page2" data-path="demo/x-page2.html"></x-page2> <section data-route="page3"> My inline element. </section> </iron-lazy-pages> |
您可以使用以下方式安装:
1 | bower install --save TimvdLippe/iron-lazy-pages |
这取决于您的需求,没有标准的优化方法,但您可以使用 Vulcanize 工具并测试性能。
如果您不想在一个请求中加载所有 Web 组件,您可以在初始页面/视图中硫化所有需要的元素。因此,您将在一个请求中加载一组元素并在您的第一页中使用它们。
然后,您可以实现延迟加载,包括将链接标签添加到每个 web 组件的 head 部分。这样浏览器的解析任务中就不会进行加载过程,所以不会阻塞。