Angular-Ui-Router+ocLazyLoad动态加载脚本示例


Posted in Javascript onMarch 02, 2017

在使用angular过程以前同事是采取一次性加载方式,在index页面一次性加载所有的js跟css,这种加载方式只适合教学和小型项目中,中大型不建议使用,加载速度影响到用户体验。

在使用了Ui-Router以后,我第一想法就是把每个功能组件化,在请求视图的时候再去加载该页面js和css,index页面主要加载必须文件:angular.js

于是尝试了下,这样去写,但是发现angular报错,原因是控制器没有注入主程序

后面在angular库里面发现ocLazyLoad,这是一个为angular量身定制脚本加载器,它只有15K

使用它很简单:

依次载入文件

<script src="framework/angular/angular.min.js"></script> 
<script src="framework/angular-ui-router.js"></script> 
<script src="framework/ocLazyLoad.min.js"></script> 
<script src="framework/app.js"></script>

跟平常写路由一样只是需要多一层resolve

路由在渲染之前会执行resolve对象比如用来加载js和css,当然还有其他用处

代码:(不用担心脚本重复加载,之前加载的脚本会在浏览器做缓存)

angular.module('myRouters', ['ui.router','oc.lazyLoad'])
.state('index', { 
  url: '/index', 
  title: ' | !', 
  views: { 
    'A': { 
      templateUrl: 'components/header/header.html', 
      controller: 'headerCtrl' 
    }, 
    'C@index': { 
      templateUrl: 'components/header/h1.html', 
      controller: 'H2Ctrl' 
    } 
  }, 
  resolve: { 
    loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) { 
      return $ocLazyLoad.load(['components/header/H2.js', 
        'components/header/header.js', 
        'components/header/h3.js', 
        'components/header/header1.css']); 
    }] 
  } 
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery简单实现网页选项卡特效
Nov 24 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
关于 jQuery Easyui异步加载tree的问题解析
Dec 06 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
JavaScript实现的开关灯泡点击切换特效示例
Jul 08 Javascript
vue实现输入一位数字转汉字功能
Dec 13 Javascript
小程序实现图片移动缩放效果
May 26 Javascript
浅谈Vue.js
Mar 02 #Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 #Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 #Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 #Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 #Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 #Javascript
jquery仿京东侧边栏导航效果
Mar 02 #Javascript
You might like
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP children()函数讲解
2019/02/03 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
javascript调试说明
2010/06/07 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python 多线程的实例详解
2017/09/07 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python pandas库中的isnull()详解
2019/12/26 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
暑期社会实践方案
2014/02/05 职场文书
给校长的建议书300字
2014/05/16 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js