seajs学习笔记(基础)

author author     2022-07-31     149

关键词:

一:前端开发中常遇到的问题
      如果我们的网站简单的时候,结构上也许不会有什么问题,但是如果我们的网站越来复杂的时候(比如功能越来越多的时候,加入项目的人越来越多的时候),我们书写的代码就会遇到下面的两个问题:
 
    1. 恼人的命名冲突
     比如我们多人开发一个项目,事先由我自己写好了一个共公的组件库common.js供大家调用,里面的包括
         function tab(){
                 实现代码:
          };  
        function drag(){ 
              实现代码:
        };    
        function dialog(){ 
               实现代码:
        };.........
      同事用的时候直接在页面里引入common.js,然后调用下面的方法即可,如果后面又有一些新的同事加进来,他们在做其它的功能开发的时候,很有可能在页面也会出现我组件库里的方法,这样这两个组件之间就出现了冲突,是很影响功能效果的。
    这个时候我们通常的做法是用命名空间来解决冲突的问题:比如原来的common.js变成
org.tab=function(){
     实现代码:
};
org.drag=function(){
    实现代码:
};
org.dialog=function(){
     实现代码:
}
    这样做在一定的程度上是解决了命名冲突的问题,但是由于前面的名字有可能比较长,调用的时候并不是特别的方便,而且这种做法只是降低了命名冲突的问题,并不能完全解决这个问题。看似简单的冲突问题,但是如何才能优雅的解决,解决方案先不讲,先看下面一个问题。
 
  2. 繁琐的文件依赖
      继续上面的例子,我接着ul层通用组件,这样其他的同事就不用再重复的写了。
      其中有一个被大家非常喜欢的组件是tab.js,使用方法很简单。例如下面的调用
      <script src="common.js"></script>
      <script src="tab.js"></script>
    
      但是即便它非常的好用,还是会有同事跑过来说这个组件在调用的过程中会出现问题,经过一番的排查发现,原来在调用tab.js之前没有引用common.js,导致tab.js无法正常工作。
     所以从以上的问题中可以看出,冲突与依赖是前端开发中经常出现的问题,下面我们来看如何用模块化开发来解决,我们使用Seajs作为模块开发的框架。
 
二:Sea.js是什么?
       sea.js是一个加载器,是淘宝前端攻城师玉伯所著,他是根据commonjs规范的一种表现。何为commonJS?commonJs可以理解成一个组织,他们中的所有人都致力于提高javascript程序的可移植性以及可交互性。这种可移植性以及可交互性不仅仅局限于浏览器端,而且也包括了服务器端的javascript.
       那seaJS到底是什么呢?seaJS就是根据commonJS组织规范写的一个加载器。其内部可用的API并不多主要有以下几个:alias,config,use,define。主要就这四个API。seaJS主要就是根据这四个API对其环境中的javascript进行管理的。
        sea.js主要用在大型项目或是多人合作的时候,如果小型的企业网站完全没有必要用到它。另外,同 sea.js很相似的还有一个模块开发的加载器,它叫require.js。它们之间有什么不同呢?
        sea.js是国产的,遵循CMD(common module define)规范    下载官网:http://seajs.org/docs/
        require.js是进口的,遵循AMD(Asynchronous module define)规范,下载官网:http://www.requirejs.org/

三:为什么我们要使用Sea.js?
 
        seajs追求简单、自然的代码书写和组织方式,具有以下的核心特征:
        1.简单友好的模块定义规范:sea.js遵行CMD规范,可以像Node.js一样书写模块代码;
        2.自然直观的代码组织方式:依赖的自动加载、配置简洁清晰,可以让我们更多的享受编码的乐趣;
        sea.js提供了常用插件,非常有助于开发调试和性能优化,并具有丰富的可可扩展接口;
 
四:Sea.js的兼容性
      sea.js有着完备的测试用例,兼容所有的主流浏览器
        chrome 3+    √
        FireFox 2+    √
        Safari  3.2+   √
        opera  10+   √
        IE5.5+          √
        sea.js还可以运行在Mobiel端,包括Hybrid上。理论上sea.js可以运行在任何的浏览器引擎上。

 

