SeaJS简介三:模块载入和引用

来源:互联网 发布:linux如何安装迅雷 编辑:程序博客网 时间:2024/06/13 21:11
 

SeaJS简介三:模块载入和引用

 5436人阅读 评论(6) 收藏 举报
 分类:
 

       之前对模块有过介绍,一个模块对应一个js文件,而载入模块时一般都是提供一个字符串参数告诉载入函数需要的模块,所以就需要有一套从字符串标识到实际模块所在文件路径的解析算法。

 

SeaJS支持如下几种方式:

 

第一种:绝对路径--给出js文件的绝对路径

 

[javascript] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. require("http://example/js/a");  

 

第二种:相对路径--用相对调用载入函数所在js文件的相对地址寻找模块

 

[javascript] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. require("./c");  


 第三种:通过全局变量来匹配相对路径:相对SeaJS全局配置中的“base”来寻址(后面文章会介绍到)

 

 

SeaJS提供了三种载入的方式:seajs.use,require和require.async

 

第一种:seajs.use


       seajs.use主要用于载入入口模块。入口模块相当于JAVA程序的main函数,同时也是整个模块依赖树的根。

 

       这种方式有几种写法:

 

[javascript] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. //单一模式  
  2. seajs.use('./a');  
  3.    
  4. //回调模式  
  5. seajs.use('./a'function(a) {  
  6.   a.run();  
  7. });  
  8.    
  9. //多模块模式  
  10. seajs.use(['./a''./b'], function(a, b) {  
  11.   a.run();  
  12.   b.run();  
  13. });  

 

        一般seajs.use只用在页面载入入口模块,SeaJS会顺着入口模块解析所有依赖模块并将它们加载。如果入口模块只有一个,也可以通过给引入sea.js的script标签加入”data-main”属性来省略seajs.use。

 

       来个小实例来说明一下:


[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1.    
  2. <!DOCTYPE HTML>  
  3. <html lang="zh-CN">  
  4. <head>  
  5.     <meta charset="UTF-8">  
  6.     <title>TinyApp</title>  
  7. </head>  
  8. <body>  
  9.     <p class="content"></p>  
  10.     <script src="./sea.js" data-main="./init"></script>  
  11. </body>  
  12. </html>  


 

第二种:require

 

       require是SeaJS主要的模块加载方法,当在一个模块中需要用到其它模块时一般用require加载:ar a = require('a'); //引入a模块

 

第三种:require.async

 

      之前的require方式是一次把所有依赖的JS文件都加载进来,如果想什么时候用到什么时候加载的话就会用这种方式,这种方式效率比require高一些。

 

       通过上面的介绍,应该对SeaJS的模块载入和引用有所了解了,其实者通过这几篇的介绍会发现SeaJS的模块化编程思想和它带给开发人员的简单易用的特点。下篇博客介绍一下SeaJS的全局配置。

0
 
0

我的同类文章

  • Bootstrap的表单控件2016-01-05
  • Ztree简介2015-08-30
  • web打印实现几种方法2014-11-30
  • SeaJS简介四:全局配置2014-05-23
  • SeaJS简介一:由来,特点以及优势2014-05-23
  • Bootstrap表单介绍2015-11-29
  • Filter配置会话超时跳转页面2015-08-30
  • HTML5基础资源分享2014-08-31
  • SeaJS简介二:模块编写2014-05-23
更多文章
主题推荐
seajs 微软
猜你在找
HTML 5视频教程系列之JavaScript学习篇
HTML5之新增标签,CSS3,js特效
PHP基础视频-HTML、CSS、js
HTML5实例教程——简易涂鸦板
HTML5实例教程:拼图游戏
seajs学习2----CMD 模块定义规范
seajs模块化jQuery与jQuery插件
Seajs提供简单极致的模块化开发体验
seajs学习3----模块标识
seajs-前端模块化工具CMD规范
<iframe id="iframeu1607657_0" src="http://pos.baidu.com/acom?sz=728x90&amp;rdid=1607657&amp;dc=2&amp;di=u1607657&amp;dri=0&amp;dis=0&amp;dai=2&amp;ps=3358x305&amp;coa=at%3D3%26rsi0%3D728%26rsi1%3D90%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&amp;dcb=BAIDU_UNION_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1456792471588&amp;ti=SeaJS%E7%AE%80%E4%BB%8B%E4%B8%89%EF%BC%9A%E6%A8%A1%E5%9D%97%E8%BD%BD%E5%85%A5%E5%92%8C%E5%BC%95%E7%94%A8%20-%20%E9%99%88%E5%BB%BA%E7%A7%8B%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-%20CSDN.NET&amp;ari=1&amp;dbv=2&amp;drs=1&amp;pcs=1080x475&amp;pss=1265x3423&amp;cfv=0&amp;cpl=4&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1456792472&amp;ltu=http%3A%2F%2Fblog.csdn.net%2Flfsf802%2Farticle%2Fdetails%2F26758567&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DLsEOVBEQ5ienSs_8wlBVAFRs10SnTR-xCna7a4auVayX3OmZtWmTTu__SdKhekqxVskPqCK1p1FZKaxBBJL6a_%26wd%3D%26eqid%3Da7fdc12e000f73950000000556d4e34f&amp;ecd=1&amp;psr=1366x768&amp;par=1366x728&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=6&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1456792472&amp;qn=bfdd61190943f801&amp;tt=1456792471562.595.812.813" width="728" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
查看评论
6楼 米老师2014-06-21 13:10发表 [回复]
我喜欢成系列的文章,这样你的思考是完整的,是有高度的。
5楼 haogting2014-06-20 21:23发表 [回复]
还没有用到,先留个整体的印象!
4楼 张江江2014-06-02 10:05发表 [回复]
SeaJS 全套教程来了,来学习
3楼 lmdcszh2014-06-01 22:19发表 [回复]
三种加载的方法:seajs.use,require和require.async 跟着学习
2楼 sunqing03162014-06-01 16:41发表 [回复]
js的一种吗?
1楼 李社河2014-05-29 12:48发表 [回复]
只能熟悉一下词语啦,先

0 0