2014-10-17 4 views
1

фона:

я загружаю мой весь AngularJS Кордова/Ионные веб-приложение с сервера. Это потрясающе. Я могу изменить приложение, не проходя Apple.AngularJS, Кордова/IonicFramework: нагрузка index.hml от сервера

Вопросы:

Q1) Как я могу использовать js-files.zip, не загружаются с сервера, в моем файле index.html? Q2) Как я могу эффективно загружать логику запуска index.html с моего сервера?

Проблемы:

На некоторых старых устройствах, время загрузки слишком высока, если я загрузить все мои .js файлы с моего сервера, поэтому я хочу, чтобы иметь возможность настроить эту логику (в index.html) и из сервер.

Единственное, я не загружается с сервера является содержание index.html

Итак, как я по существу нагрузки index.html с сервера?

Если я пытаюсь сделать это

1) Натяжение, скажем, indexfromserver.html с помощью Ajax и делать HTML переписывают index.html с document.write (Рез), то есть AngularJS проблемы:

например, модуль отсутствует ошибки (* 1 ниже), так как следующий не находится в index.html, пока после того, как ответ Ajax не переписывает index.html:

<body ng-app="myapp" ng-controller="MainCtrl"> 

1,1) можно включать необходимые модули в начальный local index.html, но если я переписал index.html, я получу эти ошибки/предупреждения о classList null в ионной (спросите меня подробности), deviceready не увольняют, и angularjs загружается более одного раза

2) Я могу перенаправить index.html, скажем, indexfromserver.html, но потом все мои $ http ответы отклоняются обещания.

Относительно 2) Мне сказали, что я должен добавить контроллер для indexfromserver.html или указать $ urlRouterProvider.otherwise ('/ app/indexfromserver');

Это не исправило отклонения запросов $ http.

Я не понимаю, как именно index.html участвует в правильной работе $ http, так как он не имеет контроллера и не является предоставленным маршрутом «иначе». Я вижу только упоминание index.html в файле config.xml.

Запрос:

Может кто-то пожалуйста, напишите фрагмент типичного примера, как приложение AngularJS Кордова/Ионные может эффективно использовать index.html логику, которая загружается с сервера?

В противном случае может ли кто-нибудь показать/объяснить, если/как я могу использовать js-files.zip с сервера, а unpresspress и использовать в index.html?

Детали/Примечания:

(* 1) Uncaught Ошибка: [$ Инжектор: modulerr] Не удалось создать экземпляр модуля MyApp из-за: Ошибка: [$ Инжектор: nomod] модуль 'MyApp' не доступен ! Вы либо ошибочно написали имя модуля, либо забыли загрузить его.Если регистрация модуля гарантирует, что вы укажете зависимости в качестве второго аргумента. http://errors.angularjs.org/1.2.17/ $ инжектор/nomod? P0 = myapp

ответ

1

Было указано, что вы можете использовать JavaScript в определенных ситуациях, чтобы разархивировать архив, но это не очень распространено. Интернет не работает так, Ionic работает внутри браузера, поэтому вы должны использовать те же процессы, что и для оптимизации веб-сайта.

Вместо этого вы создадите приложение, как любой веб-сайт. Для создания более оптимизированного приложения для быстрой загрузки выполните следующие действия. Если вы не знакомы с инструментами построения, взгляните на http://yeoman.io/, и этот конкретный генератор для Ionic https://github.com/diegonetto/generator-ionic.

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

  1. Конкатент и минимизируйте JavaScript вашего приложения в одном файле.
  2. Конкат и минимизируйте CSS вашего приложения в один файл.
  3. Сжатие ваших угловых шаблонов с помощью такого инструмента https://www.npmjs.org/package/grunt-angular-templates в одном JS-файле.
  4. Развертывание статических ресурсов на сервер.
  5. Ссылка на вышеуказанные активы в index.html.

В конечном счете целью является оптимизация активов, поэтому вам не нужно загружать много файлов, и каждый файл максимально сжимается.

+0

Неправильное использование. Вы, конечно же, можете загружать файлы из почтового индекса, распаковывать их и использовать в своем приложении. :-D stuk.github.io/jszip/ – Agamemnus

+0

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

+0

Er, zip файлы сжимаются. И нет никаких причин, по которым вы не можете заранее угадать. В любом случае, вам нужно будет убедиться, что приложение Cordova кэширует файл с помощью вашего метода. (в случае, если интернет недоступен, и это не интернет-приложение) – Agamemnus

1

Если вы хотите идти по пути почтовый файл, и вы предполагаете, пользователи не всегда подключены к Интернету, вероятно, лучший способ заключается в следующем:

Проверьте, если версия нового через вызов сервера, и если да, загрузите zip-файл, извлеките его (возможно, через stuk.github.io/jszip/) и используйте интерфейс Cordova, чтобы записать новый JS-код в память телефона и запустить код, добавив некоторые теги скриптов в ваш загрузчик.

Смежные вопросы