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的树控件实现代码(asp.net+json)
Jul 11 Javascript
JavaScript flash复制库类 Zero Clipboard
Jan 17 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
JS验证身份证有效性示例
Oct 11 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
jQuery的文档处理程序详解
May 10 Javascript
微信小程序 SocketIO 实例讲解
Oct 13 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 Javascript
vue router的基本使用和配置教程
Nov 05 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
js Math数学简单使用操作示例
Mar 13 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实现的zip文件内容比较类
2014/09/24 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
vue组件与复用详解
2018/04/08 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python 3.x 新特性及10大变化
2015/06/12 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
心理健康活动总结
2014/04/30 职场文书
文秘应届生求职信
2014/07/05 职场文书
岗位说明书标准范本
2014/07/30 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
施工现场安全管理制度
2015/08/05 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
MySQL 开窗函数
2022/02/15 MySQL