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實(shí)現(xiàn)搜索框及價(jià)格上下限功能
這篇文章主要為大家詳細(xì)介紹了Angular實(shí)現(xiàn)搜索框及價(jià)格上下限功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
angularjs學(xué)習(xí)筆記之簡(jiǎn)單介紹
這篇文章主要介紹了angularjs學(xué)習(xí)筆記之簡(jiǎn)單介紹的相關(guān)資料,需要的朋友可以參考下2015-09-09
angularjs ocLazyLoad分步加載js文件實(shí)例
本篇文章主要介紹了angularjs ocLazyLoad分步加載js文件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Angular應(yīng)用tsconfig.json中的lib屬性示例解析
這篇文章主要介紹了Angular應(yīng)用tsconfig.json中的lib屬性示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
angularJS與bootstrap結(jié)合實(shí)現(xiàn)動(dòng)態(tài)加載彈出提示內(nèi)容
這篇文章主要介紹了angularJS與bootstrap結(jié)合實(shí)現(xiàn)動(dòng)態(tài)加載彈出提示內(nèi)容,通過(guò)bootstrp彈出提示。感興趣的朋友可以參考下本篇文章2015-10-10
angularjs學(xué)習(xí)筆記之雙向數(shù)據(jù)綁定
AngularJS在$scope變量中使用臟值檢查來(lái)實(shí)現(xiàn)了數(shù)據(jù)雙向綁定。和Ember.js數(shù)據(jù)雙向綁定中動(dòng)態(tài)設(shè)施setter和getter不同,臟治檢查允許AngularJS監(jiān)視那些存在或者不存在的變量。2015-09-09
AngularJS控制器之間的數(shù)據(jù)共享及通信詳解
本文詳細(xì)介紹了AngularJS控制器之間的數(shù)據(jù)共享與通信,對(duì)angularjs共享數(shù)據(jù)及通信相關(guān)知識(shí)感興趣的朋友可以一起學(xué)習(xí)。2016-08-08

