Dokumen tidak resmi, mengatur teks dan contoh dokumen resmi Anda sendiri untuk pencarian cepat.
Mengapa Menggunakan Sea.js?
Sea.js mengejar metode penulisan dan organisasi yang sederhana dan alami, dengan fitur -fitur inti berikut:
Spesifikasi Definisi Modul Sederhana dan Ramah: Sea.js mengikuti spesifikasi CMD dan dapat menulis kode modul seperti Node.js.
Organisasi kode alami dan intuitif: Pemuatan otomatis dependensi dan konfigurasi yang ringkas dan jelas memungkinkan kami untuk menikmati lebih banyak pengkodean.
Sea.js juga menyediakan plugin umum, yang sangat membantu untuk pengembangan debugging dan optimasi kinerja, dan memiliki antarmuka yang dapat diperluas.
kesesuaian
Sea.js memiliki kasus uji lengkap dan kompatibel dengan semua browser arus utama:
Chrome 3+
Firefox 2+
Safari 3.2+
Opera 10+
Yaitu 5.5+
Sea.js dapat berjalan di sisi seluler, termasuk aplikasi Mode Hybrid. Secara teori, Sea.js dapat berjalan di mesin browser apa pun.
seajs.configobject
Objek alias
Konfigurasi alias, setelah konfigurasi, Anda dapat menggunakan kebutuhan membutuhkan ('jQuery');
seajs.config ({alias: {'jQuery': 'jQuery/jQuery/1.10.1/jQuery'}}); define (function (membutuhkan, ekspor, modul) {// referensi modul jQuery var $ = membutuhkan ('jQuery');});objek jalur
Atur jalur untuk memfasilitasi panggilan sutradara. Dengan mengatur jalur secara fleksibel, Anda dapat menentukan ke direktori tertentu tanpa mempengaruhi basis.
seajs.config ({// atur path paths: {'galeri': 'https://a.alipayobjects.com/gallery'}, // atur alias untuk memfasilitasi panggilan ke alias: {'underscore': 'galeri/underscore'}}); define (function (membutuhkan, ekspor, modul) {var _ = membutuhkan ('underscore'); // => yang dimuat https://a.alipayobjects.com/gallery/underscore.js});Objek VARS
Konfigurasi variabel. Dalam beberapa skenario, jalur modul hanya dapat ditentukan selama runtime, dan Anda dapat menggunakan variabel VARS untuk mengonfigurasinya.
VARS dikonfigurasi dengan nilai variabel dalam pengidentifikasi modul, dan variabel diwakili oleh {key} dalam pengidentifikasi modul.
seajs.config ({// variable configuration vars: {'locale': 'zh-cn'}}); define (function (membutuhkan, ekspor, modul) {var lang = membutuhkan ('./ i18n/{locale} .js'); // => loaded adalah path/to/i18n/zh-cn.js});array peta
Konfigurasi ini dapat memetakan dan memodifikasi jalur modul, dan dapat digunakan untuk konversi jalur, debugging online, dll.
seajs.config ({peta: [['.js', '-debug.js']]}); define (function (membutuhkan, ekspor, modul) {var a = membutuhkan ('./ a'); // => yang dimuat adalah path/to/a-debug.js});array preload
Menggunakan item konfigurasi preload, Anda dapat memuat dan menginisialisasi modul yang ditentukan sebelumnya sebelum memuat modul normal.
String kosong di preload akan diabaikan.
// Di browser lama, muat modul ES5 dan JSON seajs.config ({preload: [function.prototype.bind? '': 'Es5-safe', this.json? '': 'Json']});Catatan: Konfigurasi dalam preload perlu dimuat sampai digunakan. Misalnya:
seajs.config ({preload: 'a'}); // sebelum memuat b, itu akan memastikan bahwa modul A telah memuat dan mengeksekusi Seajs.use ('./ b');Konfigurasi preload tidak dapat ditempatkan di file modul:
seajs.config ({preload: 'a'}); Tentukan (fungsi (membutuhkan, ekspor) {// Saat dieksekusi di sini, tidak dapat dijamin bahwa modul A telah dimuat dan dieksekusi});Debug Boolean
Ketika nilainya benar, loader tidak menghapus tag skrip yang dimasukkan secara dinamis. Plug-in juga dapat menentukan output log dan informasi lain berdasarkan konfigurasi debug.
string dasar
Sea.js akan mengurai pengidentifikasi tingkat atas relatif terhadap jalur dasar.
Catatan: Umumnya, tolong jangan konfigurasikan jalur dasar. Menempatkan Sea.js di jalur yang tepat seringkali lebih sederhana dan lebih konsisten.
Charsetstring | Fungsi
Atribut charset dari tag <script> atau <link> Saat mendapatkan file modul. Standarnya adalah UTF-8
Charset juga bisa menjadi fungsi:
seajs.config ({charset: function (url) {// File dalam direktori XXX dimuat dalam pengkodean gbk if (url.indexof ('http://example.com/js/xxx') === 0) {return 'gbk';} //Fungsi Seajs.use
Digunakan untuk memuat satu atau lebih modul di halaman. Seajs.use (id, callback?)
// Muat modul seajs.use ('./ a'); // muat modul, jalankan callback seajs.use ('./ a', function (a) {a.dosomething ();}); // Muat beberapa modul, menjalankan callback seaJs.use (['. b.dosomething ();});CATATAN: Seajs.use tidak ada hubungannya dengan acara Dom Ready. Jika operasi tertentu akan dieksekusi setelah DOM siap, Anda perlu menggunakan perpustakaan kelas seperti jQuery untuk memastikannya. Misalnya
seajs.use (['jQuery', './main'], function ($, main) {$ (document) .ready (function () {main.init ();});});Catatan: Parameter pertama dari metode penggunaan harus ada, tetapi bisa nol atau variabel
var bootstrap = ['bootstrap.css', 'bootstrap-responsive.css', 'bootstrap.js']; seajs.use (bootstrap, function () {// lakukan sesuatu});seajs.cache ojbect
Melalui seajs.cache, Anda dapat memeriksa semua informasi modul dalam sistem modul saat ini.
Misalnya, buka seajs.org, lalu masukkan seajs.cache di panel konsol alat pengembang webkit, dan Anda dapat melihat:
Objek> http://seajs.org/docs/assets/main.js: x> https://a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js: x> __proto__: objek
Ini adalah modul yang digunakan di halaman beranda dokumen. Perluas item untuk melihat informasi spesifik dari modul. Artinya dapat ditemukan di bagian modul dari spesifikasi definisi modul CMD.
fungsi seajs.reslove
Mirip dengan yang dibutuhkan. Resolusi, mekanisme internal sistem modul akan menggunakan resolusi jalur parameter string yang masuk.
seajs.resolve ('jQuery'); // => http: //path/to/jquery.jsseajs.resolve ('./a', 'http://example.com/to/b.js');// => http://example.com/to/a.jsMetode Seajs.Resolve tidak hanya dapat digunakan untuk men-debug apakah resolusi jalurnya benar, tetapi juga di lingkungan pengembangan plug-in.
Objek Seajs.Data
Melalui seajs.data, Anda dapat melihat semua konfigurasi Seajs dan nilai-nilai beberapa variabel internal, yang dapat digunakan untuk pengembangan plug-in. Ini juga dapat digunakan untuk debugging saat terjadi masalah pemuatan.
Pertanyaan yang sering diajukan
Tentang identifikasi modul
Pengidentifikasi modul Seajs terutama string unta kecil ,. atau ..
// di pabrik http://example.com/js/a.js: membutuhkan.resolve ('./ B'); // => http://example.com/js/b.js// di pabrik http://example.com/js/a.js: membutuhkan.resolve ('../ C'); // => http://example.com/c.jsIni dibagi menjadi logo relatif dan tingkat atas. Jika dimulai dengan. atau., Ini adalah pengidentifikasi relatif. Sakelar string unta kecil adalah pengidentifikasi tingkat atas.
// Misalkan jalur dasar adalah: http://example.com/assets/// dalam kode modul: membutuhkan.resolve ('galeri/jQuery/1.9.1/jQuery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.jsTentang jalan setapak
Selain menjadi identifikasi tingkat tinggi, Seajs juga dapat menggunakan jalur normal untuk memuat modul.
Mari kita pergi ke analisis skrip halaman saat ini (Anda dapat mengklik kanan untuk melihat kode sumber)
// Jalur Sea.js, yaitu, jalur dasar, relatif terhadap halaman saat ini <skrip src = "http://yslove.net/actjs/assets/sea-odules/seajs/2.1.1/sj.js"> </skrip> <script type = "teks/javascript"> // Identifikasi tingkat atas, berdasarkan jalur dasar 'actjs': 'actjs/core/0.0.7/core.js', // => http: // 'position': 'actjs/util/0.0.2/position.js'}}); seaJs.config ({{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" '../../actjs/assets/widget/src/widget-affix.js', // pengidentifikasi relatif, relatif terhadap halaman saat ini 'init': './src/init.js'}}); </skrip>Pada awalnya, saya merasa bahwa jalur Seajs agak tidak terbiasa dengan itu, karena itu adalah jalur dasar. Ingatlah bahwa jalur dasar adalah jalur atas file di Sea.js, dan kemudian semua pengidentifikasi tingkat atas dan pengidentifikasi relatif disesuaikan relatif terhadap basis ini.