Подтвердить что ты не робот

Angular + Ионная загрузка всего содержимого через XHR

У нас есть приложение Angular + Ionic, которое мы планируем запустить через Кордову, но имеющее проблему с производительностью, которую мы пытаемся отследить.

Что мы видим в вкладке "Инструменты разработчика Chrome", когда вы запускаете локально или встроенное приложение, следующее:

  • Повторяющаяся загрузка CSS
  • XHR просит получить каждый файл шаблона, к которому подключается наш маршрутизатор Angular UI, без посещения маршрутов еще

В качестве примера:

enter image description here

И строка 3167 (указана звездой) из источника angular.js:

append: function(element, node) {
    var nodeType = element.nodeType;
    if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return;

    node = new JQLite(node);

    for (var i = 0, ii = node.length; i < ii; i++) {
        var child = node[i];
        element.appendChild(child); *
    }
},

Я никогда не видел ничего подобного - мы проверили все основы (дубликаты script/css include и т.д.), отключили Ionic-кеширование и т.д.

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

ОБНОВЛЕНИЕ

Дубликат CSS, по-видимому, связан с нашим файлом index.html, который загружает наше приложение Angular, которое было неправильно указано как состояние в конфигурации маршрутизатора UI.

Таким образом, проблема с корнями - это ложные/неожиданные приводы XHR для всех статических файлов в приложении (angular ui шаблоны, шаблоны директив).

4b9b3361

Ответ 1

Ну, когда состояние активировано, шаблоны автоматически вставляются в ui-представление его шаблона родительских состояний.

Вы должны проверить, как вы определили свои состояния. И/или поделитесь с нами своими определениями состояний:)

Ответ 2

Способ обработки html-шаблонов - это кэшировать их во время компиляции с помощью gulp -ng-templates или grunt- angular -templates (в зависимости от того, какой вкус менеджера задач вам нравится в настоящее время).

Поскольку мы имеем дело с приложениями, контент должен быть более загруженным, а не ленивым (пока вы считаете их общий размер в МБ), тем самым сохраняя некоторую пропускную способность и улучшая общий пользовательский интерфейс. Кроме того, это может просто исправить вашу проблему.

Красота кэширования шаблонов во время компиляции заключается в том, что вам не нужно знать, откуда они идут (сервер или уровень кэширования), и поэтому вам не нужно менять какой-либо код.

P.S. Я понимаю, что мой ответ не исправит вашу актуальную проблему, но он может одновременно решить только две проблемы.