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 相关文章推荐
Javascript isArray 数组类型检测函数
Oct 08 Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
Oct 28 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
详解React 服务端渲染方案完美的解决方案
Dec 14 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
jquery实现抽奖功能
Oct 22 jQuery
浅谈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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PHP 无限级分类
2017/05/04 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
作风建设演讲稿
2014/05/23 职场文书
中学生逃课检讨书
2015/02/17 职场文书
校友会致辞
2015/07/30 职场文书
MySQL创建管理KEY分区
2022/04/13 MySQL