當使用AngularJs中的routes/views模式建立大型網站或者應用的時候,把所有的自定義文件,如controllers和template等在初始化時全部加載進來,不是一個好的辦法。最好的方式是,初始化時僅僅加載所需要的文件。這些文件可能會依賴一個連接或者多個文件,然而它們僅僅被特定的route所使用。當我們切換route時,未被加載的文件將會按需加載。這不但能提高初始化頁面的速度,而且可以防止帶寬浪費。
網上大部分文章都在講通過$routeProvider以及第三方服務對controller的延遲加載,譬如:按需加載 AngularJS 的 Controller 就講解的很詳細。但是,很少有關于用$stateProvider對controller、html/template的延遲加載的文章。盡管對查看了$stateProvider相關的很多源代碼,雖然解決了html/template的延遲加載問題,但是依然沒有解決controller的延遲加載問題, 遺憾。由于時間問題,先將調查結果整理一下,等以后繼續調查。
關于html/template的延遲加載,需要將html文件與home page文件放置于不同目錄,否則會被自動加載進去。同樣,也不能用templateUrl進行文件指定,否則也會被自動加載進去。 $stateProvider.state 的 template屬性支持字符串值和函數,所以可以定義一個函數進行html文件的加載并緩存,防止重復加載文件。本想controller做同樣處理,可惜報找不到controller函數定義,嘗試很多方法都無效,等以后研究源代碼看看漏掉了什么。直接上代碼,邏輯不復雜,就不多 主站蜘蛛池模板: 凤台县| 登封市| 泰顺县| 罗定市| 台州市| 赞皇县| 万山特区| 青冈县| 民丰县| 汉川市| 措勤县| 天台县| 万源市| 镇安县| 枣阳市| 资源县| 九寨沟县| 襄樊市| 延津县| 临沧市| 武鸣县| 镇江市| 喀喇沁旗| 杂多县| 永康市| 乌鲁木齐县| 三都| 龙岩市| 奉节县| 固安县| 巢湖市| 右玉县| 兰考县| 望谟县| 绥芬河市| 盖州市| 苍梧县| 齐齐哈尔市| 鸡西市| 惠水县| 西贡区|