AngularJS使用ocLazyLoad实现js延迟加载


Posted in Javascript onJuly 05, 2017

最近开发一个系统遇到了一个问题,用angular路由一个html片段,该片段需要使用一个js插件来实现一个富文本编辑器。关键问题在于必须要在片段加载后通过js与dom元素进行绑定。一开始想当然以为直接把js代码写在代码段里不久ok了,然而经过实验,路由将html片段插入页面时只能读取css,无法解析并执行js代码。

google了半天发现了很多angular+requireJs的解决方案,但我觉得对于我这个场景并不适合,因为requirejs本质是一个模块加载器,按需加载只是他的副业,我们用它应该主要是用它来做模块化的,如果我们单纯为了按需加载却要试用模块化语法包装我们的代码(define),感觉有点像用大炮打蚊子,对于我这种需求来说代价巨大。

最后决定使用ocLazyLoad来处理,因为此方案优点是,简单易行无侵入。同时这个方案有些缺点,比如每次动态加载需要的脚本、模版资源会有很多不必要的网络开销,路由定义比较复杂(多了一些配置项,其实不能算复杂,而是繁琐),对于大型复杂业务应用,路由众多,耗费的精力不可忽视。但是用在我这个场景之中正合适。于是便在github上fork下js,引入到项目中。

<script src="js/ocLazyLoad.js"></script>

在需要用到的angular模块里进行配置

var app = angular.module('formCtrlParts', ['oc.lazyLoad']);

再向路由需要用到的控制器里面使用此服务进行js文件的按需加载

app.controller('addNewBlogCtrl',function($scope,$http,$ocLazyLoad){
  $ocLazyLoad.load('../html/ckeditorjs/ckeditor.js');
})

这样基本就大功告成,ocLazyLoad有很多种加载方式,也可以配合路由,指令进行加载。

以上所述是小编给大家介绍的AngularJS使用ocLazyLoad实现js延迟加载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
几款极品的javascript压缩混淆工具
May 16 Javascript
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 Javascript
javascript if条件判断方法小结
May 17 Javascript
浅谈js的setInterval事件
Dec 05 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 Javascript
jQuery操作css样式
May 15 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
CKEditor4配置与开发详细中文说明文档
Oct 08 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 Javascript
vue一步步实现alert功能
Jul 05 #Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 #Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 #Javascript
webpack教程之webpack.config.js配置文件
Jul 05 #Javascript
webstorm添加vue.js支持的方法教程
Jul 05 #Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 #Javascript
vue router2.0二级路由的简单使用
Jul 05 #Javascript
You might like
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
在PHP中使用redis
2013/11/04 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
列表内容的选择
2006/06/30 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python实现逻辑回归的方法示例
2017/05/02 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
Python探索之创建二叉树
2017/10/25 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
python实现两个文件合并功能
2018/04/01 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python实现对变位词的判断方法
2020/04/05 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
机电工程专业应届生求职信
2013/10/03 职场文书
毕业生实习鉴定
2013/12/11 职场文书
环境工程专业自荐信
2014/03/03 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
出差报告范文
2014/11/06 职场文书
新员工试用期自我评价
2015/03/10 职场文书
老员工辞职信范文
2015/05/12 职场文书