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 实现依赖注入的思想,后端框架思想搬到前端来
Aug 03 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
javaScript 逻辑运算符使用技巧整理
May 03 Javascript
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
工作中常用js功能汇总
Nov 07 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
SONY ICF-F10中波修复记
2021/03/02 无线电
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
如何在php中正确的使用json
2013/08/06 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python实现排序算法
2014/02/14 Python
Python素数检测实例分析
2015/06/15 Python
python实现中文转换url编码的方法
2016/06/14 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
为什么会有内存对齐
2016/10/10 面试题
建筑院校毕业生求职信
2014/06/13 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
作风建设整改方案
2014/10/27 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书