2015-10-15 4 views
3

Я пытаюсь уменьшить время загрузки страницы Полимер, для чего требуется много элементов для загрузки.Загрузка элементов полимера по запросу

Итак, размышление о создании элементов, загружаемых по требованию, означает, что когда я использую элемент в HTML-коде, если он не загружен, он сразу же загружается.

У кого-нибудь есть идея, как это можно сделать? Возможно, какое-то событие запущено, когда используется неизвестный элемент HTML? Таким образом, я могу обработать загрузку с помощью importHref(), если это произойдет?

+0

Я бы поставил на вулканизацию всех вещей в один большом файл и служит он застегнул. Скорее всего, все ваше приложение wieghs не больше, чем Polymer + basic elts, поэтому пользователь не заметит, добавит ли вы дополнительные 20-40K. Но они наверняка заметят задержку перед загрузкой каждого elt из-за установления момента создания соединения и т. Д. Althoug было бы интересно посмотреть некоторые исследования пользователя-эксперимента на этом. – user656449

+0

Я предлагаю вулканизировать все ваши элементы и загружать их только один раз. Это можно сделать с помощью инструмента вулканизации - https://github.com/polymer/vulcanize – Nodarii

+0

Два варианта здесь. Вы можете вулканизировать свои элементы, как указано в комментариях выше, или вы можете ленить их загрузить. Существует учебник [здесь] (https://aerotwist.com/blog/polymer-for-the-performance-obsessed/), в котором говорится о создании приложения с полимером, включающем ленивую загрузку элементов. Там также гораздо больше, если вы ищете «полимерную ленивую загрузку». –

ответ

1

Это зависит от ваших потребностей, нет стандартного способа его оптимизации, но вы можете использовать инструмент Vulcanize и тест-перфоманс.

Если вы не хотите загружать все свои веб-компоненты по одному запросу, вы можете вулканизировать все элементы, которые вам нужны на начальной странице/представлении. Таким образом, вы загружаете набор элементов в один запрос и используете их на первой странице.

Затем вы можете реализовать ленивую загрузку, состоящую в добавлении тегов ссылок в раздел заголовка для каждого веб-компонента. Таким образом, процесс загрузки не выполняется во время разбора браузера, поэтому он не блокирует.

1

iron-lazy-pages может быть полезным для Вас:

<app-location route="{{route}}"></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> 

можно установить следующий:

bower install --save TimvdLippe/iron-lazy-pages