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 相关文章推荐
Javascript call和apply区别及使用方法
Nov 14 Javascript
javascript格式化日期时间方法汇总
Jun 19 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
详解Javascript数据类型的转换规则
Dec 12 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
Dec 31 Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
Javascript 模拟mvc实现点餐程序案例详解
Dec 24 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
关于jquery css的使用介绍
2013/04/18 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python守护进程用法实例分析
2015/06/04 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
《再见了,亲人》教学反思
2014/02/26 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
演讲稿格式范文
2014/05/19 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
消防安全主题班会
2015/08/12 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
高三英语教学反思
2016/03/03 职场文书
java中如何截取字符串最后一位
2022/07/07 Java/Android