js模块化开发——require.js的实战写法1
关于在Require.js使用一个JS插件的问题
我需要在项目中引用一个js控件,这个控件依赖于a.js,b.js,c.js,.....n.js N多个js以及jquery及jquery-ui,各js之间相互还有依赖关系,也就是说必须先加载某一部分才能加载另一部分,最终才能加载整个控件。我 想使用require.js来引用他,以避免在head部分书写过多的script标签,但是require.js是异步的,各js会在同一时间加载导致 浏览器报错,我应该如何处理这个问题?如下是我的配置代码,欢迎大家指正。
require.config({ baseUrl:"../../js/jsPlumb/", paths:{ "jquery":"http://cdn.bootcss.com/jquery/1.9.1/jquery.min", "jquery-ui":"http://cdn.bootcss.com/jqueryui/1.10.2/jquery-ui.min", "jsBezier":"lib/jsBezier-0.6-min", "mottle":"lib/mottle-0.3", "biltong":"lib/biltong-0.2", "katavorio":"lib/katavorio-0.2", "util":"src/util", "dom-adapter":"src/dom-adapter", "jsPlumb":"src/jsPlumb", "endpoint":"src/endpoint", "connection":"src/connection", "anchors":"src/anchors", "defaults":"src/defaults", "connectors-bezier":"src/connectors-bezier", "connectors-statemachine":"src/connectors-statemachine", "connectors-flowchart":"src/connectors-flowchart", "renderers-svg":"src/renderers-svg", "renderers-vml":"src/renderers-vml", "connector-editors":"src/connector-editors", "domPlumb":"src/dom.jsPlumb" }, shim:{ "jquery-ui":{ deps:['jquery'], exports:"jquery-ui" }, "jsPlumb":{ deps:[ "jquery", "jquery-ui", "jsBezier", "mottle", "biltong", "katavorio", "util", "dom-adapter", "endpoint", "connection", "anchors", "defaults", "connectors-bezier", "connectors-statemachine", "connectors-flowchart", "renderers-svg", "renderers-vml", "connector-editors", "domPlumb" ], exports:"jsPlumb" } }}); require(["jquery","jquery-ui","jsPlumb"],function($,ui){ var GHandler = jsPlumb.getInstance(); GHandler.draggable($("#btn"));})js模块化开发——require.js的实战写法1的更多相关文章
- JS模块化开发----require.js
前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前 ...
- js模块化开发——require.js的用法详细介绍(含jsonp)
RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签脚本加载步骤.可以用它回事.优化代码,但其主要的目的还是为了代码的模块化.它鼓励在使用脚本以moudle ...
- js模块化开发——require.js的用法
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...
- js模块化开发——require.js学习总结
1.为什么使用require.js 作为命名空间: 作为命名空间使用: 异步加载js,避免阻塞,提高性能: js通过require加载,不必写很多script 2.require.js的加载 requ ...
- JS模块化工具require.js教程(一):初识require.js
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
- JS模块化工具require.js教程(二):基本知识
前一篇:JS模块化工具我们以非常简单的方式引入了requirejs,这一篇将讲述一下requirejs中的一些基本知识,包括API使用方式等 基本API require会定义三个变量:define,r ...
- JS模块化开发:使用SeaJs高效构建页面
一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...
- Js模块化开发的理解
Js模块化开发的理解 模块化是一个语言发展的必经之路,其能够帮助开发者拆分和组织代码,随着前端技术的发展,前端编写的代码量也越来越大,就需要对代码有很好的管理,而模块化能够帮助开发者解决命名冲突.管理 ...
- JS模块化开发(三)——seaJs+grunt
1.seaJs直接构建存在的问题 由于模块之间的依赖require引用的是模块名,当多个js模块被合并成一个时,会由于找不到模块名而报错 2.seaJs+grunt开发 用到的插件:grunt-cmd ...
随机推荐
- 用FusionChartsFree做饼状图、柱状图、折线图的实例
1.先来看看要进行表现的页面:myChart.jsp <%@ page language="java" contentType="text/html; charse ...
- mysql查询数据库约束
SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where TABLE_SCHEMA='mold' and TABLE_NAME='tplmi ...
- 'xcopy' 'ipconfig'。。。 不是内部或外部命令,也不是可运行的程序 或批处理文件
最近在win8下安装软件的时候,总是报 "xxx不是内部或外部命令,也不是可运行的程序 或批处理文件" 的错误 . 百思不得其解 打开cmd 或 powerShell 输入xco ...
- USACO Section 1.1 Broken Necklace 解题报告
题目 题目描述 有一串项链,它是由红蓝白三种颜色的珠子组成的,b代表蓝色,w代表白色,r代表红色,当它完整的时候是一个闭合的环形.现在它在某一个节点断裂了,之前的环形也随之变成了直线形.从两端开始收集 ...
- C# 开发技巧]如何防止程序多次运行 线程 进程
程序员必有一些好习惯,我的就是看到好文章就收下 文章来源 http://www.cnblogs.com/zhili/p/OnlyInstance.html 转载请注明出处 最近发现很多人在论坛中问 ...
- CG之菲涅尔效果简单实现
菲涅尔效果,指当光到达两种材质的接触面时,一些光在接触面的表面被反射出去,而另一部分光将发生折射穿过接触面. 现在要用shader来实现这种效果,如果要精确地描述这种底层的物理,其计算公式是非常复杂的 ...
- svn branch 的使用
svn revision graph 中选中 "wc"(Mark current revision of your working copy.)这个选项后, 当前工作副本的版本号会 ...
- [python]小练习__创建你自己的命令行 地址簿 程序
创建你自己的命令行 地址簿 程序. 在这个程序中,你可以添加.修改.删除和搜索你的联系人(朋友.家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码). 这些详细信息应该被保存下来以便以后提 ...
- Windwos下 php mysql apache 环境配置
一.下载所需软件: 1.安装Windows组件: 安装Apache的前 必须安装 VC11 vcredist_x86.exe (64位请下载vcredist_x64.exe),选择时尽量选择英文版 ...
- iOS学习笔记1--在xcode6以上的版本中不使用storyboard以及部分控件使用
首先建立一个iOS新工程,删除工程自动建立的main.storyboard以及xib文件,并且在info.plist上删除这两个选项 然后在项目配置中将maninterface设置为空,将launch ...