Documentos não oficiais, organize o texto e exemplos de seus próprios documentos oficiais para pesquisa rápida.
Por que usar Sea.js?
Sea.js busca métodos simples e naturais de redação e organização, com os seguintes recursos principais:
Especificação de definição de módulo simples e amigável: Sea.js segue a especificação CMD e pode escrever código do módulo como o Node.js.
Organização de código natural e intuitivo: o carregamento automático de dependências e a configuração concisa e clara nos permitem desfrutar de mais codificação.
O SEA.JS também fornece plugins comuns, que são muito úteis para depuração de desenvolvimento e otimização de desempenho, e têm interfaces extensíveis ricas.
compatibilidade
O SEA.JS possui casos de teste completos e é compatível com todos os navegadores convencionais:
Chrome 3+
Firefox 2+
Safari 3.2+
Opera 10+
Ou seja, 5.5+
O SEA.JS pode ser executado no lado móvel, incluindo o aplicativo de modo híbrido. Em teoria, o SEA.JS pode ser executado em qualquer motor do navegador.
Seajs.configobject
alias objeto
Configuração de alias, após a configuração, você pode usar o requer chamado requer ('jQuery');
Seajs.config ({Alias: {'jQuery': 'jQuery/jQuery/1.10.1/jQuery'}}); define (função (requer, exporta, módulo) {// Reference jQuery Module var $ = requer ('jQuery');});Objeto de caminhos
Defina os caminhos para facilitar as chamadas de diretório cruzado. Ao definir flexibilidade o caminho, você pode especificar para um determinado diretório sem afetar a base.
Seajs.config ({// Defina caminhos de caminhos: {'Gallery': 'https://a.alipayobjects.com/gallery'}, // Defina aliases para facilitar chamadas para o alias: {'subscore': 'Gallery/subscore'}}); define (função (requer, exporta, módulo) {var _ = require ('subscore'); // => o carregado é https://a.alipayobjects.com/gallery/undercore.js});objeto vars
Configuração variável. Em alguns cenários, o caminho do módulo só pode ser determinado durante o tempo de execução e a variável VARS pode ser usada para configurá -la.
O VARS é configurado com o valor variável no identificador do módulo, e a variável é representada por {key} no identificador do módulo.
SEAJS.CONFIG ({// Configuração variável vars: {'Locale': 'zh-cn'}}); define (função (requer, exporta, módulo) {var lang = requer ('./ i18n/{Locale} .js'); // => o carregado é caminho/para/i18n/zh-cn.js});Array do mapa
Essa configuração pode mapear e modificar os caminhos do módulo e pode ser usada para conversão de caminho, depuração on -line, etc.
Seajs.config ({map: [['.js', '-debug.js']]}); define (função (requer, exporta, módulo) {var a = requer ('./ a'); // => o carregado é caminho/para/a-debug.js});Array de pré -carga
Usando o item de configuração de pré -carga, você pode carregar e inicializar o módulo especificado com antecedência antes de carregar o módulo normal.
A corda vazia na pré -carga será ignorada.
// Nos navegadores antigos, carregue os modulos ES5 e JSON Seajs.config ({pré-carga: [function.prototype.bind? '': 'Es5-sabe', this.json? '': 'Json']});Nota: A configuração na pré -carga precisa ser carregada até o uso. por exemplo:
Seajs.config ({pré -carga: 'a'}); // Antes de carregar B, ele garantirá que o módulo A tenha carregado e executado Seajs.use ('./ b');A configuração da pré -carga não pode ser colocada no arquivo do módulo:
SEAJS.CONFIG ({Preload: 'A'}); definir (função (requer, exporta) {// Ao executar aqui, não é garantido que o módulo A tenha sido carregado e executado});Debug boolean
Quando o valor é verdadeiro, o carregador não exclui a tag de script inserida dinamicamente. O plug-in também pode decidir a saída do log e outras informações com base na configuração de depuração.
string base
Sea.js analisará o identificador de nível superior em relação ao caminho base.
Nota: Geralmente, não configure o caminho base. Colocar o Sea.js no caminho apropriado geralmente é mais simples e consistente.
CHARSETSTRING | Função
O atributo charset da tag <cript> ou <ink> ao obter o arquivo do módulo. O padrão é UTF-8
Charset também pode ser uma função:
Seajs.config ({charset: function (url) {// Os arquivos no diretório XXX são carregados na codificação gbk if (url.indexof ('http://example.com/js/xxx') === 0) {return 'gbk';} // outros arquivos são consecutivos em utffunção Seajs.Use
Usado para carregar um ou mais módulos em uma página. Seajs.Use (ID, retorno de chamada?)
// Carregue um módulo Seajs.use ('./ a'); // Carregar um módulo, execute o retorno de chamada Seajs.use ('./ a', function (a) {a.dosomething ();}); // carrega vários módulos, execute o retorno de retorno do Seajs.use ('. b.Dosomething ();});Nota: Seajs.use não tem nada a ver com o evento Dom Ready. Se determinadas operações forem executadas após o DOM pronta, você precisará usar bibliotecas de classes como o jQuery para garantir isso. por exemplo
Seajs.use (['jQuery', './Main'], function ($, main) {$ (document) .ready (function () {main.init ();});});Nota: O primeiro parâmetro do método de uso deve estar presente, mas pode ser nulo ou uma variável
var bootstrap = ['bootstrap.css', 'bootstrap-ponsive.css', 'bootstrap.js']; Seajs.use (bootstrap, function () {// faz algo});Seajs.cache ojbect
Através do Seajs.cache, você pode verificar todas as informações do módulo no sistema de módulos atuais.
Por exemplo, Open Seajs.org e, em seguida, entre no Seajs.cache no painel de console de ferramentas de desenvolvedor do Webkit, e você pode ver:
Objeto> http://seajs.org/docs/assets/main.js: x> https://a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js: x> __proto__: objeto
Estes são os módulos usados na página inicial do documento. Expanda um item para ver as informações específicas do módulo. O significado pode ser encontrado na seção do módulo da especificação de definição do módulo CMD.
Seajs.reslove função
Semelhante ao requer.Resolve, o mecanismo interno do sistema de módulos usará a resolução do caminho dos parâmetros de string recebidos.
Seajs.resolve ('jQuery'); // => http: //path/to/jquery.jssseajs.resolve ('./a', 'http://example.com/to/b.js') ;///8O método SEAJS.RESOLVE pode não apenas ser usado para depurar se a resolução do caminho está correta, mas também no ambiente de desenvolvimento de plug-in.
objeto Seajs.data
Através do Seajs.Data, você pode ver todas as configurações do SEAJS e os valores de algumas variáveis internas, que podem ser usadas para o desenvolvimento de plug-in. Também pode ser usado para depuração ao ocorrer problemas de carregamento.
Perguntas frequentes
Sobre a identificação do módulo
Os identificadores do módulo SEAJS são principalmente pequenas cordas de camelo ,. ou ..
// na fábrica de http://example.com/js/a.js: requer.resolve ('./ b'); // => http://example.com/js/b.js// na fábrica de http://example.com/js/a.js: requer.resolve ('../ c'); // => http://example.com/c.jsÉ dividido em logotipos relativos e de nível superior. Se começar. ou., é um identificador relativo. O pequeno interruptor de cordas de camelo é o identificador de nível superior.
// Suponha que o caminho base seja: http://example.com/assets/// no código do módulo: require.resolve ('Gallery/jQuery/1.9.1/jQuery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.jsSobre o caminho
Além de ser uma identificação de nível relativamente alto, os SEAJs também podem usar caminhos normais para carregar módulos.
Vamos para a análise de script da página atual (você pode clicar com o botão direito do mouse para visualizar o código-fonte)
// O caminho de Sea.js, isto é, o caminho da base, é relativo à página atual <script src = "http://yslove.net/actjs/assets/sea-modules/seajs/2.1.1/sj.js"> </script> <script type = "text/javsscrint"> // Identificação de nível superior, com base no caminho da base 'Actjs': 'Actjs/Core/0.0.7/core.js', // => http: // 'position': 'Actjs/util/0.0.2/position.js'}}); seajs.config ({alias: {/ Normal.js '}}); '../../actjs/assets/widget/src/widget-affix.js', // Identificador relativo, em relação à página atual 'init': './src/init.js'}}); </script>No começo, sinto que o caminho do SEAJS é um pouco desacostumado a ele, porque é o caminho da base. Lembre-se de que o caminho base é o caminho superior do arquivo no Sea.js e, em seguida, todos os identificadores de nível superior e identificadores relativos são ajustados em relação a essa base.