文章目录
  1. 1. requirejs具有如下优点:
  2. 2. 使用要点:

requirejs具有如下优点:

  • 防止js加载阻塞页面渲染
  • 使用程序调用的方式加载js,防出现如下丑陋的场景

    <script type="text/javascript" src="a.js"></script>
    <script type="text/javascript" src="b.js"></script>
    <script type="text/javascript" src="c.js"></script>
    <script type="text/javascript" src="d.js"></script>
    <script type="text/javascript" src="e.js"></script>
    <script type="text/javascript" src="f.js"></script>
    <script type="text/javascript" src="g.js"></script>
    <script type="text/javascript" src="h.js"></script>
    <script type="text/javascript" src="i.js"></script>
    <script type="text/javascript" src="j.js"></script>
    

使用要点:

  1. 在页面底部引入require.js

    <script src="js/require.js" data-main="js/main" ></script>
    

main.js,我把它称为”主模块”,意思是整个网页的入口代码。它有点像C语言的main()函数,所有代码都从这儿开始运行。

  1. 在main.js里加载js模块,并调用,可以有回调函数

    require.config({
         paths: {
           "jquery": ["http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min","jquery"],//远程cdn库没有加载成功,可以加载本地的库
           "tiles": "jquery.tiles",//由于设置了main,相当于设置了默认位置js/jquery.tiles
          "slide": "slide"
         }
       });
    require(['jquery', 'tiles', "slide"],function(){
    });
    
  2. 还可以改变基目录baseUrl

    require.config({
         paths: {
           "jquery": "lib/jquery.min",
           "underscore": "lib/underscore.min",
           "backbone": "lib/backbone.min"
         }
       });
    
    require.config({
         baseUrl: "js/lib",
         paths: {
           "jquery": "jquery.min",
           "underscore": "underscore.min",
           "backbone": "backbone.min"
         }
       });
    
  3. 允许加载非规范的模块(即没有define定义的)

    shim: {
         'jquery.scroll': {
           deps: ['jquery'],
           exports: 'jQuery.fn.scroll'
         }
       }
    

require.config()接受一个配置对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来配置不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。

文章目录
  1. 1. requirejs具有如下优点:
  2. 2. 使用要点: