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 相关文章推荐
使用新的消息弹出框blackbirdjs
Oct 16 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
JS实现图片点击后出现模态框效果
May 03 Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
js实现坦克移动小游戏
Oct 28 Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 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
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
js html实现计算器功能
2018/11/13 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
python计算圆周率pi的方法
2015/07/11 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
TensorFlow实现模型评估
2018/09/07 Python
python可视化text()函数使用详解
2020/02/11 Python
Python运行异常管理解决方案
2020/03/09 Python
Pycharm修改python路径过程图解
2020/05/22 Python
为什么python比较流行
2020/06/19 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
利用python实现汉诺塔游戏
2021/03/01 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
员工拓展培训方案
2014/02/15 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
详解Python函数print用法
2021/06/18 Python
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL