发表于: 2016-12-21 01:31:23
1 1616
今天完成的事情:
文件加载问题,在大型项目中一次性加载全部文件,过多的请求拖慢速度,影响体验,按需加载可以解决这个问题;
查找文件按需加载相关资料
阅读ocLazyLoad文档了解其用法:
添加依赖
var myApp = angular.module("MyApp", ["oc.lazyLoad"]);
控制器按需加载:
myApp.controller("MyCtrl", function($ocLazyLoad) { $ocLazyLoad.load('testModule.js'); });
配置:
angular.module('app', ['oc.lazyLoad']).config(['$ocLazyLoadProvider',function($ocLazyLoadProvider{ $ocLazyLoadProvider.config({ // ... }); }]);
可选选项:
debug:值为true会将错误打印出来
events:$ocLazyLoad加载文件时广播事件,默认为false
modules:预定义模块配置
$ocLazyLoadProvider.config({ modules: [{ name: 'TestModule', files: ['js/TestModule.js'] }] });
$ocLazyLoad.load('TestModule'); // will load the predefined configuration
可加载多个文件,可指定类型(js!开头文件不可指定扩展名),可加载非angular外部库
$ocLazyLoad.load([ 'testModule.js', {type: 'css', path: 'testModuleCtrl'}, {type: 'html', path: 'testModuleCtrl.html'}, {type: 'js', path: 'testModuleCtrl'}, 'js!testModuleService', 'less!testModuleLessFile']);
$ocLazyLoad服务可选参数:
cache:false:使用它,加载器会在路径的后面追加一个时间戳以便绕过浏览器的缓存.
reconfig:false:重新加载模块,旧配置不会重新调用(充分调用可能出问题),true可强制重新执行
serie:默认同时加载文件,true则顺序加载;
指令:
延时渲染,需要加载的文件加载完成才会编译指令的内容;
<div oc-lazy-load="['js/testModule.js', 'partials/lazyLoadTemplate.html']">
<!-- Use a directive from TestModule -->
<test-directive></test-directive></div>
可用变量存储参数:
$scope.lazyLoadParams = [ 'js/testModule.js', 'partials/lazyLoadTemplate.html'];
div oc-lazy-load="lazyLoadParams"></div>
可在依赖注入时加载
angular.module('MyModule', ['pascalprecht.translate', [ '/components/TestModule/TestModule.js', '/components/bootstrap/css/bootstrap.css', '/components/bootstrap/js/bootstrap.js']]);
https://oclazyload.readme.io/docs/getting-started官方文档
解决昨天无缝轮播的问题:
4张图设置最后一张图与首图一样,在轮播到最后一张图时,用第一张图覆盖
明天计划的事情:
task9/10知识储备
遇到的问题:
收获:
如上
评论