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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
JS实现标签页效果(配合css)
Apr 03 Javascript
js字符串转成JSON
Nov 07 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
Mar 22 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
jquery对复选框(checkbox)的操作汇总
Jan 13 Javascript
Node.js中的cluster模块深入解读
Jun 11 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
Array.filter中如何正确使用Async
Nov 04 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
php分页函数
2006/07/08 PHP
建立文件交换功能的脚本(一)
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python实现汉诺塔方法汇总
2016/07/25 Python
python 实现登录网页的操作方法
2018/05/11 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Jupyter加载文件的实现方法
2020/04/14 Python
通过代码实例了解Python sys模块
2020/09/14 Python
Python常用外部指令执行代码实例
2020/11/05 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
做一个有道德的人演讲稿
2014/05/14 职场文书
小学教师培训方案
2014/06/09 职场文书
食品安全主题班会
2015/08/13 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python