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 相关文章推荐
24款非常有用的 jQuery 插件分享
Apr 06 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
详解node.js 下载图片的 2 种方式
Mar 02 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
js实现带箭头的进度流程
Mar 26 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
AJAX的使用方法详解
2017/04/29 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
javascript cookies操作集合
2010/04/12 Javascript
JS的replace方法介绍
2012/10/20 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python中关键字is与==的区别简述
2014/07/31 Python
python协程用法实例分析
2015/06/04 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python numpy实现rolling滚动案例
2020/06/08 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
static函数与普通函数有什么区别
2015/12/25 面试题
十八大感想感言
2014/02/10 职场文书
商务助理求职信范文
2014/04/20 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2015教师节通讯稿
2015/07/20 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python