AngularJS使用ocLazyLoad實(shí)現(xiàn)js延遲加載
最近開(kāi)發(fā)一個(gè)系統(tǒng)遇到了一個(gè)問(wèn)題,用angular路由一個(gè)html片段,該片段需要使用一個(gè)js插件來(lái)實(shí)現(xiàn)一個(gè)富文本編輯器。關(guān)鍵問(wèn)題在于必須要在片段加載后通過(guò)js與dom元素進(jìn)行綁定。一開(kāi)始想當(dāng)然以為直接把js代碼寫(xiě)在代碼段里不久ok了,然而經(jīng)過(guò)實(shí)驗(yàn),路由將html片段插入頁(yè)面時(shí)只能讀取css,無(wú)法解析并執(zhí)行js代碼。
google了半天發(fā)現(xiàn)了很多angular+requireJs的解決方案,但我覺(jué)得對(duì)于我這個(gè)場(chǎng)景并不適合,因?yàn)閞equirejs本質(zhì)是一個(gè)模塊加載器,按需加載只是他的副業(yè),我們用它應(yīng)該主要是用它來(lái)做模塊化的,如果我們單純?yōu)榱税葱杓虞d卻要試用模塊化語(yǔ)法包裝我們的代碼(define),感覺(jué)有點(diǎn)像用大炮打蚊子,對(duì)于我這種需求來(lái)說(shuō)代價(jià)巨大。
最后決定使用ocLazyLoad來(lái)處理,因?yàn)榇朔桨竷?yōu)點(diǎn)是,簡(jiǎn)單易行無(wú)侵入。同時(shí)這個(gè)方案有些缺點(diǎn),比如每次動(dòng)態(tài)加載需要的腳本、模版資源會(huì)有很多不必要的網(wǎng)絡(luò)開(kāi)銷(xiāo),路由定義比較復(fù)雜(多了一些配置項(xiàng),其實(shí)不能算復(fù)雜,而是繁瑣),對(duì)于大型復(fù)雜業(yè)務(wù)應(yīng)用,路由眾多,耗費(fèi)的精力不可忽視。但是用在我這個(gè)場(chǎng)景之中正合適。于是便在github上fork下js,引入到項(xiàng)目中。
<script src="js/ocLazyLoad.js"></script>
在需要用到的angular模塊里進(jìn)行配置
var app = angular.module('formCtrlParts', ['oc.lazyLoad']);
再向路由需要用到的控制器里面使用此服務(wù)進(jìn)行js文件的按需加載
app.controller('addNewBlogCtrl',function($scope,$http,$ocLazyLoad){ $ocLazyLoad.load('../html/ckeditorjs/ckeditor.js'); })
這樣基本就大功告成,ocLazyLoad有很多種加載方式,也可以配合路由,指令進(jìn)行加載。
以上所述是小編給大家介紹的AngularJS使用ocLazyLoad實(shí)現(xiàn)js延遲加載,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
angular項(xiàng)目中bootstrap-datetimepicker時(shí)間插件的使用示例
這篇文章主要介紹了angular項(xiàng)目中bootstrap-datetimepicker時(shí)間插件的使用示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03angular2系列之路由轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的示例代碼
本篇文章主要介紹了angular2系列之路由轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11angular.js+node.js實(shí)現(xiàn)下載圖片處理詳解
這篇文章主要介紹了angular.js+node.js實(shí)現(xiàn)下載圖片處理的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03整理AngularJS框架使用過(guò)程當(dāng)中的一些性能優(yōu)化要點(diǎn)
這篇文章主要介紹了AngularJS框架使用過(guò)程當(dāng)中的一些性能優(yōu)化要點(diǎn),Angular通常被用來(lái)制作大型單頁(yè)應(yīng)用,因而性能問(wèn)題也是必須考慮的因素,需要的朋友可以參考下2016-03-03深入淺析angular和vue還有jquery的區(qū)別
vue是一個(gè)漸進(jìn)式的框架, 是一個(gè)輕量級(jí)的框架而angular是一個(gè)mvc框架, 各有千秋,下面小編通過(guò)本文給大家介紹angular和vue還有jquery的區(qū)別,感興趣的朋友一起看看吧2018-08-08AngularJS使用ng-app自動(dòng)加載bootstrap框架問(wèn)題分析
這篇文章主要介紹了AngularJS使用ng-app自動(dòng)加載bootstrap框架問(wèn)題,分析了前面文章中所述的ng-app自動(dòng)加載bootstrap出現(xiàn)的錯(cuò)誤原因與相應(yīng)的解決方法,需要的朋友可以參考下2017-01-01