项目总结二:模块管理之requireJS

项目开发前期,对究竟用requireJS 还是sea.js 进行讨论,最后采用requireJS,但是后期遇到了问题——当谷歌地图不能加载时,整个页面卡死的状况。

requirejs 的作用:

  1. 防止js加载阻塞页面渲染
  2. 模块化加载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

  

 
时间: 2024-10-18 07:45:24

项目总结二:模块管理之requireJS的相关文章

OA项目之论坛模块管理

1.做下论坛的笔记 2.效果如下: 3.我们从最简单的开始做,也就是模块管理,他跟Role管理相似,只是多了上移和下移的功能 4.首先分析多少个请求,前面写过CRUD一共6个请求,所以需要6个方法,再加上上移下移所以ForumAction应该有8个方法 5.设计实体Forum先不考虑和其他表的关联,他自身的属性,代码如下:(此处给出整个论坛设计的UML图) Forum(上移和下移功能,设计思想是这样的,创建一个int的用于交换位置的position,上移下移其实就是将数据库表的一行记录交换下位置

代码发布项目(二)——django实现websocket(使用channels)、基于channels实现群聊功能、gojs插件、paramiko模块

一.django实现websocket django默认是不支持websocket,只支持http协议 在django中如果想要基于websocket开发项目 你需要安装模块:channles pip3 install channels==2.3 版本不要使用最新的,如果安装最新的可能会自动把你的django版本升级到最新版 对应的解释器环境建议使用3.6(官网的说法:3.5可能有问题,3.7可能也有问题...具体原因没有给解释) channels模块内部已经帮我们封装好了 握手/加密/解密 面

Node.js(二)——模块与包管理工具

http,process等等这些都是模块 一.Node.js的模块与Commonjs规范 1.js的天生缺陷--缺少模块化管理机制 ·表现--JS中容易出现变量被覆盖,方法被替代的情况(既被污染).特别是存在依赖关系时,容易出现错误.这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染. ·解决--经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行.jQuery中有许多变量和方法,但是无法直接访问,必须通过j

模块管理常规功能自定义系统的设计与实现(22--第二个模块的加入)

模块"市"的设计与加入 现在重复加入"省"模块的过程,来加入市的模块. 1.建立数据表City CREATE TABLE [dbo].[City]( [tf_cityId] [nvarchar](4) COLLATE Chinese_PRC_CI_AS NOT NULL, [tf_provinceId] [nvarchar](2) COLLATE Chinese_PRC_CI_AS NOT NULL, [tf_name] [nvarchar](50) COLLATE

模块管理常规功能自定义系统的设计与实现(21--第二阶段设计目标)

第二阶段设计目标 前面的章节讲了建立单个模块的各种功能,从现在开始要加入若干个具有关联的模块,使其协同工作.我设计了一个简易的销售管理系统,系统的结构如下图所示,从本节开始将逐步的搭建此系统. 在上图中,各模块之间都能通过一定的路径产生联系,而具有关联的二个模块具有直接的关系,例如省是市的父模块,市是省的子模块:客户单位是市的子模块也是省的子模块.这种上下级关系将会是处理的重点.各模块间的关系要明确,不能出现关系不明确或者循环引用的模块,那样权限的设置将会有问题. 例如有如下模块结构: 在上图中

使用OSChina代码托管管理项目(二)

(接上篇) 在上篇文章中已经对在OSChina上如何创建托管项目进行了说明,本篇文章将重点介绍如何在eclipse中使用egit插件进行代码的托管. 首先要确认eclipse中已经安装了EGit,插件安装方法请自行百度. 安装好插件后,需要先配置一下git,preference>Team>Git >Configuration >User Settings,点击Add Entry按钮 设置git用户信息,即在OSChina上创建的用户 再添加一个邮箱信息 这里添加的两个信息是用于识别

模块管理常规功能自定义系统的设计与实现(30--第二阶段总结)

第二阶段总结 经过了前二个阶段近30节介绍,一个完全基于前台配置的销售管理系统即架构成功,并可以使用.当然实际的需求还是千变万化,五花八门,但只要是符合关系数据库原理,只要是以记录作为管理的主体,那就只是一个字段和表扩充的过程了.在搭建系统整个过程中模块采用了自顶向下生成的方式.对于层次多,关系复杂的系统也是一样的,设计合理,逻辑清楚,模块只要一个个搭就行了.开发好以后,整个系统的开发文档其实也在里面了,所有模块的属性,字段的属性,各模块之间的关系,都可以在这个系统里看得见了. 至于开发速度也是

前端模块管理器简介

模块化结构已经成为网站开发的主流. 制作网站的主要工作,不再是自己编写各种功能,而是如何将各种不同的模块组合在一起. 浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签.这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验. 为了解决这个问题,前端的模块管理器(package management)应运而生.它可以轻松管理各种JavaScript脚本的依赖关系,自动加载各个模块,使得网页结构清晰合理.不夸张地说,将

nodejs-npm模块管理器

JavaScript 标准参考教程(alpha) 草稿二:Node.js npm模块管理器 GitHub TOP npm模块管理器 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 简介 npm init npm set npm config npm info npm search npm list npm install 基本用法 安装不同版本 避免系统权限 npm update,npm uninstall npm run 参数 scripts脚本命令最佳实践 p