sea.js学习笔记

Sea.js入门http://www.cnblogs.com/doseoer/p/4007752.html前端模块化开发的价值随着互联网的飞速发展,前端开发越来越复杂。本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用Sea.js进行前端的模块化开发。htt... 查看详情

seajs笔记

Amd和Cmd的区别有哪些?1.对于依赖的模块,AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD推崇aslazyaspossible.2.CMD推崇依赖就近,AMD推崇依赖前置。看代码://CMDdefi... 查看详情

2022年spark基础学习笔记

一、Spark学习笔记在OpenStack私有云上创建与配置虚拟机Spark基础学习笔记01:初步了解SparkSpark基础学习笔记02:Spark运行时架构Spark基础学习笔记03:搭建Spark单机版环境Spark基础学习笔记04:搭建Spark伪分布式环境Spark基础学习笔记05... 查看详情

seajs的模块化开发--实践笔记

2017-04-02SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。有效的解决复杂项目中命名冲突、依赖、性能等问题。SeaJS中使用define函数定义一个模块。define可以接收三个参数:require, exp... 查看详情

模块化开发---seajs入门学习

SeaJS是一个基于CMD模块定义规范实现一个模块系统加载器 [CMD规范](https://github.com/cmdjs/specification/blob/master/draft/module.md)9、seaJs启动函数的回调函数官网:http://seajs.org/docs/github:https://github.com/seajs/seajs如何选择一个技术产品栈 查看详情

c语言基础学习笔记+c语言进阶学习笔记总结篇(坚持才有收获!)

【C语言基础学习笔记系列】【C语言基础学习笔记】一、初始C语言(1)【C语言基础学习笔记】一、初始C语言(2)【C语言基础学习笔记】一、初始C语言(3)【C语言基础学习笔记】一、初始C语言(总... 查看详情

angularjs1笔记-(20)-模块化加载机制seajs

SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模... 查看详情

集成电路模拟版图入门-版图基础学习笔记

今日接着给大家分享模拟版图入门学习笔(六),前几期的学习笔记如下:集成电路模拟版图入门-版图基础学习笔记(一)集成电路模拟版图入门-版图基础学习笔记(二)集成电路模拟版图入门-... 查看详情

多线程编程学习笔记-基础

接上文多线程编程学习笔记-基础(一)接上文多线程编程学习笔记-基础(二)九、向线程传递参数 1.代码如下。 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;//引入线程usingSystem.Diagnostics;na... 查看详情

《南溪的目标检测学习笔记》——基础算子的学习笔记

1卷积层2池化层关于池化层的基本实现,请参考《22池化层【动手学深度学习v2】》; 查看详情

pytorch学习笔记基础知识

PyTorch深度学习:60分钟入门(Translation) 查看详情

docker学习笔记docker基础操作实,docker仓库数据卷,网络基础学习

Docker学习笔记【3】Docker仓库实操,创建私有仓库,实操数据卷、数据卷容器,实操网络基础 ---------高级网络配置和部分实战案例学习=============================================================Docker学习笔记【1】Docker相关概念,基本操作... 查看详情

《电路理论基础》学习笔记:绪论

电路理论基础学习笔记(1):绪论教材:《电路理论基础》哈尔滨工业大学电工基础教研室编文章目录电路理论基础学习笔记(1):绪论一.何为电二.何为电路三.何为电路理论1.电路模型实际电路与电路模型从实际电路到电路模型实际电... 查看详情

013dmax基础教程学习笔记

学习笔记,如有错误请留言,谢谢013dsmax界面介绍02界面UI布局03查看视点04视点显示控制05选择方法  查看详情

js基础笔记学习318练习1

查看详情

js基础笔记学习257location

查看详情

jdk7学习笔记之基础类型

printf()的基础用法:变量的基础用法:字符的输出: 查看详情

swift学习笔记——基础语法

Swift学习笔记——基础语法本文是针对新手学习Swift笔记,记录学习过程的一些体会以及一些学习过程中的理解:基础语法第一次接触Swift或者Oc语法的时候,总感觉有点像脚本语言,不像Java或者C/C++。当然这... 查看详情