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的模块按需加载器.一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题.但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越 ...
随机推荐
- Microsoft - Find Biggest Node
public Node findBiggest (Node n1, Node n2){ Node c1 = n1; Node c2 = n2; boolean isPositive = false; ...
- LG3372 【【模板】线段树 1】
介绍我的三种算法 1.线段树 既然这题是线段树板子,我还是尊重一下先发这个.跑的时间376ms不是很快,但也还是不错.O(nlogn). #include<iostream> #inclu ...
- CGI之C语言篇
为什么要进行CGI编程? 在HTML中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理,或者是把它们 ...
- java 多线程之:synchronized
synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在. 当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,syn ...
- folder,source folder,package 区别
source folder source folder下面的Java文件都会被编译,编译后的文件会被放在我们设置的某个文件夹下面(一般我们设置成WEB-INF/classes),source fold ...
- Nginx 下部署 HTTPS 与安全调优
什么是 HTTPS?# HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...
- java 线程转换图
- IE8下部分方法失效的解决方法
1.IE8下String的Trim()方法失效的解决方法 用jquery的trim()方法,$.trim(str)就可以了: 例:_id.trim() !='' 改为 $.trim(_id) != ...
- Mybatis连接Oracle实现增删改查实践
1. 首先要在项目中增加Mybatis和Oracle的Jar文件 这里我使用的版本为ojdbc7 Mybatis版本为:3.2.4 2. 在Oracle中创建User表 create table T_ ...
- 在doc下面执行zpl语言 Copy 文件名 lpt1
在doc下面执行zpl语言 Copy 文件名 lpt1 测试斑马条码打印机并口是否能正常通讯: 1.Zebra打印机安装好标签和碳带,且打印机进入Ready状态.2.电脑端用Notepad编写输入如下 ...