Inoffizielle Dokumente, organisieren Sie den Text und Beispiele Ihrer eigenen offiziellen Dokumente für die schnelle Suche.
Warum Sea.js verwenden?
Sea.js verfolgt einfache und natürliche Methoden des Schreibens und der Organisation von Code mit den folgenden Kernfunktionen:
Einfache und freundliche Moduldefinitionsspezifikation: Sea.js folgt der CMD -Spezifikation und kann Modulcode wie node.js.
Natürliche und intuitive Codeorganisation: Das automatische Laden von Abhängigkeiten und die präzise und klare Konfiguration ermöglichen es uns, mehr Codierung zu genießen.
Sea.js bietet auch gemeinsame Plugins, die für Entwicklungsdebugging und Leistungsoptimierung sehr hilfreich sind und reichhaltige Schnittstellen aufweisen.
Kompatibilität
Sea.js hat vollständige Testfälle und ist mit allen Mainstream -Browsern kompatibel:
Chrom 3+
Firefox 2+
Safari 3.2+
Opera 10+
Dh 5.5+
Sea.js kann auf der mobilen Seite laufen, einschließlich der Hybrid -Modus -App. Theoretisch können Sea.js auf jedem Browsermotor laufen.
SeaJs.ConfigObject
Alias -Objekt
Die Alias -Konfiguration können nach der Konfiguration benötigt werden, um den Anforderungen zu fordern ('jQuery').
SeaJs.config ({alias: {'jQuery': 'jQuery/jQuery/1.10.1/jQuery'}}); Define (Funktion (Anforderung, Exportieren, Modul) {// Referenz JQuery Modul var $ = required ('JQuery');});Pfadeobjekt
Stellen Sie Pfade ein, um Cross-Directory-Anrufe zu erleichtern. Indem Sie den Pfad flexibel einstellen, können Sie ein bestimmtes Verzeichnis angeben, ohne die Basis zu beeinflussen.
SeaJs.config ({// Pfade festlegen: {'Galerie': 'https://a.alipayObjects.com/Gallery'}, // Aliase setze, um Anrufe an alias zu erleichtern: {'Undercore': 'Galerie/Underscore'}}); Define (Funktion (Anforderung, Exportieren, Modul) {var _ = Request ('Underscore'); // => Die geladene ist https://a.alipayObjects.com/gallery/underscore.js});VARS -Objekt
Variablenkonfiguration. In einigen Szenarien kann der Modulpfad nur während der Laufzeit ermittelt werden, und Sie können die VARS -Variable verwenden, um ihn zu konfigurieren.
VARs werden mit dem variablen Wert im Modul -Kennung konfiguriert, und die Variable wird durch {Key} im Modul -Kennung dargestellt.
SeaJs.config ({// Variable-Konfiguration Vars: {'Locale': 'Zh-cn'}}); Define (Funktion (Anforderung, Exportieren, Modul) {var Lang = Request ('./ I18N/{Locale} .js'); // => Das geladene Pfad/TO/I18N/ZH-CN.JS});Kartenarray
Diese Konfiguration kann die Modulpfade zuordnen und ändern und für Pfadkonvertierung, Online -Debugging usw. verwendet werden.
SeaJs.config ({map: [['.js', '-debug.js']]}); Define (Funktion (Anforderung, Exportieren, Modul) {var a = require ('./ a'); // => Das geladene ist Pfad/to/a-debug.js});Vorspannungsarray
Mit dem Element der Vorspannungskonfiguration können Sie das angegebene Modul im Voraus laden und initialisieren, bevor Sie das normale Modul laden.
Die leere Zeichenfolge in der Vorspannung wird ignoriert.
// Laden Sie in alten Browsern die ES5- und JSON-Module seaJs.config ({preload: [function.prototype.bind? '': 'ES5-safe', this.json? '': 'Json']});Hinweis: Die Konfiguration in der Vorspannung muss bis zur Verwendung geladen werden. Zum Beispiel:
SeaJs.config ({Preload: 'A'}); // Vor dem Laden b wird sichergestellt, dass das Modul A SeaJs.use ('./ B') geladen und ausgeführt hat;Die Vorspannungskonfiguration kann nicht in der Moduldatei platziert werden:
SeaJs.config ({Preload: 'a'}); Define (Funktion (erfordern, exportiert) {// Bei der Ausführung hier kann nicht garantiert werden, dass das Modul a geladen und ausgeführt wurde});Debugug boolean
Wenn der Wert wahr ist, löscht der Loader das dynamisch eingefügte Skript -Tag nicht. Das Plug-In kann auch die Ausgabe von Protokoll- und anderen Informationen basierend auf der Debug-Konfiguration entscheiden.
Basiszeichenfolge
Sea.js wird den Identifikator der obersten Ebene relativ zum Basisweg analysieren.
Hinweis: Konfigurieren Sie im Allgemeinen nicht den Basispfad. SEA.js in den entsprechenden Weg zu bringen ist oft einfacher und konsistenter.
CharsetString | Funktion
Das Zeichen -Attribut des <Skript> oder <Link> beim Abrufen der Moduldatei. Der Standard ist UTF-8
Charset kann auch eine Funktion sein:
SeaJs.config ({charSet: function (url) {// Die Dateien im XXX-Verzeichnis sind in GBK-Codierung geladen, wenn (url.indexof ('http://example.com/js/xxx') === 0) {return 'gbk';} // Andere Dateien werden in utf-8 return '}) codiert;SeaJs.use -Funktion
Wird verwendet, um ein oder mehrere Module in einer Seite zu laden. SeaJs.use (ID, Rückruf?)
// laden ein Modul SeaJs.use ('./ a'); // Ein Modul laden, Callback SeaJs.use ('./ a', Funktion (a) {a.dosomethething ();}); // laden Sie mehrere Module, führen Sie die Rückruf von SeaJs.use aus (['./ a'.Hinweis: SeaJS.use hat nichts mit dem DOM -Ready -Ereignis zu tun. Wenn bestimmte Vorgänge nach DOM -Bereitschaft ausgeführt werden sollen, müssen Sie Klassenbibliotheken wie JQuery verwenden, um dies sicherzustellen. Zum Beispiel
SeaJs.use (['jQuery', './main'], function ($, main) {$ (document) .ready (function () {main.init ();});});HINWEIS: Der erste Parameter der Verwendungsmethode muss vorhanden sein, kann jedoch null oder eine Variable sein
var bootstrap = ['bootstrap.css', 'bootstrap-responsive.css', 'bootstrap.js']; SeaJs.use (Bootstrap, function () {// etwas tun});SeaJs.Cache Ojbect
Über SeaJs.cache können Sie alle Modulinformationen im aktuellen Modulsystem überprüfen.
Öffnen Sie beispielsweise SeaJs.org und geben Sie dann SeaJs.cache in die Konsolen -Panel von Webkit Developer Tools ein, und Sie können sehen:
Objekt> http://seajs.org/docs/assets/main.js: x> https:/a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js: x> __Proto__: Objekt
Dies sind die Module, die auf der Startseite des Dokuments verwendet werden. Erweitern Sie ein Element, um die spezifischen Informationen des Moduls anzuzeigen. Die Bedeutung ist im Modulabschnitt der Definitionsspezifikation des CMD -Moduls zu finden.
SeaJs.Reslove -Funktion
Ähnlich wie bei Bedarf.Resolve wird der interne Mechanismus des Modulsystems die Pfadauflösung der eingehenden Stringparameter verwendet.
SeaJs.resolve ('JQuery'); // => http: //path/to/jquery.jsseajs.resolve ('./a', 'http://example.com/to/b.js');// => http://example.com/to/a.js.jsDie SeaJS.-Resolve-Methode kann nicht nur zum Debuggen verwendet werden, ob die Pfadauflösung korrekt ist, sondern auch in der Plug-in-Entwicklungsumgebung.
SeaJs.data -Objekt
Über SeaJs.data können Sie alle SeJS-Konfigurationen und die Werte einiger interner Variablen anzeigen, die für die Plug-in-Entwicklung verwendet werden können. Es kann auch zum Debuggen verwendet werden, wenn Ladungsprobleme auftreten.
Häufig gestellte Fragen
Über Modulidentifikation
SeaJS -Modul -Identifikatoren sind hauptsächlich kleine Kamelschnüre ,. oder ..
// In der Fabrik von http://example.com/js/a.js: Request.resolve ('./ B'); // => http://example.com/js/b.js// in der Fabrik von http://example.com/js/a.js: required.resolve ('../ c'); // => http://example.com/c.jsEs ist in relative und oberste Logos unterteilt. Wenn es beginnt mit. oder. Es ist eine relative Kennung. Der kleine Kamel-Saitenschalter ist der identifizierende oberste Ebene.
// Angenommen, der Basispfad lautet: http://example.com/assets/// im Modulcode: required.resolve ('Galerie/jQuery/1.9.1/jQuery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.jsÜber den Weg
SEAJs können nicht nur eine relativ hohe Identifizierung sind, sondern auch normale Pfade zum Ladenmodulen verwenden.
Gehen wir zur Skriptanalyse der aktuellen Seite (Sie können mit der rechten Maustaste klicken, um den Quellcode anzuzeigen).
//The path of sea.js, that is, the base path, is relative to the current page <script src="http://yslove.net/actjs/assets/sea-modules/seajs/2.1.1/sj.js"></script><script type="text/javascript">//Configure Seajsseajs.config({ alias: { // Identifikation mit Top-Level, basierend auf Basispfad 'Actjs': 'Actjs/Core/0.0.7/core.js', // => http: // 'Position': 'actjs/util/0.0.2/Position.js'}}); SeaJs.config ({// // normale Path, Relative Path, Relative Path 'Affix': '.Am Anfang habe ich das Gefühl, dass der SeaJS -Pfad ein bisschen ungewohnt ist, weil er der Grundweg ist. Denken Sie daran, dass der Basispfad der obere Pfad der Datei in see.js ist und dann alle Identifikatoren und relativen Kennungen auf oberster Ebene relativ zu dieser Basis angepasst werden.