При использовании режима маршрутов/представлений в Angularjs для создания большого веб -сайта или приложения загрузка всех пользовательских файлов, таких как контроллеры и шаблоны во время инициализации, не является хорошей идеей. Лучший способ - загрузить только необходимые файлы при инициализации. Эти файлы могут зависеть от одного соединения или нескольких файлов, однако они используются только по конкретному маршруту. Когда мы переключаем маршруты, разгруженные файлы будут загружены по мере необходимости. Это не только улучшает скорость инициализации страницы, но и предотвращает отходы полосы пропускания.
Большинство статей в Интернете рассказывают о ленивой загрузке контроллеров через $ routeprovider и сторонние услуги. Например, подробно объясняется загрузка контроллеров AngularJS. Тем не менее, есть несколько статей о ленивой загрузке контроллеров, HTML/шаблонов с $ stateprovider. Хотя я просмотрел много исходного кода, связанного с $ stateprovider, и решил проблему ленивого загрузки HTML/шаблона, он все равно не решил ленивую проблему загрузки контроллера, что жаль. Из -за проблем с временем результаты расследования будут рассмотрены первыми, и расследование будет продолжаться в будущем.
Что касается ленивой загрузки HTML/шаблона, вам необходимо разместить HTML -файл и файл домашней страницы в разные каталоги, в противном случае он будет загружен автоматически. Точно так же вы не можете использовать шаблон для указания файла, в противном случае он будет автоматически загружен. Свойство шаблона $ stateprovider.state поддерживает строковые значения и функции, поэтому функция может быть определена для загрузки и кэша HTML -файлов для предотвращения дубликатной загрузки файлов. Я хотел, чтобы контроллер сделал то же самое, но, к сожалению, я не мог найти определение функции контроллера. Я пробовал много методов, но потерпел неудачу. Я буду изучать исходный код в будущем, чтобы увидеть, чего не хватает. Я буду непосредственно загружать код, логика не сложна, поэтому я не буду много говорить.
// Записывают загруженные HTML и контроллер, чтобы предотвратить дубликатную загрузку сети $ ionic.files = {html: {}, контроллер: {}}; // Объявит задержка метода html $ yonic.gethtml = gethtml (name) {if (! Чтобы загрузить html и cache $ yonic.files.html [name] = jquery.ajax ({url: 'views/' + name + ".html", async: false}). responsetext;} return $ yonic.files.html [name];} // declare the dectare yonic method resolvecon resolvec namo/} // declare gloving js resolvec. = $ .getScript ('Assets/Controller/' + name + '.js'); jquery.ajax ({"url": 'assets/controller/' + name + '.js', "dataType": "script", "async": false}); // console.log ("загрузка"); {url: "/login", Controller: ResolVecontroller ("LoginController"), Template: function () {return $ ionic.gethtml ("login");Выше приведено полное описание Angularjs задержки загрузки шаблона HTML, введенного вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!