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学习笔记(十)
Jan 17 Javascript
JavaScript 变量作用域分析
Jul 04 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
javascript计时器详解
Feb 28 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
如何利用模板将HTML从JavaScript中抽离
Oct 08 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
Dec 25 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
Oct 10 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多态的实现详解
2013/06/09 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python单例模式的两种实现方法
2017/08/14 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
工作证明英文模板
2014/10/21 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
工作经历证明书范文
2014/11/02 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers