seaJs的模块定义和模块加载浅析_Seajs
SeaJS 是由玉伯开发的一个遵循 CommonJS 规范的模块加载框架,可用来轻松愉悦地加载任意 JavaScript 模块和css模块样式。SeaJS非常小巧,小巧在于压缩和gzip后体积只有4K,而且接口和方法也非常少,SeaJS 就两个核心:模块定义和 模块的加载及依赖关系。SeaJS非常强大,SeaJS可以加载任意 JavaScript 模块和css模块样式,SeaJS会保证你在使用一个模块时,已经将所依赖的其他模块载入到脚本运行环境中。玉伯的说法,SeaJS可以让你享受写代码的乐趣,不用去管那些加载的问题。你是否厌倦了如此多的js和css引用,我数了一下我们公司网站的个人主页首页上有39个css和js引用,带来的影响可想而知:
1.不利于维护,前端后端都一样
2.http请求过多,当然这个可以通过合并解决,但是如果没有后端直接合并,人工成本非常大,就算后端合并,维护的时候,这么长的一个字符串,眼睛肯定看花
用SeaJS就能非常好的解决这些问题。
模块的定义define
定义一个模块比较简单,例如定义一个sayHello模块,建一个sayHello.js文档:
define(function(require,exports,module){
exports.sayHello = function(eleID,text) {
document.getElementById(eleID).innerHTML=text;
};
});
这里先看一下exports参数,exports参数是用来向外提供模块的 API.也就是通过这个exports其他的模块就能访问sayHello方法。
模块的加载use
例如我们页面上有一个id为“out”的元素,要输出“Hello SeaJS!”,
那么我们可以先引入sea.js
然后使用sayHello模块:
seajs.use("sayHello/sayHello",function(say){
say.sayHello("out","Hello SeaJS!");
});
这里的use就是使用模块的方法:
第一个参数就是模块表示,他是相对于sea.js的相对路径来表示,sayHello.js后面的“.js”后缀可以省略,当然这个模块标识还有很多方法,具体查看官方说明:http://seajs.com/docs/zh-cn/module-identifier.html
第一个参数是一个callback函数。say.sayHello()就是调用sayHello模块的exports.sayHello方法,当然这callback函数中有个say参数。
模块的依赖关系
模块的依赖其实在模块定义的时候就应该存在了。比如说把上面的sayHello模块改写一下,假设我们已经有了一个通用的DOM模块,比如一些获取元素,设置样式等方法,例如这么一个DOM模块,如下编写DOM.js
define(function(require, exports, module) {
var DOM = {
/**
* 通过元素的id属性获取DOM对象,参数为字符串,或多个字符串
* @id getById
* @method getById
* @param {String} id the id attribute
* @return {HTMLElement | Object} The HTMLElement with the id, or null if none found.
*/
getById: function() {
var els = [];
for (var i = 0; i var el = arguments[i];
if (typeof el == "string") {
el = document.getElementById(el);
}
if (arguments.length == 1) {
return el;
}
els.push(el);
}
return els;
},
/**
* get 获取对象,可以传入对象或字符串,如果传入字符串者以document.getElementById()的方式获取对象
* @id get
* @param {String} el html element
* @return {Object} HTMLElement object.
*/
get: function(el) {
if (el & amp; amp; amp; & amp; amp; amp; (el.tagName || el.item)) {
return el;
}
return this.getById(el);
}
};
return DOM;
});
那么sayHello模块可以这样编写,为了不影响原来的demo页面,所以我定一个新的sayHelloA模块,我们可以这样编写sayHelloA.js:
define(function(require, exports, module) {
var DOM = require("DOM/DOM");
require("sayHelloA/sayHello.css");
exports.sayHello = function(eleID, text) {
DOM.get(eleID).innerHTML = text;
};
});
require 函数就是用来建立模块的依赖关系,比如上面sayHelloA模块,就是依赖于DOM模块,因为用到了DOM模块的get方法。
注意这里的var DOM=require("DOM/DOM"),这句是将应用进来的DOM模块赋值给DOM;require("sayHelloA/sayHello.css")是直接应用sayHello.css css模块或者说文件。这样页面上会引用这个css文件。
最近这几天一直捣腾SeaJS,越捣腾越喜欢,感谢玉伯!感谢SeaJS!当然你可能觉得这么简单的几个实例没必要这么做。确实如果js文件少的小项目感觉不错模块化的优势,但是,更多的在js文件多或着中型以上项目这个模块化的优势就体现出来了。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas


