Ext JS 4即將正式發(fā)布 值得期待
Ext JS是一個針對Web的UI庫。它是市場上的輕量級工具,它通過抽象,支持開發(fā)人員不必強制性地編寫HTML的源代碼,而且允許開發(fā)人員靈活的擴展組件庫或者通過簡單強大的插件架構(gòu)創(chuàng)建真實的插件。Ext JS解決了管理HTML和CSS的問題,提供了媲美桌面應(yīng)用的UI外觀。它支持開發(fā)人員在現(xiàn)有HTML網(wǎng)頁中注入組件或者開發(fā)富企業(yè)級RIA,其中一些應(yīng)用于關(guān)鍵任務(wù)應(yīng)用,如實時監(jiān)控和網(wǎng)絡(luò)基礎(chǔ)設(shè)施的管理。
Ext JS 4從推出***個預(yù)覽版之后,一直處于緊張的開發(fā)之中。昨天,其官方博客表示,Ext JS 4的正式版預(yù)計將在一個月之后發(fā)布,這對Web開發(fā)社區(qū)特別是RIA開發(fā)人員來說無疑是個好消息。此刻,讓我們回顧一下Ext JS 4在預(yù)覽版中的優(yōu)秀特性和功能。
***的Ext JS 4預(yù)覽版4發(fā)布了一個新的元素——Grid組件,該組件在4.0中完全重寫,因此比3.x版本提供了更多功能,性能和靈活性大幅度提高,因此擴展更加容易。新版Grid組件的主要優(yōu)點包括:
智能渲染
在Ext JS 3中,Grid組件為了運行良好,總是生成Grid功能所需的全部標(biāo)記,在大多數(shù)情況下,過于繁重了。而在Ext JS 4中,默認的Grid只包含了輕量級的標(biāo)記,在開發(fā)人員選擇其他特性時,對應(yīng)的標(biāo)記才會渲染。這對于頁面渲染速度和整體的Grid性能都是極大的提高。
標(biāo)準(zhǔn)布局
依靠更智能的渲染通道(pipeline),新Grid的許多部分都被劃分成適當(dāng)?shù)腃omponent并集成到標(biāo)準(zhǔn)的布局管理系統(tǒng),而不是依賴定制的內(nèi)部標(biāo)記和CSS。這樣既統(tǒng)一了Grid的渲染過程,又維持了出色的像素UI體驗。
數(shù)據(jù)視圖(DateView)
Ext JS 4中的GridView擴展了標(biāo)準(zhǔn)DataView類,不僅簡化了內(nèi)部代碼,而且使新Grid易于定制。因為它擴展了DataView,所以新Grid可以像其他視圖一樣利用選擇模式,包括通過鍵盤導(dǎo)航做非連續(xù)選擇。
功能支持
在Ext JS 3中,沒有統(tǒng)一的策略來添加Grid的功能。許多功能作為插件添加,而另一些以子類的形式,這導(dǎo)致難以組合這些功能。Ext JS 4包含了一個基礎(chǔ)類Ext.grid.Feature,可以此創(chuàng)建靈活的功能。底層的Grid模板可以被Feature類修改以配合視圖生成的標(biāo)記。
虛擬滾動
Ext JS 4的Grid原生支持在渲染時緩存數(shù)據(jù),提供數(shù)據(jù)的虛擬、按需加載的視圖。Grid現(xiàn)在可以輕松支持成百上千的記錄,而無需分頁,相比Ext JS 3來說是巨大的改進。
除此之外,Ext JS 4在繪圖方面也是一大亮點,其引入了全新的繪圖引擎哇,不再依賴于Flash,全部使用JavaSCript,支持DOM方法訪問。Ext JS 4允許客戶設(shè)計、開發(fā)非常炫目的圖表,號稱其他框架無法提供如此復(fù)雜的數(shù)據(jù)顯示方法。感興趣的讀者可以瀏覽在線示例。
《ExtJS in Action》的作者Jesus Garcia在接受InfoQ專訪時表示,Ext JS遵循的組件(Component)和容器(Container)模型是它比其他Ajax庫更具特色的主要原因:
組件和容器模型(還有其他特點)使Ext JS在其他同類Ajax庫中別具一格,因為它們使庫的UI部分結(jié)構(gòu)化。沒有它,Ext JS不會這么與眾不同。
組件模型為框架引入了“組件生命周期”,為組件帶來了一套定義良好和可靠的行為。它分為三個階段,初始化(Initialization)、渲染(Render)和銷毀(Destruction)。初始化指組件新實例的初始化時刻。渲染階段指組件被渲染或者繪制到屏幕上的時候。***,銷毀階段支持組件執(zhí)行清理任務(wù),如所有注入的HTML節(jié)點的刪除和清除事件監(jiān)聽器。
容器模型支持組件通過父子關(guān)系模式來管理其他模型。通過容器模型,開發(fā)人員可以輕松地創(chuàng)建動態(tài)UI——利用它的add()或者remove()來添加或者刪除一個或幾個子元素。為了管理子元素的視覺組織,容器使用了布局(Layout)。
Jesus在數(shù)個大公司部署過基于Ext JS的應(yīng)用,如萬豪國際、洛克希德馬丁、摩根大通和美國金融監(jiān)管局,他以自己的實踐經(jīng)驗告訴大家,Ext JS適合的應(yīng)用領(lǐng)域很廣:
我通常使用Ext JS為許多客戶開發(fā)應(yīng)用。我最近一個任務(wù)是為客戶開發(fā)界面管理成員信息。因為Ext JS功能齊全,所以我可以利用它開發(fā)各種應(yīng)用,比如定制UI從IBM的Tivoli Enterprise Console和HP Universal CMDB中合并數(shù)據(jù)、為EMC的Documentum產(chǎn)品開發(fā)前端界面。我已經(jīng)開發(fā)了幾個應(yīng)用來幫助公司制定考核內(nèi)容。
開發(fā)人員可以充分利用Ext JS來開發(fā)RIA中所需的功能。這幾年,我已經(jīng)看到了各種各樣的應(yīng)用,大部分是基于業(yè)務(wù)的。
Ext JS本身不是為移動web應(yīng)用而定制的,但是它的兄弟Sencha Touch是。我已經(jīng)看到并且實驗了在iPad上運行有限功能的Ext JS應(yīng)用。它不支持觸摸功能,而且UI主題不是以移動為中心的。
預(yù)覽版下載:http://www.sencha.com/products/extjs4-preview/download/ext-js-4-developer-preview-4
【編輯推薦】