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修改css样式style
Apr 15 Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
js call方法详细介绍(js 的继承)
Nov 18 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
Jun 04 Javascript
纯前端JavaScript实现Excel IO案例分享
Aug 26 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
Apr 19 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
浅析Visual Studio Code断点调试Vue
Feb 27 Javascript
vue 录制视频并压缩视频文件的方法
Jul 27 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
基于原生JS封装的Modal对话框插件的示例代码
Sep 09 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+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
鼠标图片振动代码
2006/07/06 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
python实现简单ftp客户端的方法
2015/06/28 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
python datetime中strptime用法详解
2019/08/29 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python 模块导入问题汇总
2021/02/01 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
单位未婚证明范本
2014/01/18 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
学校节能减排方案
2014/06/13 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
2015年计划生育责任书
2015/05/08 职场文书
无房证明样本
2015/06/17 职场文书
django 认证类配置实现
2021/11/11 Python
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers