angularJs按需加载代码(未验证)
function($routeProvider) {
$routeProvider.
when('/:module/:view', {
templateUrl: function(params) {
var core = angular.element(document).injector().get('core');
core.openView(params.module, params.view);
return 'app/views/{0}/{1}.jsp'.format(params.module, params.view);
}
}).
otherwise({
redirectTo: '/home/landing'
});
});
'use strict';
// declare an application core module
var coreModule = angular.module('core', ['network']);
coreModule.factory('core',
function (http, $location) {
return {
openView: function (module, view) {
if (!module) {
throw new Error('Please provide module.');
}
if (!view) {
throw new Error('Please provide view.');
}
http.getController(module, view);
if($location.path() !== '/{0}/{1}'.format(module, view)) {
$location.path('/{0}/{1}'.format(module, view)).replace();
}
}
};
}
);
'use strict';
// declare a network service module
var httpModule = angular.module('network', []);
httpModule.factory('http',
function ($http, $q) {
return {
get: function (url) {
if (!url) {
throw new Error('Please provide request url.');
}
var defer = $q.defer();
$http.get(url).then(
function(response) {
defer.resolve(response.data);
},
function(error) {
defer.reject(error);
});
return defer.promise;
},
post: function (url, paramObj) {
if (!url) {
throw new Error('Please provide request url.');
}
var defer = $q.defer();
paramObj = paramObj || {};
$http.post(url, paramObj).then(
function(response) {
defer.resolve(response.data);
},
function(error) {
defer.reject(error);
});
return defer.promise;
},
getController: function (module, controller) {
if (!module) {
throw new Error('Please provide module.');
}
if (!controller) {
throw new Error('Please provide controller.');
}
var webRoot = window.location.href.substr(0, window.location.href.lastIndexOf('/home.action'));
var url = '{0}/{1}/{2}/{3}.js'.format(webRoot, 'app/controllers', module, controller);
var existed = false;
$.each($('head').find('script'), function(index, value) {
if(value.src === url) {
existed = true;
}
});
if(!existed) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.charset = 'utf-8';
document.head.appendChild(script);
}
}
};
}
);
angularJs按需加载代码(未验证)的更多相关文章
- React 按需加载 - 代码分隔
代码分隔 我们现在大多数React项目都是以Webpack 或者 Browserify等将一堆的jsx文件组织一起,并且由一个类似index.js的入口文件串联起来的单页面web页面. 例如: // ...
- angularJS 按需加载
之前做应用的时候都会在首页就把全站的js预先加载进来... 怎么实现按需加载? 首先在$routeProvider里面加resolve属性,angular-route提供的resolve功能,也就是路 ...
- .NET中的按需加载/延迟加载 Lazy<T>
业务场景: 在项目开发中,经常会遇到特定的对象使用的加载问题,有的实例对象我们创建之后并非需要使用,只是根据业务场景来调用,所以可能会导致很多无效的实例加载 延迟初始化出现于.NET 4.0,主要用于 ...
- 前端性能优化之按需加载(React-router+webpack)
一.什么是按需加载 和异步加载script的目的一样(异步加载script的方法),按需加载/代码切割也可以解决首屏加载的速度. 什么时候需要按需加载 如果是大文件,使用按需加载就十分合适.比如一个近 ...
- 深入浅出的webpack4构建工具---webpack+vue+router 按需加载页面(十五)
1. 为什么需要按需加载? 对于vue单页应用来讲,我们常见的做法把页面上所有的代码都打包到一个bundle.js文件内,但是随着项目越来越大,文件越来越多的情况下,那么bundle.js文件也会越来 ...
- AngularJs 解决浏览器在初始化代码未加载完毕时 而出现闪烁的问题
1. ng-cloak; 因浏览器会先加载dom元素 而针对于{{pression}} 由于angularjs 还没加载完,会在页面出现闪烁 2.ng-bind; 用ng-bind代替{{expres ...
- requirejs按需加载angularjs文件
之前分享了一篇用ocLazyLoad实现按需加载angular js文件的博客.本来当时想会使用一种方法就行了.可最近刚好有时间,在网上查找了一下requirejs实现angular js文件按需加载 ...
- AngularJS中的按需加载ocLazyLoad
欢迎大家讨论与指导 : ) 初学者,有不足的地方希望各位指出 一.前言 ocLoayLoad是AngularJS的模块按需加载器.一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题.但是当 ...
- AngularJS中的按需加载ocLazyLoad插件应用;
一.前言 ocLoayLoad是AngularJS的模块按需加载器.一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题.但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越 ...
随机推荐
- PAT天梯:L1-019. 谁先倒
L1-019. 谁先倒 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳 ...
- 配置搭建与使用redis
redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 redis是如今被互联网公司使用最广泛的一个中间件,我们打开GitHub搜索redis,边 ...
- 2018-2019-2 20165212 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165212 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- MySQL--禁用账号和设置账号有效期
======================================================================= MySQL5.5/5.6版本 在MySQL 5.7 版本 ...
- openresty 使用cuid 类库生成短链接id
cuid 是一个不错的id 生成算发,类似的有shortid .hashid 演示使用lua 包集成openresty 做测试 使用docker-compose 运行 dockerfile FROM ...
- nodejs 使用express开发获取其他网站引用本站点js文件的参数
nodejs进行站点的开发其性能是很好的,在js 大行其道的天下,使用js基本上可以干好多只要我们能想到的东西,我们可以使用js文件进行用户验证等等. 这次我们就使用express 进行获取其他站点引 ...
- android 学习过程中登陆失效的个人理解
今天在学习的过程中,要做登陆失效的功能,所以就找了些资料.好好看了一下.研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号,在另外的一个手机端也登陆了账号,此时.前一个手机端的账号会提示登陆 ...
- [unity3d]角色控制器组件相互间不碰撞
RPG游戏会有这种需求. 队友之间,玩家之间.玩家与怪物之间,都有可能须要不能碰撞.怎样实现?这个问题困恼了一段时间,昨天在网上看到解答的方法: 这里举例玩家和怪物之间: 1,填加2个不同的层级mon ...
- IE版本检测
<html><body><script type="text/javascript">var browser=navigator.appName ...
- keepalived的配置详解(非常详细)
keepalived的配置详解(非常详细) 2017-01-22 15:24 2997人阅读 评论(0) 收藏 举报 分类: 运维学习(25) 转载自:http://blog.csdn.net ...