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 限制输入和粘贴(IE,firefox测试通过)
Nov 14 Javascript
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
jQuery中DOM操作原则实例分析
Aug 01 jQuery
vue 公共列表选择组件,引用Vant-UI的样式方式
Nov 02 Javascript
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
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模板之Phpbean的目录结构
2008/01/10 PHP
php图片验证码代码
2008/03/27 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
python中pass语句用法实例分析
2015/04/30 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
python安装Scrapy图文教程
2017/08/14 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
django中的setting最佳配置小结
2017/11/21 Python
python远程连接MySQL数据库
2019/04/19 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Django实现内容缓存实例方法
2020/06/30 Python
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
采购经理岗位职责
2014/02/16 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
小学教师个人总结
2015/02/05 职场文书