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 16 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 Javascript
jQuery过滤选择器详解
Jan 13 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 Javascript
javascript实现的图片预览功能
Mar 25 Javascript
详解微信小程序 登录获取unionid
Jun 27 Javascript
200行代码实现blockchain 区块链实例详解
Mar 14 Javascript
vue滚动固定顶部及修改样式的实例代码
May 30 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
Vue+Bootstrap实现简易学生管理系统
Feb 09 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 编写大型网站问题集
2010/05/07 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
如何在PHP中读写文件
2020/09/07 PHP
newxtree.js代码
2007/03/13 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
javascript 写类方式之十
2009/07/05 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
Javascript中replace()小结
2015/09/30 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
python实现倒计时小工具
2019/07/29 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
通过python3实现投票功能代码实例
2019/09/26 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
Python中内建模块collections如何使用
2020/05/27 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Collection和Collections的区别
2016/05/02 面试题
2015年人事专员工作总结
2015/04/29 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
车位出租协议书范本
2016/03/19 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang