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 相关文章推荐
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
JS限制Textarea文本域字符个数的具体实现
Aug 02 Javascript
关于JS中的闭包浅谈
Aug 23 Javascript
基于iframe实现类似于ajax的页面无刷新
May 31 Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 Javascript
jquery代码实现简单的随机图片瀑布流效果
Apr 20 Javascript
值得分享的bootstrap table实例
Sep 22 Javascript
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 Javascript
详解React 服务端渲染方案完美的解决方案
Dec 14 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
jquery实现吸顶导航效果
Jan 08 jQuery
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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
python分析网页上所有超链接的方法
2015/05/08 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python 通配符删除文件的实例
2018/04/24 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2014年人事科工作总结
2014/11/19 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers