项目总结二:模块管理之requireJS
项目开发前期,对究竟用requireJS 还是sea.js 进行讨论,最后采用requireJS,但是后期遇到了问题——当谷歌地图不能加载时,整个页面卡死的状况。
requirejs 的作用:
- 防止js加载阻塞页面渲染
- 模块化加载js
①首先创建一个main.js,通过paths的配置会使我们的模块名字更精炼,paths还有一个重要的功能,就是可以配置多个路径,如果远程cdn库没有加载成功,可以加载本地的库:
requirejs.config({
baseUrl : '',
paths : {
"jquery" : "../webres/scripts/jquery.1.11.3.min",
"jqueryui":"../webres/jqueryUI/jqueryui-1.10.4",
"bootstrap" : "../webres/bootstrap/js/bootstrap.min",
"bootstrapTable" : "../webres/bootstrap-table/bootstrap-table.min"
},
shim : {
drag : {
deps : [ 'jquery' ]
},
bootstrap : {
deps : [ 'jquery' ]
},
bootstrapTable : {
deps : [ 'jquery', "bootstrap" ]
}
}
});
②最好是在公共页面中引用:
<script data-main="js/main" src="js/require.min.js"></script>
baseUrl:根路径
data-main属性,使指定的js在加载完reuqire.js后,把require.config的配置加到页面中 ,然后页面中就可以直接使用require来加载所有的短模块名
data-main还有一个重要的功能,当script标签指定data-main属性时,require会默认的将data-main指定的js为根路径,如上面的data-main="js/main"设定后,我们在使用require(['jquery'])后(不配置jquery的paths),require会自动加载js/jquery.js这个文件,而不是jquery.js,相当于默认配置了baseUrl:js
shim:指定了模块名称和它的依赖数组,上面我们的drag插件依赖于jquery框架。通过这种方式,就可以使用requireJS完成jquery和其插件的加载。
③define函数定义了一个模块
define(function(require, exports, module) {
var ajaxFun = require('ajaxFun');
function mainfunc() {
}
module.exports = mainfunc;
});
还有一种写法:
define(function(require, exports, module) {
function onload() {
}
function groupOnChange(){
}
exports.onload = onload;
exports.groupOnChange = groupOnChange;
});
具体区别详见:
http://www.cnblogs.com/pigtail/archive/2013/01/14/2859555.html
项目总结二:模块管理之requireJS的更多相关文章
- 使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
使用Jquery+EasyUI 进行框架项目开发案例解说之二 用户管理源代码分享 在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享> ...
- GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- java使用maven项目(二)分模块开发
1 整合ssh框架 1.1 依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递 1.2 依赖版本冲突的解决 1. 第 ...
- JS模块规范 前端模块管理器
一:JS模块规范(为了将js文件像java类一样被import和使用而定义为模块, 组织js文件,实现良好的文件层次结构.调用结构) A:CommonJS就是为JS的表现来制定规范,因为js没有模块的 ...
- Webpack: 为Web开发而生的模块管理器[转]
Webpack: 为Web开发而生的模块管理器 原文地址:http://hanjianwei.com/2014/09/10/webpack-package-manager-for-web/ 10 Se ...
- 【NFS项目实战二】NFS共享数据的时时同步推送备份
[NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...
- Node.js的安装以及Node.js的模块管理
索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...
- 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发
每天记录一点:NetCore获得配置文件 appsettings.json 用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...
- 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包
一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...
随机推荐
- 《JAVA程序设计》第13周学习总结
1. 本章学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. GET / HTTP/1.0可以返回一个HTML格式的文本页 IP地址可以用来标识网络上的主机 Socke ...
- 201521123059 《Java程序设计》第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- 201521123110 java课程设计
一.需求分析 功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语.保留用户测试成绩,做出成绩排行榜.排行榜存放到文件中. 二.本组课题及本人任务 • ...
- 201521123018 《Java程序设计》第12周学习总结
1. 本章学习总结 你对于本章知识的学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.da ...
- MyBatis框架(一)
MyBatis介绍: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- 02函数-04-箭头函数(ES6)
ES6新增的函数:Arrow Function,定义方式就是一个箭头 箭头函数相当于匿名函数,并且简化了函数定义,和匿名函数最大的区别在于其内部的this不再"乱跑",而是由上下文 ...
- Eclipse 版本选择
查看Eclipse的版本号: 1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字 ...
- Maven仓库搜索jar包依赖网址
可在该网站搜索jar包依赖 http://search.maven.org/
- JS 数据处理技巧及小算法汇总( 一)
前言: 金秋九月的最后一天,突然发现这个月博客啥也没更新,不写点什么总觉得这个月没啥长进,逆水行舟,不进则退,前进的路上贵在坚持,说好的每个月至少一到两篇,不能半途而废!好多知识写下来也能加深一下自身 ...
- Hive 存储类型 StoreType
file_format: : SEQUENCEFILE | TEXTFILE -- (Default, depending on hive.default.fileformat configurati ...