ExtJs4 基礎必備

2021-09-06 14:19:21 字數 4167 閱讀 6236

解壓有20多兆,別怕,真正執行的沒這麼大。認識下這個包的檔案結構吧。

1.類的命名規範

2、原始檔的命名規則

3、方法和變數的命名規則

4、屬性的命名規則

onready:只有在ext框架全部載入完後才能在客戶端的**中使用ext,而ext的onready正是用來註冊在ext框架及頁面的html**載入完後,所要執行的函式。

呼叫onready方法時可以帶三個引數, 

第乙個引數是必須的,表示要執行的函式或匿名函式,

第二引數表示函式的作用域,

第三個引數表示函式執行的一些其它特性,比如延遲多少毫秒執行等,大多數情況下只需要第乙個引數即可。 

define:建立類,可以繼承其他類,也可以被繼承

ext.onready(function

() );

//例項化類

var textclass = new

textclass();

//輸出屬性名

ext.msg.alert('類屬性', textclass.a + " " + textclass.b); //

textclass.a結果為a,textclass.b結果為b

});

ext.onready(function

() );

//建立乙個類,繼承textclass

ext.define("textclass2", )

var textclass2 = new

textclass2();

ext.msg.alert("textclass2屬性", textclass2.a + " " + textclass2.b + " " + textclass2.c) //

輸出結果為 a b c

});

create:例項化類,在extjs4中建議用create方法例項化類

ext.onready(function

() );

var textclass = ext.create("textclass")

ext.msg.alert('textclass屬性', textclass.a + ' ' + textclass.b) //

輸出結果為 a b

});

extjs物件導向 這文中有介紹。

ext.onready(function

() });

var textclass = ext.create("textclass", )

ext.msg.alert('textclass屬性', textclass.a + ' ' + textclass.b + ' ' + textclass.c) //

顯示 : a b c

});

ext.onready(function

() });

var textclass = ext.create("textclass", )

ext.msg.alert('textclass屬性', textclass.a + ' ' + textclass.b + ' ' + textclass.c) //

顯示 a b c

});

mixins:類似於物件導向中的多繼承

ext.onready(function

() );

//建立乙個類,類名:textclass,具有兩個屬性:a、b

ext.define('textclass2',

})ext.define('textclass3',

})var textclass = ext.create("textclass3")

textclass.write();

//顯示結果:a:a;b:b;c:c

});

statics

定義靜態變數

ext.onready(function

() });

//沒有例項化textclass類

ext.msg.alert('textclass類的靜態屬性c的值是:', textclass.c) //

顯示結果:c

});

config:屬性包裝器,為屬性提供get和set方法 

ext.onready(function

() ,

config:

});var textclass = ext.create('textclass');

//通過set方法設定屬性的值,注意,包裝器會把屬性的頭字母大寫

textclass.setconfigproperty("set this property's value");

//通過get方法展示屬性值

ext.msg.alert('configproperty屬性的值是:', textclass.getconfigproperty()); //

顯示結果:set this property's value

});

require:動態載入js檔案,這個頁面需要用到哪些元件,然後就預先載入,多餘不用載入的元件就不管他.提高執行速度.一般寫在指令碼開始的地方。

ext.require([

'ext.tab.*',

'ext.window.*',

'ext.tip.*',

'ext.layout.container.border']);

ext物件分為3種:htm控制項,extjs元素,extjs元件(html控制項--封裝-->extjs元素--封裝-->extjs元件)

1、ext.getdom和ext.get方法

輸入框1:

輸入框2:

輸入框3:

2、ext.getcmp方法

3、通過css語法選擇ext元件

4、up、down、child方法

up:根據css語法獲取當前元件上層的控制項,如果有多個符合條件,只返回第乙個

down:根據css語法獲取當前元件下層的控制項,如果有多個符合條件,只返回第乙個

child:根據css語法獲取當前元件下一層的控制項,如果有多個符合條件,只返回第乙個

up方法:

//

獲取屬性name為telephone的textfield元件

var t = ext.componentquery.query("textfield[name=telephone]")[0]

//獲取元件t上面的第乙個panel元件

t.up("panel");

child方法:

//

獲取屬性title為"第二個panel"的panel元件

var t = ext.componentquery.query("panel[title=第二個panel]")[0]

//獲取元件t下面一層的屬性name為「address」的textfield元件

t.child("textfield[name=address]");

down方法:

//

獲取屬性title為"第二個panel"的panel元件

var t = ext.componentquery.query("panel[title=第二個panel]")[0]

//獲取元件t下面一層的屬性name為「address」的textfield元件

//注意,用child方法時無法取到了,因為child方法只能取元件t下面一層的控制項

t.down("textfield[name=telephone]");

ExtJs4 問題總結

在用到ext grid的時候,如果後台計算量大或者返回的資料量過大導致載入資料時間超時,時間超時後會發現grid沒有資料顯示。解決的方法是把超時的時間設定大點,ext的ajax預設請求都是30秒。設定方法如下 ext.ajax.timeout 90000 一秒 1000毫秒。上面設定是把timeou...

學習Extjs4心得

其實,學習extjs4的過程中,經常的檢視api。因為一開始接觸這個,所以一開始不會檢視api,但後來玩久了,也就能夠很熟練的玩了。其實,不管事什麼開發語言還是框架,學會檢視api是我們必須要做的事 在開發過程中,最糾結的就是除錯,我用的是firefox,裡面有個firebug,是除錯js的神器,可...

EXTJS4前端優化

例如快取getelementbyid 的結果 編譯查詢表示式之類的東西,這個純看js功力。2.4 可能的話,讓使用者換個瀏覽器吧 chrome比ie的js渲染快是數量級上的差異!構造乙個40列,50行的複雜gridpanel試試,你就會深有體會了 對於企業內部的mis系統,換瀏覽器還是具有可能性的。...