Lorsque vous utilisez le mode itinéraires / vues dans AngularJS pour créer un grand site Web ou une application, le chargement de tous les fichiers personnalisés tels que les contrôleurs et les modèles pendant l'initialisation n'est pas une bonne idée. La meilleure façon est de charger uniquement les fichiers requis lors de l'initialisation. Ces fichiers peuvent dépendre d'une connexion ou de plusieurs fichiers, mais ils ne sont utilisés que par une route spécifique. Lorsque nous changeons de routes, les fichiers non chargés seront chargés au besoin. Cela améliore non seulement la vitesse d'initialisation de la page, mais empêche également les déchets de bande passante.
La plupart des articles sur Internet parlent du chargement paresseux des contrôleurs via $ RouteProvider et des services tiers. Par exemple, le chargement des contrôleurs angularjs à la demande explique en détail. Cependant, il existe peu d'articles sur le chargement paresseux des contrôleurs, HTML / modèles avec $ StateProvider. Bien que j'aie vu beaucoup de code source lié à $ StateProvider et résolu le problème de chargement paresseux de HTML / modèle, il n'a toujours pas résolu le problème de chargement paresseux du contrôleur, ce qui est dommage. En raison de problèmes de temps, les résultats de l'enquête seront réglés en premier et l'enquête se poursuivra à l'avenir.
En ce qui concerne le chargement paresseux du modèle HTML /, vous devez placer le fichier HTML et le fichier de page d'accueil dans différents répertoires, sinon il sera chargé automatiquement. De même, vous ne pouvez pas utiliser TemplateUrl pour spécifier le fichier, sinon il sera automatiquement chargé. La propriété de modèle de $ StateProvider.State prend en charge les valeurs et les fonctions de chaîne, de sorte qu'une fonction peut être définie pour charger et mettre en cache des fichiers HTML pour éviter le chargement en double des fichiers. Je voulais que le contrôleur fasse la même chose, mais malheureusement, je n'ai pas pu trouver la définition de la fonction du contrôleur. J'ai essayé de nombreuses méthodes mais j'ai échoué. J'étudierai le code source à l'avenir pour voir ce qui manquait. Je téléchargerai directement le code, la logique n'est pas compliquée, donc je ne parlerai pas beaucoup.
// Enregistrez le HTML et le contrôleur chargés pour empêcher le chargement du réseau en double $ ionic.files = {html: {}, contrôleur: {}}; // Déclare la méthode html de chargement retardé $ ionic.Gethtml = fonction gethtml (nom) {if (! $ Ionic.files.html [name]) charger html et cache $ ionic.files.html [name] = jQuery.ajax ({url: 'vues /' + name + ".html", async: false}). $ .getscript ('actifs / contrôleur /' + name + '.js'); jQuery.ajax ({"url": 'actifs / contrôleur /' + name + '.js', "dataType": "script", "async": false}); // console.log ("Lof" + nom); "/ login", contrôleur: résolveController ("LoginController"), modèle: fonction () {return $ ionic.gethtml ("login");}});Ce qui précède est la description complète du modèle HTML de chargement AngularJS Chargement qui vous est présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!