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 相关文章推荐
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
一些实用性较高的js方法
Apr 19 Javascript
如何解决hover在ie6中的兼容性问题
Dec 15 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
three.js着色器材质的内置变量示例详解
Aug 16 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使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
python opencv3实现人脸识别(windows)
2018/05/25 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
迟到检讨书400字
2014/01/13 职场文书
重阳节登山活动方案
2014/02/03 职场文书
工程质量承诺书范文
2014/03/27 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android