DOJO 導入 基於AMD DOJO 配置 + 免費的CDN服務(不想用就下載DOJO使用本身的路徑) 例以下 java
<script> dojoConfig= { has: { "dojo-firebug": true }, parseOnLoad: false, foo: "bar", async: true }; </script> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js"></script>DOJO 配置介紹
dojoConfig 的配置文件必定要在dojo.js前面, 雖然暫時還不知道這個配置裏面有哪些東西,不過是基於requirejs的應該和 require.config({...}) 中有類似的部分 下面有待驗證 ajax
配置項: api
map: { // Instead of having to type "dojo/domReady!", we just want "ready!" instead "*": { ready: "dojo/domReady" } }那麼在引用dojo/domReady!的時候 就能夠直接使用 require(['ready!']) 替代 require(['dojo/domReady!'])
1. dojo 對象定義 數組
/** * 測試使用 類建立 */ declare("com.zsq.C1",null,{ id:null, name:null, getName:function(){ return this.name; }, constructor:function(){ // 特殊的方法 在類實例化的時候會執行該方法 } }); /** * 至關於JAVA的匿名內部類 */ var c2 = declare(null,{ id:null, name:null, getId:function(){ return this.id; } }); /** * 子類 */ var c3 = declare(c2,{ code:null, getCode:function(){ return this.code; } }); /** * 多繼承 */ var c4 = declare([c3,c2],{ type:null, getType:function(){ return this.type; } });
2. 封裝爲符合AMD規範的對象 // 其實也就是一個requirejs定義模塊包裹一下 文件路徑 my/Person.js 緩存
define(["dojo/_base/declare"], function(declare){ return declare(null, { constructor: function(name, age, residence){ this.name = name; this.age = age; this.residence = residence; } }); });
3. 對象的使用 一樣基於requirejs 經過文件路徑查找相應的JS 這個和配置有關 這個這裏不描述 dom
require(["my/Person"], function(Person){ var folk = new Person("phiggins", 42, "Tennessee"); });
能夠說是隻是使用了Dojo的類定義封裝 異步
4. 靜態對象 參照JAVA 其實所謂的靜態就是一個全局的對象 如:java 的class 定義對象 JS 也同樣 只是使用一個全局的對象來實現static async
define(['dojo/_base/declare'], function(declare){ var Demo = declare(null, { constructor: function(){ console.debug("this is Demo object #" + Demo.counter++); } }); Demo.counter = 0; return Demo; });