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英文日期(有时间)选择器
May 02 Javascript
JQuery获取文本框中字符长度的代码
Sep 29 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
Jun 04 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
JavaScript实现缓动动画
Nov 25 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 编程的 5个良好习惯
2009/02/20 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
php函数式编程简单示例
2019/08/08 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
基于Python测试程序是否有错误
2020/05/16 Python
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
管理科学大学生求职信
2013/11/13 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
董事长秘书职责
2014/01/31 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
小学教师见习总结
2015/06/23 职场文书
2016银行求职自荐信
2016/01/28 职场文书
Python实现拼音转换
2021/06/07 Python
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python