Angular + ocLazyLoad动态化加载脚本

 2015-12-26 18:25:29    AngularJs

在实际的开发中,由于功能众多产生的脚本文件也随之增多.这时候,我们要实现动态加载脚本来提升网页的响应速度,并且还要实现脚本缓存.现在市面上的加载器很多, 比如现在的require,但是相对来说require还是“弱”了一点,对angular来讲不是太完美,况且Angular本身就是模块化的东西,并不能完美的贴合. 所以,一个为angular量身定制的脚本加载器就出现了,小巧玲珑的它只有15KB15KB, 它就是ocLazyLoad

所有的文档在这里:猛戳这里

关于ocLazyLoad的文档很简单,大家看看就明白了。前提是你得先了解angular。

使用的方式大致三种:服务结合路由,指令,注入。下面的代码块一一对应

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$stateProvider.state('index', {  
    url: "/"// root route
      views: {
          "lazyLoadView": { 
               controller: 'AppCtrl'// This view will use AppCtrl loaded below in the resolve
               templateUrl: 'partials/main.html'
            }
      },  
      resolve: { // Any property in resolve should return a promise and is executed before the view is loaded
        loadMyCtrl: ['$ocLazyLoad'function($ocLazyLoad) {      // you can lazy load files for an existing module
             return $ocLazyLoad.load('js/AppCtrl.js');
        }]
  }
});
1
2
3
<div oc-lazy-load="['js/testModule.js', 'partials/lazyLoadTemplate.html']">
  <!-- Use a directive from TestModule -->
  <test-directive></test-directive></div>
1
2
3
4
5
angular.module('MyModule', ['pascalprecht.translate', [ 
 '/components/TestModule/TestModule.js',  
 '/components/bootstrap/css/bootstrap.css',  
 '/components/bootstrap/js/bootstrap.js']
 ]);

在实际项目中最理想的方式就是结合路由来动态加载脚本,之前加载成功的脚本会在浏览器做缓存。

这里有一个完整的实例项目(戳这里)。

posted @   小小强学习网  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示