zoukankan      html  css  js  c++  java
  • sea.js 个人入门

     玉伯 : http://seajs.org/docs/

    说这两个JS 必须提到AMD、commonjs两种不同的规范:

    奇舞团:http://www.75team.com/archives/882 

    知乎:http://www.zhihu.com/question/20342350 

    个人的理解其实就是 AMD就是要加载的JS文件 都提前一数组的形式提前加载完的、commonjs是你想用到哪就直接加载的

    demo页面:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>无标题文档</title>
     6 </head>
     7 <body>
     8     <!-- 头部 -->
     9     <div class="content">
    10         <div class="nav-main">
    11             <ul id="nav" class="nav cfx">
    12                 <li>
    13                     <a href="#" title="首页">首页</a>
    14                 </li>
    15                 <li>
    16                     <a href="#" title="联系我们">联系我们</a>
    17                 </li>
    18                 <li>
    19                     <a href="#" title="关于我们">关于我们</a>
    20                 </li>
    21                 <li>
    22                     <a href="#" title="友情链接">友情链接</a>
    23                 </li>
    24             </ul>
    25         </div>
    26     </div>
    27         
    28     <!-- 主体 -->
    29     <div class="content">
    30         <div class="index-main">
    31             
    32         </div>
    33     </div>
    34     
    35     <!-- 底部 -->
    36     <div id="help" class="help">
    37         <ul class="help_list">
    38         <li>
    39         <dl>
    40             <dt>新手上路</dt>
    41             <dd><a href="#">购物前的准备</a><br>
    42             <a href="#">购物流程</a><br>
    43             <a href="#">分期指南</a><br>
    44             <a href="#">常见问题</a></dd>
    45         </dl>
    46         </li>
    47         <li>
    48         <dl>
    49             <dt>安全支付</dt>
    50             <dd><a href="#">口令卡U盾密码器</a><br>
    51             <a href="#">手机短信认证</a><br>
    52             <a href="#">支付安全宝典</a><br>
    53             <a href="#">安全专区</a></dd>
    54         </dl>
    55         </li>
    56         <li>
    57         <dl>
    58             <dt>客户服务</dt>
    59             <dd><a href="#">客服电话</a><br>
    60             <a href="#">订单查询</a><br>
    61             <a href="#">加盟须知</a><br></dd>
    62         </dl>
    63         </li>
    64         <li>
    65         <dl>
    66             <dt>关于我们</dt>
    67             <dd><a href="#">商城简介</a><br>
    68             <a href="#">商城声明</a><br>
    69             <a href="#">合作伙伴</a><br>
    70             <a href="#">联系我们</a></dd>
    71         </dl>
    72         </li>
    73         </ul>
    74     </div>
    75 </body>
    76 <script src="js/sea.js" id="main"></script>
    77 <script src="js/main.js"></script>
    78 </html>
    View Code

    main.js:

     1 //Sea.js 进行配置
     2 seajs.config({
     3 
     4   // 别名配置
     5   alias: {
     6     'base-css' : './css/base.css',
     7     'jquery'   : 'jquery-1.8.3.min.js'
     8   },
     9 
    10   // 路径配置
    11   paths: {
    12     'css' : '../css/',
    13     'logo': './logo/'
    14   },
    15 
    16   // 变量配置
    17     vars: {
    18      'com': 'common'
    19    },
    20 
    21   // 映射配置
    22   map: [
    23    ['index.js', 'index-debug.js']
    24  ],
    25 
    26   // 预加载项 预先加载jquery.js
    27     preload:[
    28        'jquery'
    29     ],
    30 
    31   // 调试模式
    32   debug: true,
    33 
    34   // Sea.js 的基础路径
    35  // base: 'http://example.com/path/to/base/',
    36 
    37   // 文件编码
    38   charset: 'utf-8'
    39 });
    40 
    41 
    42 // 启动加载模块
    43 seajs.use(['head.js','footer.js','index.js'],function(){
    44 
    45   alert('加载完喽~'); // 加载完模块,执行回调
    46 
    47 });
    View Code

    推荐: 予舍 : http://yslove.net/seajs/ 写的API 个人感觉比官方那个更好懂一些。。。。

    展示一个head.js:

     1 define(function(require, exports, module) {
     2 
     3     require('../css/base.css');   //获取指定模块
     4     require('../css/head.css');      //获取指定模块
     5     require('fixed-head.js');     //获取指定模块
     6     console.log(seajs.cache); //加载的所有信息
     7     console.log(seajs.data); //所有配置信息;
     8     var paths = seajs.resolve('../css/global.css'); //解析路径;
     9     console.log( paths );
    10     
    11     require.async('logo/logo.js',function(logo){ //异步加载
    12         logo.show();  //异步加载回调
    13     });
    14     var hover = require('hover-show.js');
    15     
    16     var $nav = $('#nav'),
    17           $navAs = $nav.find('a');
    18 
    19     $('#nav').fixedHead();  //jQuery1.7版本以上的就已经把jQuery模块化;
    20 
    21     $navAs.mouseover(function(){
    22 
    23           var txt = $(this).text();
    24           hover.show(txt);
    25 
    26     });
    27 
    28 });
    View Code

    说明:

     1 //a.js
     2 define(function(require, exports, module) {
     3     //require 获取指定模块的接口;
     4     //exports 模块内部对外提供接口;
     5     //module 当前模块的一些属性和方法,比如 exxports其实就是module地下的一个接口;
     6     
     7     // 当前模块对外的一个 show方法;
     8     module.exports = {
     9         'show' : function( txt ){
    10             console.log( txt );
    11         }
    12     }
    13 
    14 });
    15 
    16 //b.js
    17 define(function(require, exports, module) {
    18 
    19     require('../css/base.css'); //还可以加载css样式(Sea.js < 2.3.0版本之前是可以加载css文件的,新版本中此功能移除)所以就得在引入插件;
    20     var hover = require('a.js'); //获取指定模块的接口;
    21     hover.show(txt);//调用a.js里的show方法;
    22 
    23     require.async('logo/logo.js',function(logo){ //异步加载;
    24         logo.show();  //异步加载回调;
    25     });
    26 
    27     console.log(seajs.cache); //加载的所有信息;
    28     console.log(seajs.data); //所有配置信息;
    29     var paths = seajs.resolve('../css/global.css'); //解析路径;
    30     console.log( paths );
    31 
    32     //主要的部分的功能也就这样更细的API用到在看官方的文档,不过特别注意的其实是路径问题;
    33     //define('id', [], function(require, exports, module) {}); id是这个模块的名,[]是依赖的模块,不过一般这两个都是配合Gruntjs/gulp使用;
    34 
    35 });
  • 相关阅读:
    动画效果
    iOS蓝牙4.0
    讯飞语音接口使用
    Xcode添加注释
    CocoaPods安装
    mac os 下打开FTP服务器
    画面渲染:实时渲染(Real-time Rendering)、离线渲染(Offline Rendering)[转]
    Unity3D笔记 英保通九 创建数
    Unity3D笔记 英保通八 关节、 布料、粒子系统
    Unity3D 记第二次面试
  • 原文地址:https://www.cnblogs.com/auok/p/4551937.html
Copyright © 2011-2022 走看看