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 相关文章推荐
js的toUpperCase方法用法实例
Jan 27 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
基于angular实现模拟微信小程序swiper组件
Jun 11 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
vue 权限认证token的实现方法
Jul 17 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 Javascript
浅谈Node框架接入ELK实践总结
Feb 22 Javascript
微信小程序实现下拉刷新动画
Jun 21 Javascript
vue v-for 使用问题整理小结
Aug 04 Javascript
微信小程序使用车牌号输入法的示例代码
Aug 20 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
vue 实现图片懒加载功能
Dec 31 Vue.js
浅谈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获取某个目录大小的代码
2008/09/10 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Django学习之文件上传与下载
2019/10/06 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
会计电算化学生个人的自我评价
2014/02/08 职场文书
优秀员工获奖感言
2014/03/01 职场文书
初中班主任评语
2014/04/24 职场文书
个人欠条范本
2015/07/03 职场文书
同乡会致辞
2015/07/30 职场文书
详解Python中*args和**kwargs的使用
2022/04/07 Python
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技