Изменение поведения загрузки плагина Cordova для ускорения загрузки

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

То, что я пробовал до сих пор:

  • В соответствии с документацией я попытался добавить: <param name="onload" value="false" /> ; Для каждой функции, которую я загружаю. Не помогает. ( Связанный запрос по SO )

  • deviceReady код инициализации приложения из deviceReady (инициализация не требует конкретных битов Кордовы).

Как я пришел к выводу, что плагины являются узким местом? Следующим образом:

  • Я удалил все плагины, необходимые для приложения (23 из них!), А время загрузки было сбрито на 2,5-3 секунды. Поэтому я уверен, что это узкое место.

  • Кроме того, я удалил все JS и CSS, включая cordova.js, и загрузил пустую HTML-страницу. С плагинами и без плагинов. Разница была огромная.

В целом проблема заключается в том, что пока весь собственный код плагинов не запущен, сам WebView не появляется. Больше плагинов, больше времени, которое требуется, чтобы быть видимым. Есть ли способ позволить Кордове сразу загрузить WebView и позволить загрузке JS, когда он инициализирует плагины в фоновом режиме и запускает deviceReady всякий раз, когда это необходимо? Я могу сделать некоторые вещи Кордовы в более поздний момент времени.

Связанный:

  1. Показывать webView в Кордове до загрузки API
  2. Плагин phonegap onload = false не влияет

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

С идеей использования onload=false <feature (...)> устарела. Следуйте по ссылке внизу и читайте # 12.

По другому вопросу очевидно, что лица, задающие вопросы, не знают, что это невозможно.

Основной просмотрщик пользовательских интерфейсов для всех платформ Cordova / Phonegap – это библиотека под названием WebView (на Android и аналогичная на других платформах). Все эти библиотеки имеют одну общую черту: НЕ загружают, Javascript или другие инструменты, которые могли бы сделать это Полномасштабный веб-браузер. В результате Javascript должен быть включен (по Кордове) и загружен (операционной системой). Это происходит не до тех пор, пока все остальные части документа HTML не будут распознаны (но, возможно, не загружены); Это включает в себя CSS, шрифты, изображения и значки (при необходимости).

Тем не менее, на более поздних элементах, например, CSS может быть составлен – если CSS оптимизирован. Много раз разработчики не делают эту оптимизацию, из-за необходимости доставить веху (и они часто никогда не вернутся, чтобы исправить ее).

Возвращаясь к плагинам, правда, требуется некоторое время для загрузки плагинов, но часто неясно, почему плагины делают soo long. Плагины после загрузки должны выполнить * some * инициализацию, но сколько времени это займет, зависит от плагина. Например, плагин геолокации (GPS) может занять до 10 секунд, прежде чем доступно доступное чтение.

  • Время загрузки. Попытка настроить время загрузки вряд ли окажется полезным, потому что, независимо от плагина, плагин должен загружать то, что ему нужно.
  • Init time Попытка настроить внутренности плагина – это обсуждение, которое вы должны иметь с автором.

Кроме того, я мог бы предположить, почему некоторые из плагинов занимают так много времени, но я не знаю, что вы используете; Так что это было бы бесполезным усилием.

Наконец, есть * возможно, какой-то метод, чтобы сократить время между запуском и готовностью пользователя , но я ничего не слышал, и я не видел ничего. Это включает в себя мои чтения Кордовы, Phonegap, Android и Apple iOS docs.

Этот документ может оказаться полезным во время разработки
Лучшие ошибки от разработчиков, новых для Cordova / Phonegap