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 相关文章推荐
js 数组克隆方法 小结
Mar 20 Javascript
javascript中自定义对象的属性方法分享
Jul 12 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
学习javascript面向对象 理解javascript原型和原型链
Jan 04 Javascript
盘点javascript 正则表达式中 中括号的【坑】
Mar 16 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
js+html5生成自动排列对话框实例
Oct 09 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
JS实现div居中示例
2014/04/17 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
jQuery事件用法详解
2016/10/06 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
如何测量vue应用运行时的性能
2019/06/21 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
幼儿教师国培感言
2014/02/19 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
财务检查整改报告
2014/11/06 职场文书
赞助商致辞
2015/07/30 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
React配置子路由的实现
2021/06/03 Javascript
 python中的元类metaclass详情
2022/05/30 Python