Загрузка файла контроллера AngularJS по требованию

#angularjs #requirejs

#angularjs #requirejs

Вопрос:

Я новичок в angular, но, насколько я понимаю, содержимое всех файлов контроллера должно быть отправлено клиенту в начале страницы.

Что, если у нас в приложении много контроллеров?

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

Хотя этот тип кода отлично подходит для определения маршрутов, по умолчанию он требует предварительной загрузки сценариев контроллера на главной странице командной строки. В некоторых сценариях это работает нормально, но что, если у вас много сценариев контроллера и представлений в данном приложении, и вы хотите динамически загружать их «на лету» во время выполнения?

Я путаю с этой частью, «загружайте их динамически», означает ли это, что содержимое файла (ов) контроллера все равно будет загружено / отправлено клиенту, но оно будет загружаться по требованию или это также включает в себя загрузку содержимого файла по требованию?

Меня беспокоит то, что если начальная загрузка займет слишком много времени, приложение завершится сбоем. Такая ситуация произошла в последнем проекте, когда мы создавали приложение xbap, и подключение к Интернету было ненадежным, например, на сайте RIG.

CMIIW

Ответ №1:

Ну, насколько я понимаю, «загрузка их динамически», как вы упомянули, включает в себя 2 шага в процессе, один из которых заключается в «загрузке» файла клиенту, по этой причине вы используете RequireJS:

RequireJS — это загрузчик файлов и модулей JavaScript.

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

Другим шагом является включение вашего контроллера в приложение angularjs, которое уже загружено, это отложенная загрузка, выполняемая $ controllerProvider.

PS: очевидно, что если вы включите ссылку на файл JS в свой индексный файл, файл будет загружен независимо ни от чего.

Комментарии:

1. @jack-the-ripper не могли бы вы, пожалуйста, предоставить ссылку о отложенной загрузке angularjs?

2. в статье, которую вы описали ранее, логика отложенной загрузки находится на routeResolver.js раздел!

3. это очень похожий подход к onde, который вы упомянули в статье, приветствия! ify.io/lazy-loading-in-angularjs