Итак, я создаю приложение Angular 9, в котором есть пользовательская панель управления для управления их шаблонами, которые сохраняются на сервере. Эти шаблоны могут быть просмотрены на разных устройствах через систему активации, поэтому устройства привязаны к пользователю.
Итак, скажем, на https://templates.com
у нас есть /login
, /dashboards
, /manage
с подпутями от просмотра и редактирования данных. По этому URL у нас также есть /:companyName
, по этому пути он запрашивает шаблон, который содержит html со строками интерполяции, но также css, который будет загружен на лету.
Пока я был достигнуть этого благодаря публикации alarm9k .
Единственная проблема, которая возникает с этим решением, заключается в том, что при создании приложения вы не можете использовать ng build --prod
, поскольку использование --prod
не будет работать как angular компилятор не включен в AOT, поэтому вы застряли в JIT.
Это приведет к гораздо большему приложению, в моем случае размер почти 42 МБ. Поэтому я хотел бы уменьшить размер файла, так как это сильно влияет на задержку приложения. Я просматривал статистику приложения, и у него было время задержки http p95 1,2 секунды, а средняя задержка http 340 мс.
При использовании различных тестов скорости веб-сайта и выберите великобританию как из где тест должен быть запущен. Я получаю значения времени загрузки от 600-900 мс. При проверке нескольких местоположений это дало мне среднее время загрузки 5 с.
Вопрос:
Так что я хотел бы знать, если бы был способ разделить приложение на 2, где один в режиме AOT, а другой в режиме JIT, если безопасно сохранять часть в режиме JIT и если это минимизирует приложение.
Если это невозможно, я хотел бы знать, что лучший способ - минимизировать это приложение и как это можно сделать.
Или, если есть способ, по крайней мере, сделать приложение более безопасным, так как весь код можно просматривать в браузере в режиме JIT.
РЕДАКТИРОВАТЬ 1:
Я забыл упомянуть, что в моем случае я использую сокет. js для системы активации, поэтому информационные панели и шаблоны несколько связаны. Таким образом, при переходе на /:companyname
, когда устройство не было подключено, прежде чем оно автоматически переходит на /activate
, где оно генерирует код и прослушивает, если пользователь вводит этот код, чтобы он мог подключить устройство к учетной записи пользователя. 1035 * РЕДАКТИРОВАТЬ 2:
Я читал, что плющ можно использовать для загрузки компонентов на лету, так что можно по-прежнему находиться в AOT и без необходимости иметь компилятор. Это можно сделать, и если да, то как этого добиться?