关于在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"));
})
这个控件的名称叫做jsplumb用于图形拖拽及连线的。jquery及jquery-ui使用cdn,jsplumb放在本地目录js/jsplumb下

js模块化开发——require.js的实战写法1的更多相关文章

  1. JS模块化开发----require.js

    前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前 ...

  2. js模块化开发——require.js的用法详细介绍(含jsonp)

    RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签脚本加载步骤.可以用它回事.优化代码,但其主要的目的还是为了代码的模块化.它鼓励在使用脚本以moudle ...

  3. js模块化开发——require.js的用法

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  4. js模块化开发——require.js学习总结

    1.为什么使用require.js 作为命名空间: 作为命名空间使用: 异步加载js,避免阻塞,提高性能: js通过require加载,不必写很多script 2.require.js的加载 requ ...

  5. JS模块化工具require.js教程(一):初识require.js

    随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...

  6. JS模块化工具require.js教程(二):基本知识

    前一篇:JS模块化工具我们以非常简单的方式引入了requirejs,这一篇将讲述一下requirejs中的一些基本知识,包括API使用方式等 基本API require会定义三个变量:define,r ...

  7. JS模块化开发:使用SeaJs高效构建页面

    一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...

  8. Js模块化开发的理解

    Js模块化开发的理解 模块化是一个语言发展的必经之路,其能够帮助开发者拆分和组织代码,随着前端技术的发展,前端编写的代码量也越来越大,就需要对代码有很好的管理,而模块化能够帮助开发者解决命名冲突.管理 ...

  9. JS模块化开发(三)——seaJs+grunt

    1.seaJs直接构建存在的问题 由于模块之间的依赖require引用的是模块名,当多个js模块被合并成一个时,会由于找不到模块名而报错 2.seaJs+grunt开发 用到的插件:grunt-cmd ...

随机推荐

  1. UCI机器学习数据库

    UC Irvine Machine Learning Repository:UCI指的是加州大学欧文分校.UCI机器学习库主要是收集的机器学习领域的一些相关数据集和数据生成器,可以用来做一些基本的实验 ...

  2. zencart 具体页面调用规则: $body_code变量解析

    zencart $body_code变量解析 修改centerColumn 可以修改中间产品方框的大小 2.2.5 .BODY文件在这个文件生效 require($body_code) include ...

  3. JavaFX 2.0+ WebView /WebEngine render web page to an image

    http://stackoverflow.com/questions/7796558/javafx-2-0-webview-webengine-render-web-page-to-an-image ...

  4. HDU1251-统计难题(字典树)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  5. GPU

    GPU主要是进行计算机图形这种大运算量的图形处理器,包括顶点设置.光影.像素操作.对CPU发出的数据和指令,进行着色,材质填充,渲染. 在没有GPU的系统中,3D游戏中物体移动时的坐标转换与光源处理, ...

  6. ARC下需要注意的内存管理

    ARC下需要注意的内存管理 2016/04/03 · iOS开发 · 内存管理 分享到:1 原文出处: 一不(@luoyibu)    之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也 ...

  7. With PHP frameworks, why is the “route” concept used?

    http://programmers.stackexchange.com/questions/122190/with-php-frameworks-why-is-the-route-concept-u ...

  8. Nginx 中 nginx.conf 详解

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  9. Bootstrap学习指南

    一.Bootstrap简介 二.Bootstrap安装 三.Bootstrap CSS 四.Bootstrap 布局组件 五.Bootstrap 插件 六.Bootstrap定制

  10. [ERROR] InnoDB: Cannot allocate memory for the buffer pool

    :: mysqld_safe Starting mysqld daemon with databases from /data/mysqldb -- :: [Note] /usr/local/mysq ...