![Modul pengembangan WLAN telah berhenti [fix]](https://img.php.cn/upload/article/000/465/014/170832352052603.gif?x-oss-process=image/resize,m_fill,h_207,w_330)
Jika terdapat masalah dengan modul pengembangan WLAN pada komputer Windows anda, ia mungkin menyebabkan anda terputus sambungan daripada Internet. Keadaan ini sering mengecewakan, tetapi mujurlah, artikel ini menyediakan beberapa cadangan mudah yang boleh membantu anda menyelesaikan masalah ini dan membolehkan sambungan wayarles anda berfungsi dengan baik semula. Betulkan Modul Kebolehlanjutan WLAN Telah Berhenti Jika Modul Kebolehlanjutan WLAN telah berhenti berfungsi pada komputer Windows anda, ikuti cadangan ini untuk membetulkannya: Jalankan Penyelesai Masalah Rangkaian dan Internet untuk melumpuhkan dan mendayakan semula sambungan rangkaian wayarles Mulakan semula Perkhidmatan Konfigurasi Auto WLAN Ubah Suai Pilihan Kuasa Ubah suai Tetapan Kuasa Lanjutan Pasang Semula Pemacu Penyesuai Rangkaian Jalankan Beberapa Perintah Rangkaian Sekarang, mari kita lihat secara terperinci

Artikel ini memperincikan kaedah untuk menyelesaikan ID10000 peristiwa, yang menunjukkan bahawa modul pengembangan LAN Wayarles tidak boleh dimulakan. Ralat ini mungkin muncul dalam log peristiwa Windows 11/10 PC. Modul kebolehlanjutan WLAN ialah komponen Windows yang membenarkan vendor perkakasan bebas (IHV) dan vendor perisian bebas (ISV) untuk menyediakan pengguna dengan ciri dan fungsi rangkaian wayarles tersuai. Ia memanjangkan keupayaan komponen rangkaian Windows asli dengan menambahkan fungsi lalai Windows. Modul kebolehlanjutan WLAN dimulakan sebagai sebahagian daripada permulaan apabila sistem pengendalian memuatkan komponen rangkaian. Jika Modul Pengembangan LAN Wayarles menghadapi masalah dan tidak boleh dimulakan, anda mungkin melihat mesej ralat dalam log dalam Pemapar Acara.

1. Pengenalan kepada modul sys Modul os yang diperkenalkan sebelum ini adalah terutamanya untuk sistem pengendalian, manakala modul sys dalam artikel ini adalah terutamanya untuk penterjemah Python. Modul sys ialah modul yang disertakan dengan Python Ia adalah antara muka untuk berinteraksi dengan penterjemah Python. Modul sys menyediakan banyak fungsi dan pembolehubah untuk menangani bahagian yang berlainan dalam persekitaran masa jalan Python. 2. Kaedah modul sys yang biasa digunakan Anda boleh menyemak kaedah yang disertakan dalam modul sys melalui kaedah dir(): import sys print(dir(sys))1.sys.argv-dapatkan parameter baris arahan sys. argv digunakan untuk melaksanakan arahan dari luar atur cara Aturcara lulus parameter dan ia dapat memperoleh lajur parameter baris arahan

Prakata Artikel ini terus memperkenalkan modul koleksi Python Kali ini terutamanya memperkenalkan tupel yang dinamakan di dalamnya, iaitu penggunaan namedtuple. Tanpa berlengah lagi, mari kita mulakan – ingat untuk suka, ikut dan ke hadapan~ ^_^Mencipta tupel bernama Kelas tuple bernamaTuples dalam koleksi Python memberi makna kepada setiap kedudukan dalam tupel dan meningkatkan kebolehbacaan kod Seksual dan deskriptif. Ia boleh digunakan di mana-mana tupel biasa digunakan, dan menambah keupayaan untuk mengakses medan mengikut nama dan bukannya indeks kedudukan. Ia datang daripada koleksi modul terbina dalam Python. Sintaks umum yang digunakan ialah: import koleksi XxNamedT

Hello, nama saya somenzz, awak boleh panggil saya Abang Zheng. Import Python adalah sangat intuitif, tetapi walaupun begitu, kadangkala anda akan mendapati bahawa walaupun pakej itu ada, kami masih akan menemui ModuleNotFoundError Laluan relatif jelas sangat betul, tetapi ralat ImportError:attemptedrelativeimportwithnoknownparentpackage mengimport modul dalam direktori yang sama dan. yang berbeza. Modul direktori adalah berbeza sama sekali. Artikel ini membantu anda mengendalikan import dengan mudah dengan menganalisis beberapa masalah yang sering dihadapi apabila menggunakan import, anda boleh membuat atribut dengan mudah.

Semua data secara automatik diberikan "DOB" (Tarikh Lahir) pada permulaan. Oleh itu, adalah tidak dapat dielakkan untuk menemui data tarikh dan masa semasa memproses data pada satu ketika. Tutorial ini akan membawa anda melalui modul datetime dalam Python dan menggunakan beberapa perpustakaan persisian seperti panda dan pytz. Dalam Python, apa-apa yang berkaitan dengan tarikh dan masa dikendalikan oleh modul datetime, yang seterusnya membahagikan modul kepada 5 kelas yang berbeza. Kelas hanyalah jenis data yang sepadan dengan objek. Rajah di bawah meringkaskan 5 kelas datetime dalam Python bersama-sama dengan atribut dan contoh yang biasa digunakan. 3 coretan berguna 1. Tukar rentetan kepada format datetime, mungkin menggunakan datet

Prinsip kerja Ansible boleh difahami dari rajah di atas: hujung pengurusan menyokong tiga kaedah tempatan, ssh, dan zeromq untuk menyambung ke hujung terurus Lalai adalah menggunakan sambungan berasaskan ssh dalam gambar rajah seni bina di atas; ia boleh disambungkan mengikut jenis aplikasi HostInventory (senarai hos) dilakukan dengan cara lain Nod pengurusan melaksanakan operasi yang sepadan melalui pelbagai modul Satu modul dan pelaksanaan satu kumpulan boleh dipanggil iklan -hoc; nod pengurusan boleh melaksanakan koleksi berbilang tugas melalui buku permainan, seperti pemasangan dan penggunaan perkhidmatan web, sandaran kumpulan pelayan pangkalan data, dll. Kita hanya boleh memahami buku permainan kerana, sistem berlalu

Dokumentasi rasmi: https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html Pengenalan Perintah ad-hoc ialah arahan yang dimasukkan dan dilaksanakan buat sementara waktu, biasanya digunakan untuk ujian dan penyahpepijatan. Mereka tidak perlu disimpan secara kekal. Ringkasnya, ad-hoc ialah "perintah segera". Modul yang biasa digunakan 1. modul arahan (modul lalai) Modul lalai tidak sekuat shell Pada asasnya, modul shell boleh menyokong fungsi modul arahan. 【1】Help ansible-doccommand# Adalah disyorkan untuk menggunakan ansible-doccomm berikut
