用angular有一段时间了,平日里只顾着写代码,没有注意到性能优化的问题,而今有时间,于是捋了捋,讲学习过程记录于此:

问题描述:由于采用angular做了网页的单页面应用,需要一次性在主布局中将所有模块需要引用到的js都引入.对于比较小的项目,这是可行的,但是对于大的项目,一旦js文件较多,在页面首次加载时就引入所有js文件,无疑会延缓页面加载的速度,造成不良额用户体验.那么分布加载(按需加载)就显得很有必要了.
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>ui-router-lazyload</title>
<link rel="stylesheet" href="../bootstrap/dist/css/bootstrap.min.css">
<script src="../angular/angular.min.js"></script>
<script src="../angular-ui-router/release/angular-ui-router.min.js"></script>
<script src="../oclazyload/dist/ocLazyLoad.min.js"></script>
<script src="index.js"></script>
</head>
<style>
body{
font-family: "Microsoft JhengHei UI";
}
.navigator{
width: 500px;margin: 0 auto
}
.navigator li{
color: #000;font-size: 14px;
}
</style>
<body ng-controller="myController">
<ul class="navigator nav nav-pills">
<li role="presentation" class="active"><a href="#home" ng-click="isActive($event)">主页</a></li>
<li role="presentation" class="active"><a href="#child">子页面</a></li>
<li role="presentation" class="active"><a href="#third" ng-click="isActive($event)">三级页面</a></li>
</ul>
<div ui-view style="width: 500px;margin: 50px auto 0"></div>
</body>
</html>
js代码:
var myApp=angular.module("myApp",["ui.router","oc.lazyLoad"]);
myApp.config(function ($stateProvider,$urlRouterProvider) {
$urlRouterProvider.when("","/home");
$stateProvider.state('home',{
url:"/home",
templateUrl: 'homepage.html',
resolve:{
loadMyCtrl:['$ocLazyLoad',function ($ocLazyLoad) {
return $ocLazyLoad.load({
name:"homeApp",
files:["homepage.js"]
})
}]
}
});
$stateProvider.state('index',{
url:"/home",
templateUrl:'index.html'
});
$stateProvider.state('child',{
url:"/child",
templateUrl:'child.html',
resolve:{
loadMyCtrl:function ($ocLazyLoad) {
return $ocLazyLoad.load({
name:'childApp',
files:["child.js"]
})
}
}
})
$stateProvider.state('third',{
url:"/third",
templateUrl:'third.html',
resolve:{
loadMyCtrl:function ($ocLazyLoad) {
return $ocLazyLoad.load({
name:'grandApp',
files:["third.js"]
})
}
}
})
});
myApp.controller("myController",function ($state,$scope,$location) {
$scope.turnPage=function () {
// $state.go('home');
$location.path('/home')
}
});
页面初始效果如下图,打开浏览器控制台,可以看到child.js以及third.js在页面载入时并没有加载:
页面初始化:
当点击子页面和三级页面时,会依次加载所依赖的js文件.实现分步加载.
点击子页面:
三级页面:
填坑:网上关于angular按需加载的文章也蛮多的,也有人使用的是requireJS来进行这个操作,而且ocLazyLoad的使用方法也有很多.之前按照一些文档的方法,在配置路由时,加了下面的蓝色代码,页面是能跳转,但是homepage.html的js代码却执行了两次,难道是控制器加载了两次么.对于这个坑,我还在探索中,也希望大家能够发表意见或者建议.
$stateProvider.state('home',{
url:"/home",
controller:'homeController',
templateUrl: 'homepage.html',
resolve:{
loadMyCtrl:['$ocLazyLoad',function ($ocLazyLoad) {
return $ocLazyLoad.load({
name:"homeApp",
files:["homepage.js"]
})
}]
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angularjs
# ocLazyLoad
# oclazyload加载顺序
# angularjs的olazyload
# 详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
# AngularJS中的按需加载ocLazyLoad示例
# JS实现图片延迟加载并淡入淡出效果的简单方法
# Webpack 实现 AngularJS 的延迟加载
# AngularJS中的Directive实现延迟加载
# javascript实现图片延迟加载方法汇总(三种方法)
# js实现延迟加载的方法
# 关于延迟加载JavaScript
# 浅析js预加载/延迟加载
# AngularJS使用ocLazyLoad实现js延迟加载
# 加载
# 两次
# 按需
# 的是
# 这是
# 也有
# 还在
# 首次
# 很有
# 注意到
# 可以看到
# 较多
# 希望大家
# 时就
# 跳转
# 较小
# 要了
# 于此
# 大家多多
# 如下图
相关文章:
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
网页设计与网站制作内容,怎样注册网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
IOS倒计时设置UIButton标题title的抖动问题
无锡营销型网站制作公司,无锡网选车牌流程?
建站之星ASP如何实现CMS高效搭建与安全管理?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
Bpmn 2.0的XML文件怎么画流程图
制作网站外包平台,自动化接单网站有哪些?
宝塔建站无法访问?如何排查配置与端口问题?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
制作旅游网站html,怎样注册旅游网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
建站之星备案是否影响网站上线时间?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何快速搭建高效可靠的建站解决方案?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何在VPS电脑上快速搭建网站?
济南专业网站制作公司,济南信息工程学校怎么样?
模具网站制作流程,如何找模具客户?
建站之星安装模板失败:服务器环境不兼容?
如何通过主机屋免费建站教程十分钟搭建网站?
大连网站制作公司哪家好一点,大连买房网站哪个好?
建站之星微信建站一键生成小程序+多端营销系统
大同网页,大同瑞慈医院官网?
如何在七牛云存储上搭建网站并设置自定义域名?
宝塔建站助手安装配置与建站模板使用全流程解析
香港服务器部署网站为何提示未备案?
网站制作报价单模板图片,小松挖机官方网站报价?
如何获取免费开源的自助建站系统源码?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站主机选择指南:服务器配置与SEO优化实战技巧
个人网站制作流程图片大全,个人网站如何注销?
建站主机系统SEO优化与智能配置核心关键词操作指南
建站主机服务器选购指南:轻量应用与VPS配置解析
在线制作视频网站免费,都有哪些好的动漫网站?
建站之星24小时客服电话如何获取?
制作网页的网站有哪些,电脑上怎么做网页?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何构建满足综合性能需求的优质建站方案?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
淘宝制作网站有哪些,淘宝网官网主页?
济南网站制作的价格,历城一职专官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。