當前位置:首頁 » 網頁前端 » extjs前端頁面模板
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

extjs前端頁面模板

發布時間: 2022-09-08 14:44:37

Ⅰ 關於後端程序員寫前端用什麼框架更好

各大前端框架可以按照「封裝度」的標准來區分。 設計剛出的一套網頁皮膚,封裝度為0。層層封裝到可以直接用後台語言寫頁面,封裝度為10。那麼我是這樣來區分前端框架的。
1級——純html+css 放5年前,基本就是用Dreamweaver剛排出來的頁面或者網頁查看源代碼扒下來的皮膚。不涉及到js,就是純頁麵皮膚。
2級—— bootstrap系列 bootstrap的出現是一個里程碑事件。發源於twitter,引入了不少html5/css3的特性。由於它對響應式的支持以及良好的體驗,給人一種耳目一新的感覺。其源碼,不管是css還是js都值得學習一下,看後經常會有「原來還可以這樣做」這種恍然大悟的感覺。不過歸根結底是一套ui皮膚+少量js組成的框架,屬於封裝度偏低的框架。
3~4級—— metronic/adminLTE系列 基於bootstrap或者其他1級框架,然後集成了各種jQuery插件、富文本編輯器等js庫,組成的一個大雜燴工具包和案例庫。皮膚基本是基於bootstrap自定義的一套主題。案例比較詳盡,開發的時候找到需要的組件把前端代碼復制粘貼,再稍微調試一下就能達到良好的視覺效果。根據集成的第三方庫的多少,基本可以劃分到3~4級封裝度這樣的范圍。這個級別的框架的代碼更多的是屬於粘合劑,將各種不同的第三方庫的前端代碼粘合起來。
5級—— jQuery-ui 這里要單獨把jQuery-ui拿出來講,並不是因為它的封裝度有多高,而是我認為它是一個分界點。jQuery以下級別的框架,代碼以css為主,自身的js代碼少,框架量級更輕,更靈活,更適合互聯網web產品。jQuery以上級別的框架,屬於前端的重度封裝,通過框架暴露的介面進行開發,開發人員甚至不需要太多前端知識,只需要詳細查看框架的開發文檔即可。jQuery以上級別的框架更適合傳統管理軟體的開發。
6~7級—— easy-ui/DWZ easy-ui基於jQuery-ui,不過具有更豐富的組件庫。貌似商業版收費很高。聽說某大型國企花了大價錢購買下來使用。DWZ是國產框架中我認為綜合表現還不錯的,完全免費,有問題可以在他們的QQ群里提。其餘的之前還用過金蝶的operamasks-ui,不過現在好像已經不更新了。這一類級別的框架還有一個另外的稱呼——「富客戶端框架」,意思就是重度js框架。使用起來開發效率很高,當年也是一度百花齊放,框架輩出。
8級—— extjs系列 extjs屬於前端框架領域中的龐然大物,封裝程度很高,具有自成體系的元素選擇引擎和瀏覽器兼容方案,js寫法上也有自己的方式。組件很多很全。只看extjs的官方文檔和示例幾乎不必學習任何其他的前端知識就可以做出「很漂亮」的前端頁面。當然頁面很容易「撞衫」。使用時間長了,會對其產生嚴重依賴,離開extjs,幾乎不會寫前端頁面了。
9級——vaadin/GWT 最後一級,也是封裝度最高的一級,也就是所謂的使用後台語言寫前端。如果說之前的八級至少前端和後端還是相對分離的,後台程序在java中寫,前台程序在html或者js中寫;那麼這一級別的框架簡直會顛覆你的認知!只需在後台使用java寫好了類和對象,並設置好相關的屬性,網頁的元素是自動通過後台對象生成的。這當然有好處,媽媽再也不用擔心我不會寫js和css了。然而就學一下html/css/js真的那麼難嗎?個人認為,盡管GWT有google的這么強悍的背書,但是這種9級封裝的本質上把前後台耦合得更緊密。一個人做一個項目還可以考慮,但是一個團隊前後台分離、模塊化開發的時候,使用這種框架是一種災難!所以我是極度不建議使用9級封裝框架的。

Ⅱ extjs怎樣載入一個word模板

太高深了-------愛莫能助

Ⅲ 向各位大蝦請教~~Extjs 在面板panel中顯示一個屬性template,在屬性列中有「\r\n」直接顯示出來,不換行。

把 xtype : 'textarea' 屬性按成可以解讀html語言的 xtype : 'htmleditor' 試試.

Ⅳ web前端開發框架有哪些

常見的web前端開發框架如下:

1、Bootstrap:

主流框架之一,Bootstrap 是基於 HTML、CSS、JavaScript的,它簡潔靈活,使得 Web 開發更加快捷。

2、html5-boilerplate:

該框架可以快速構建健壯,且適應力強的web app或網站。

3、Meteor:

Meteor是新一代的開發即時web應用的開源框架,它能在較短時間內完成開發。

4、Materialize:

基於材料設計的現代化響應式前端框架。可提供默認的樣式,自定義組件。此外,Materialize還改進動畫和過渡,為開發人員提供流暢的體驗。

5、Amaze UI:

國內首個開源HTML5跨屏前端框架產品系列,中文排版支持更優、本土化組件豐富。該產品系列中有專門針對移動端的HTML5混合應用開發框架Amaze UI Touch以及針對跨屏HTML5網頁開發的Amaze UI Web。

(4)extjs前端頁面模板擴展閱讀:

web框架程序的作用:

Web框架使得在進行Web應用開發的時候,減少了工作量。Web框架主要用於動態網路開發,動態網路主要是指現在的主要的頁面,可以實現數據的交互和業務功能的完善。

使用Web框架進行Web開發的時候,在進行數據緩存資料庫訪問、數據安全校驗等方面,不需要自己再重新實現,而是將業務邏輯相關的代碼寫入框架就可以。也就是說,通過對Web框架進行主觀上的「縫縫補補」,就可以實現自己進行Web開發的需求了。

以PHP為例,PHP可以在apache伺服器上進行Web開發,而不必使用框架。使用PHP進行開的時候,在不適用框架的情況下,資料庫連接就需要自己來實現,頁面的生成和顯示也是一樣。比如框架的話可以完成避免sql注入的工作,而使用PHP在不用框架的情況下,這部分要自己做。

參考資料來源:網路-前端開發

Ⅳ Web工程師你知道如何構建單頁Web應用嗎

今天小編要跟大家分享的文章是關於Web工程師你知道如何構建單頁Web應用嗎?正在從事web相關工作的小夥伴們你們是否知道什麼是單頁面應用,是否知道該如何構建單頁面web應用?下面
就來和小編一起來看一看吧!

首先我們來看一看單頁應用是什麼?


所謂單頁應用,指的是在一個頁面上集成多種功能,甚至整個系統就只有一個頁面,所有的業務功能都是它的子模塊,通過特定的方式掛接到主界面上。它是AJAX技術的進一步升華,把AJAX的無刷新機制發揮到極致,因此能造就與桌面程序媲美的流暢用戶體驗。


其實單頁應用我們並不陌生,很多人寫過ExtJS的項目,用它實現的系統,很天然的就已經是單頁的了,也有人用jQuery或者其他框架實現過類似的東西。用各種JS框架,甚至不用框架,都是可以實現單頁應用的,它只是一種理念。有些框架適用於開發這種系統,如果使用它們,可以得到很多便利。


一、開發框架


ExtJS可以稱為第一代單頁應用框架的典型,它封裝了各種UI組件,用戶主要使用JavaScript來完成整個前端部分,甚至包括布局。隨著功能逐漸增加,ExtJS的體積也逐漸增大,即使用於內部系統的開發,有時候也顯得笨重了,更不用說開發以上這類運行在互聯網上的系統。


jQuery由於偏重DOM操作,它的插件體系又比較鬆散,所以比ExtJS這個體系更適合開發在公網運行的單頁系統,整個解決方案會相對比較輕量、靈活。


但由於jQuery主要面向上層操作,它對代碼的組織是缺乏約束的。如何在代碼急劇膨脹的情況下控制每個模塊的內聚性,並且適當在模塊之間產生數據傳遞與共享,就成為了一種有挑戰的事情。


為了解決單頁應用規模增大時候的代碼邏輯問題,出現了不少MV*框架,他們的基本思路都是在JS層創建模塊分層和通信機制。有的是MVC,有的是MVP,有的是MVVM,而且,它們幾乎都在這些模式上產生了變異,以適應前端開發的特點。


這類框架包括Backbone,Knockout,AngularJS,Avalon等。


二、組件化


這些在前端做分層的框架推動了代碼的組件化,所謂組件化,在傳統的Web產品中,更多的指UI組件,但其實組件是一個廣泛概念,傳統Web產品中UI組件佔比高的原因是它的厚度不足,隨著客戶端代碼比例的增加,相當一部分的業務邏輯也前端化,由此催生了很多非界面型組件的出現。


分層帶來的一個優勢是,每層的職責更專一了,由此,可以對其作單元測試的覆蓋,以保證其質量。傳統UI層測試最頭疼的問題是UI層和邏輯混雜在一起,比如往往會在遠程請求的回調中更改DOM,當引入分層之後,這些東西都可以分別被測試,然後再通過場景測試來保證整體流程。


三、代碼隔離


與開發傳統頁面型網站相比,實現單頁應用的過程中,有一些比較值得特別關注的點。


從單頁應用的特點來看,它比頁面型網站更加依賴於JavaScript,而由於頁面的單頁化,各種子功能的JavaScript代碼聚集到了同一個作用域,所以代碼的隔離、模塊化變得很重要。


在單頁應用中,頁面模板的使用是很普遍的。很多框架內置了特定的模板,也有的框架需要引入第三方的模板。這種模板是界面片段,我們可以把它們類比成JavaScript模塊,它們是另一種類型的組件。


模板也一樣有隔離的需要。不隔離模板,會造成什麼問題呢?模板間的沖突主要存在於id屬性上,如果一個模板中包含固定的id,當它被批量渲染的時候,會造成同一個頁面的作用域中出現多個相同id的元素,產生不可預測的後果。因此,我們需要在模板中避免使用id,如果有對DOM的訪問需求,應當通過其他選擇器來完成。如果一個單頁應用的組件化程度非常高,很可能整個應用中都沒有元素id的使用。


四、代碼合並與載入策略


人們對於單頁系統的載入時間容忍度與Web頁面不同,如果說他們願意為購物頁面的載入等待3秒,有可能會願意為單頁應用的首次載入等待5-10秒,但在此之後,各種功能的使用應當都比較流暢,所有子功能頁面盡量要在1-2秒時間內切換成功,否則他們就會感覺這個系統很慢。


從這些特點來看,我們可以把更多的公共功能放到首次載入,以減小每次載入的載入量,有一些站點甚至把所有的界面和邏輯全部放到首頁載入,每次業務界面切換的時候,只產生數據請求,因此它的響應是非常迅速的,比如青雲的控制台就是這么做的。


通常在單頁應用中,無需像網站型產品一樣,為了防止文件載入阻塞渲染,把js放到html後面載入,因為它的界面基本都是動態生成的。


當切換功能的時候,除了產生數據請求,還需要渲染界面,這個新渲染的界面部件一般是界面模板,它從哪裡來呢?來源無非是兩種,一種是即時請求,像請求數據那樣通過AJAX獲取過來,另一種是內置於主界面的某些位置,比如script標簽或者不可見的textarea中,後者在切換功能的時候速度有優勢,但是加重了主頁面的負擔。


在傳統的頁面型網站中,頁面之間是互相隔離的,因此,如果在頁面間存在可復用的代碼,一般是提取成單獨的文件,並且可能會需要按照每個頁面的需求去進行合並。


單頁應用中,如果總的代碼量不大,可以整體打包一次在首頁載入,如果大到一定規模,再作運行時載入,載入的粒度可以搞得比較大,不同的塊之間沒有重復部分。


五、路由與狀態的管理


我們最開始看到的幾個在線應用,有的是對路由作了管理的,有的沒有。


管理路由的目的是什麼呢?是為了能減少用戶的導航成本。比如說我們有一個功能,經歷過多次導航菜單的點擊,才呈現出來。


如果用戶想要把這個功能地址分享給別人,他怎麼才能做到呢?


傳統的頁面型產品是不存在這個問題的,因為它就是以頁面為單位的,也有的時候,服務端路由處理了這一切。


但是在單頁應用中,這成為了問題,因為我們只有一個頁面,界面上的各種功能區塊是動態生成的。所以我們要通過對路由的管理,來實現這樣的功能。


具體的做法就是把產品功能劃分為若干狀態,每個狀態映射到相應的路由,然後通過pushState這樣的機制,動態解析路由,使之與功能界面匹配。


有了路由之後,我們的單頁面產品就可以前進後退,就像是在不同頁面之間一樣。


其實在Web產品之外,早就有了管理路由的技術方案,Adobe
Flex中,就會把比如TabNavigator,甚至下拉框的選中狀態對應到url上,因為它也是單「頁面」的產品模式,需要面對同樣的問題。


當產品狀態復雜到一定程度的時候,路由又變得很難應用了,因為狀態的管理極其麻煩,比如開始的時候我們演示的c9.io在線IDE,它就沒法把狀態對應到url上。


六、緩存與本地存儲


在單頁應用的運作機制中,緩存是一個很重要的環節。


由於這類系統的前端部分幾乎全是靜態文件,所以它能夠有機會利用瀏覽器的緩存機制,而比如動態載入的界面模板,也完全可以做一些自定義的緩存機制,在非首次的請求中直接取緩存的版本,以加快載入速度。


甚至,也出現了一些方案,在動態載入JavaScript代碼的同時,把它們也緩存起來。比如Addy
Osmani的這個basket.js,就利用了HTML5localStorage作了js和css文件的緩存。


在單頁產品中,業務代碼也常常會需要跟本地存儲打交道,存儲一些臨時數據,可以使用localStorage或者localStorageDB來簡化自己的業務代碼。


七、服務端通信


傳統的Web產品通常使用JSONP或者AJAX這樣的方式與服務端通信,但在單頁Web應用中,有很大一部分採用WebSocket這樣的實時通訊方式。


WebSocket與傳統基於HTTP的通信機制相比,有很大的優勢。它可以讓服務端很便利地使用反向推送,前端只響應確實產生業務數據的事件,減少一遍又一遍無意義的AJAX輪詢。


由於WebSocket只在比較先進的瀏覽器上被支持,有一些庫提供了在不同瀏覽器中的兼容方案,比如socket.io,它在不支持WebSocket的瀏覽器上會降級成使用AJAX或JSONP等方式,對業務代碼完全透明、兼容。


八、內存管理


傳統的Web頁面一般是不需要考慮內存的管理的,因為用戶的停留時間相對少,即使出現內存泄漏,可能很快就被刷新頁面之類的操作沖掉了,但單頁應用是不同的,它的用戶很可能會把它開一整天,因此,我們需要對其中的DOM操作、網路連接等部分格外小心。


九、樣式的規劃


在單頁應用中,因為頁面的集成度高,所有頁面聚集到同一作用域,樣式的規劃也變得重要了。


樣式規劃主要是幾個方面:


1、基準樣式的分離


這裡面主要包括瀏覽器樣式的重設、全局字體的設置、布局的基本約定和響應式支持。


2、組件樣式的劃分


這裡面是兩個層面的規劃,首先是各種界面組件及其子元素的樣式,其次是一些修飾樣式。組件樣式應當盡量減少互相依賴,各組件的樣式允許冗餘。


3、堆疊次序的管理


傳統Web頁面的特點是元素多,但是層次少,單頁應用會有些不同。


在單頁應用中,需要提前為各種UI組件規劃堆疊次序,也就是z-index,比如說,我們可能會有各種彈出對話框,浮動層,它們可能組合成各種堆疊狀態。新的對話框的z-index需要比舊的高,才能確保蓋在它上面。諸如此類,都需要我們對這些可能的遮蓋作規劃,那麼,怎樣去規劃呢?


了解通信知識的人,應當會知道,不同的頻率段被劃分給不同的通信方式使用,在一些國家,領空的使用也是有劃分的,我們也可以用同樣的方式來預先分段,不同類型的組件的z-index落到各自的區間,以避免它們的沖突。


十、單頁應用的產品形態


我們在開始的時候提到,存在著很多新型Web產品,使用單頁應用的方式構建,但實際上,這類產品不僅僅存在於Web上。點開Chrome商店,我們會發現很多離線應用,這些產品都可以算是單頁應用的體現。


除了各種瀏覽器插件,藉助node-webkit這樣的外殼平台,我們可以使用Web技術來構建本地應用,產品的主要部分仍然是我們熟悉的單頁應用。


單頁應用的流行程度正在逐漸增加,大家如果關注了一些初創型互聯網企業,會發現其中很大一部分的產品模式是單頁化的。這種模式能帶給用戶流暢的體驗,在開發階段,對JavaScript技能水平要求較高。


單頁應用開發過程中,前後端是天然分離的,雙方以API為分界。前端作為服務的消費者,後端作為服務的提供者。


在此模式下,前端將會推動後端的服務化。當後端不再承擔模板渲染、輸出頁面這樣工作的情況下,它可以更專注於所提供的API的實現,而在這樣的情況下,Web前端與各種移動終端的地位對等,也逐漸使得後端API不必再為每個端作差異化設計了。


十一、部署模式的改變


在現在這個時代,我們已經可以看到一種產品的出現了,那就是「無後端」的Web應用。這是一種什麼東西呢?基於這種理念,你的產品很可能只需要自己編寫靜態Web頁面,在某種BaaS(Backend
asa
Service)雲平台上定製服務端API和雲存儲,集成這個平台提供的SDK,通過AJAX等方式與之打交道,實現注冊認證、社交、消息推送、實時通信、雲存儲等功能。


我們觀察一下這種模式,會發現前後端的部署已經完全分離了,前端代碼完全靜態化,這意味著可以把它們放置到CDN上,訪問將大大地加速,而服務端託管在BaaS雲上,開發者也不必去關注一些部署方面的繁瑣細節。


假設你是一名創業者,正在做的是一種實時協同的單頁產品,可以在雲平台上,快速定製後端服務,把絕大部分寶貴的時間花在開發產品本身上。


十二、單頁應用的缺陷


單頁應用最根本的缺陷就是不利於SEO,因為界面的絕大部分都是動態生成的,所以搜索引擎很不容易索引它。


十三、產品單頁化帶來的挑戰


一個產品想要單頁化,首先是它必須適合單頁的形態。其次,在這個過程中,對開發模式會產生一些變更,對開發技能也會有一些要求。


開發者的JavaScript技能必須過關,同時需要對組件化、設計模式有所認識,他所面對的不再是一個簡單的頁面,而是一個運行在瀏覽器環境中的桌面軟體。


以上就是小編今天為大家分享的關於Web工程師你知道如何構建單頁Web應用嗎?的文章,希望本篇文章能夠對正從事web前端工作的小夥伴們有所幫助。相信通過本篇文章的介紹大家已經對如何構建單頁面web應用有所了解了,想要了解更多web相關知識記得關注北大青鳥web培訓官網哦!


來源:https://github.com/xufei/blog/issues/5


*聲明:內容與圖片均來源於網路(部分內容有修改),版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

Ⅵ ExtJS是什麼,一位學長說的,對這個從未聽說

1.extja是什麼?
答: ExtJS是一種主要用於創建前端用戶界面,是一個與後台技術無關的前端ajax框架。
功能豐富,無人能出其右
無論是界面之美,還是功能之強,ext的表格控制項都高居榜首。
單選行,多選行,高亮顯示選中的行,推拽改變列寬度,按列排序,這些基本功能咱們就不提了。
自動生成行號,支持checkbox全選,動態選擇顯示哪些列,支持本地以及遠程分頁,可以對單元格按照自己的想法進行渲染,這些也算可以想到的功能。
再加上可編輯grid,添加新行,刪除一或多行,提示臟數據,推拽改變grid大小,grid之間推拽一或多行,甚至可以在tree和grid之間進行拖拽,啊,這些功能實在太神奇了。更令人驚嘆的是,這些功能竟然都在ext表格控制項里實現了。
呵呵~不過ext也不是萬能的,與fins的ecside比較,ext不能鎖定列(土豆說1.x里支持鎖定列,但是2.0里沒有了,因為影響效率。),也沒有默認的統計功能,也不支持excel,pdf等導出數據。另外fins說,通過測試ecside的效率明顯優於ext呢。:)
[編輯本段]Ext發展史
1、第一隻「出海」的YUI-Ext只是作者Jack打算對基於BSD協議的Yahoo!UI庫進行自定義的擴展,但後來一度風頭蓋過其父輩YUI,足以說明 大家對它的熱情,很多人把它投入項目人並不十分了解它。分析人士打了一比喻:就好比尚未謀面, 並不了解一個人的家庭、教育、品行等背景,只因為他有一副精緻漂亮的外觀,就對其陷入了瘋狂的傾慕之中。因此分析人士建議,在投入項目前,要認真仔細地了 解EXT的內在原理和與其他Ajax庫不同地方。
2、在2006年初 ,Jack Slocum(傑克斯·洛克姆 ) 就一套公用設施擴建為Yahoo! User Interface (YUI) 庫而工作。這些擴展很快組織成一個獨立的庫代碼並以」 yui-ext」 的名義下發布。
3、在2006年秋天,Jack發行了版本為0.33的yui-ext,而最終被證明為最後版本的代碼,根據這名字(下開放源代碼DSB許可)。在年底之前,這個庫已大受歡迎, 名字被簡化為Ext,反映了它作為一個框架的成熟和獨立。
該公司成立於2007年初,Ext現在為雙執照,使用LGPL和一個商業執照。
4、在2007年4月1日,發布1.0正式版。
5、直至今日(2008年4月1日)ExtJS已發展涵蓋美國、日本、中國、法國、德國等全球范圍的用戶,現在的版本為Ext-3.0
6、官方在2009年4月14-16日的首次Ext Conference中發布了Ext的3.0 RC版本。
7、2009年5月4日,Ext的3.0 版本發布。
[編輯本段]什麼是EXT
1、ExtJS可以用來開發RIA也即富客戶端的AJAX應用,是一個用javascript寫的,主要用於創建前端用戶界面,是一個與後台技術無關的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發語言開發的應用中。ExtJs最開始基於YUI技術,由開發人員JackSlocum開發,通過參考JavaSwing等機制來組織可視化組件,無論從UI界面上CSS樣式的應用,到數據解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術的精品。
2、Ext的UI組件模型和開發理念脫胎、成型於Yahoo組件庫YUI和Java平台上Swing兩者,並為開發者屏蔽了大量跨瀏覽器方面的處理。相對來說,EXT要比開發者直接針對DOM、W3C對象模型開發UI組件輕松。
[編輯本段]ExtJs UI Engine簡介
ExtJs初期僅是對Yahoo! UI的對話框擴展,後來逐漸有了自己的特色,深受網友的喜愛。 發展至今, Ext除YUI外還支持Jquery、Prototype等的多種JS底層庫,讓大家自由地選擇。該框架完全基於純Html/CSS+JS技術,提供豐富的跨瀏覽器UI組件,靈活採用JSON/XML數據源開發,使得服務端表示層的負荷真正減輕,從而達到客戶端的MVC應用!
ExtJs支持多平台下的主流瀏覽器 Internet Explorer 6+ FireFox 1.5+ (PC, Mac) Safari2+、Opera9+。在使用的廠家包括IBM、Adobe、Cisco和更多。ExtJs官方網站www.extjs.com
[編輯本段]Ajax主流框架與ExtJS
JQuery、 Prototype和YUI都屬於非常核心的JS庫。雖然YUI,還有最近的JQuery,都給自己構建了一系列的UI器件(Widget),不過卻沒有一個真正的整合好的和完整的程序開發平台。哪怕是這些低層的核心庫已經非常不錯了,但當投入到真正的開發環境中,依然需要開發者做大量的工作去完善很多缺失之處。而Ext就是要填補這些缺口。主流開源框架中只有Dojo像Ext一樣,嘗試著提供整合的開發平台。相比Dojo這個出色的工具包,我們認為 Ext能提供一個粘合度更高的應用程序框架。Ext的各個組件在設計之時就要求和其它Ext組件組合一起工作是無縫合作的。這種流暢的互通性,離不開一個緊密合作的團隊,還必須時刻強調設計和開發這兩方面目標上的統一,而這點是很多開源項目未能做到的。從構建每一個組件開始,我們始終都強調組件的外觀、性能、互通性和可擴展性,而我們認為組件已經達到了這幾點的要求。
Ext絕對可以單獨使用。實際上,除了有特定的要求,推薦單獨使用Ext,這樣的話文件佔位更小,支持和整合也更緊密。我們也支持與jQuery、 YUI或Prototype整合使用,作為低層庫的角色出現,以提供處理各種核心的服務,如DOM和事件處理,Ajax連接和動畫特效。使用整合方式的一個原因是它們已具備了一些特定的器件而Ext並沒有原生支持——像YUI的History控制項便是一個典型的例子。這時,Ext需要依賴YUI這個庫的底層來實現History控制項,這樣一來的話也可免去Ext自身底層庫,從而減少了整個程序的內存佔用。另一個使用整合方式的原因是,對於許多已在使用其他底層庫的程序,你可能希望逐步加入Ext。總之,如果已經有了其他庫,Ext可已利用它們。我們的宗旨是為用戶提供各種可能性和性能上的優化。而事實是,只要實現了相對應的底層庫介面,為任意一個框架添加上適配器是沒有問題的——人們可以輕松地將Dojo、Moo、Ajax.NET,或其它JS庫轉變為 Ext的底層。
Ext從2.x開始收費,這給他的應用前景帶來一些問題。不過對國內開發人員的影響不大,畢竟是客戶付款。
[編輯本段]Ext學習及應用經驗小結
一、理解Html DOM、Ext Element及Component
要學習及應用好Ext框架,需要理解Html DOM、Ext Element及Component三者的區別。
Ext是基於Web的富客戶端框架,其完全是基於標准W3C技術構建設的,使用到的都是HTML、CSS、DIV等相關技術。Ext最傑出之處,是開發了一系列非常簡單易用的控制項及組件,我們只需要使用這些組件就能實現各種豐富多彩的UI的開發。
無論組件有多少配置屬性、還是事件、方法等等,其最終都會轉化為HTML在瀏覽器上顯示出來,而每一個HTML頁面都有一個層次分明的DOM樹模型,瀏覽器中的所有內容都有相應的DOM對象,動態改變頁面的內容,正是通過使用腳本語言來操作DOM對象實現。
僅僅有DOM是不夠的,比如要把頁面中的某一個節點移到其它位置,要給某一個節點添加陰影效果,要隱藏或顯示某一個節點等,我們都需要通過幾句 javascript才能完成。因此,Ext在DOM的基礎上,創建了Ext Element,可以使用Element來包裝任何DOM,Element對象中添加了一系列快捷、簡便的實用方法。
對於終端用戶來說,僅僅有Element是不夠的,比如用戶要顯示一個表格、要顯示一棵樹、要顯示一個彈出窗口等。因此,除了Element以外,Ext 還建立了一系列的客戶端界面組件Component,我們在編程時,只要使用這些組件Componet即可實現相關數據展示及交互等,而 Component是較高層次的抽象,每一個組件在渲染render的時候,都會依次通過Element、DOM來生成最終的頁面效果。
在使用Ext開發的應用程序中,組件Component是最高層次的抽象,是直接給用戶使用的,Ext Element是Ext的底層API,主要是由Ext或自定義組件調用的,而DOM是W3C標準定義的原始API,Ext的Element通過操作DOM 來實現頁面的效果顯示。
在Ext中,組件渲染以後可以通過訪問組件的el屬性來得到組件對應的Element,通過訪問Element的dom屬性可以得到其下面的DOM對象。另外,我們可以通過通過Ext類的快捷方法getCmp、get、getDom等方法來得組件Component、Ext元素Element及DOM節點。比如:
var view=new Ext.Viewport();//創建了一個組件Component
view.el.setOpacity(.5);//調用Element的setOpacity方法
view.el.dom.innerHTML="Hello Ext";//通過Element的dom屬性操作DOM對象
再看下面的代碼:
var win=new Ext.Window({id:"win1",title:"我的窗口",width:200,height:200});
win.show();
var c=Ext.getCmp("win1");//得到組件win
var e=Ext.get("win1");//根據id得到組件win相應的Element
var dom=Ext.getDom("win1");//得到id為win1的DOM節點
二、熟悉ext組件體系
Ext2.0對整個框架進行了重構,最為傑出的是推出了一個以Component類為基礎的組件體系,在Component類基礎上,使用面向對象的方法,設計了一系列的組件及控制項。因此,要能游刃有餘地使用Ext,熟悉Ext組件體系是最基本的。
在《ExtJS實用開發指南》中,有如下面一幅組件圖:
通過組件結構圖我們可以一目瞭然的看出整個Ext組件繼承及組成體系,當使用一個組件的時間,了解他的繼承體系,這樣可以便於我們掌握組件的各種特性。
三、掌握核心控制項
控制項其實也是組件,比如用於顯示樹信息的TreePanel、用於顯示表格的GridPanel及EditorGridPanel,還有代表應用程序窗口的Ext.Window等都屬於Ext控制項。在使用Ext的時候,一定要掌握一些核心控制項,特別是處於基類的控制項。比如上面提到的幾個控制項,他們都是繼承於面板Panel,所以我們要重點掌握面板這個核心控制項的特性。比如面板由以下幾個部分組成:一個頂部工具欄(tbar)、一個底部工具欄(bbar)、面板頭部(header)、面板尾部(bottom)、面板主區域(body)幾個部分組成。面板類中還內置了面板展開、關閉等功能,並提供一系列可重用的工具按鈕使得我們可以輕松實現自定義的行為,面板可以放入其它任何容器中,面板本身是一個容器,他裡面又可以包含各種其它組件。只要掌握了Panel的應用,那麼學習TreePanel、Window等就會變得簡單得多。
同樣的道理,對於Ext的表單欄位來說,不管是ComboBox,NumberField、還是DateField,他們其它都是 Ext.form.Field類的子類,在他上面定義了表單欄位的各種基本操作及特性。在學習使用表單欄位組件時,一定要重點研究Field這個類,掌握他的主要方法、事件等,就能有助於更好的學習使用其它的欄位。
四、學習及研究示例
由於javascript語言非常靈活,不像靜態強類型語言(比如Java)那樣有固定的代碼設計模式,而往往是不同的人就有不同的編程風格。在實際應用開發中,只有見多識廣,才能在自己的在腦中建立一個開發庫。
學習別人的示例對於我們開發幫助會非常大,示例包括基本組件的應用、綜合應用等多個方面。在此,簡單推薦幾個。
1、Ext官方示例,在ext項目下載包的examples目錄中,包括各個控制項的基本應用演示,同時還有一些比較復雜的組合示例,有簡有繁,非常適合初學者認真研究。
2、Vifir推出的示例,Vifir推出的一些示例主要包括兩類,一種是開源的示例應用,另外一種是針對VIP用戶的實用示例。開源的示例主要是指 wlr單用戶blog系統,這個一個集合了前後台技術的ext綜合示例,而針對VIP用戶的實用示例則是可以作為開發骨架或擴展組件的示例。
3、其它示例,在ext社區中還有很多比較優秀的ext應用示例,有些只是一個應用演示,雖然沒有提供源碼下載,但我們可以直接下載引用的js文件來得到這些示例的ext應用代碼,同樣能取起到非常好的學習效果。
五、多運用
Ext看起來是非常簡單的東西,稍有點編程知識的人,按照《ExtJS實用開發指南》中的入門指南,半小時就能學會使用Ext。然而,當准備使用Ext開發一個項目時,卻不知道從何處入手,或者是在使用Ext的時候,出了一點小問題自己不知道該如何解決。編程是一門實踐性的科學,僅僅靠看書、看別人寫的代碼是遠遠不夠的,因此,必須多做實踐才行,只有通過不斷的練習,大量的使用,才能對Ext的組件特性、事件、事件處理機制以及與伺服器端交互介面等深入的掌握,只有多做運用,深入了解ext的組件的工作原理及機制,才能編寫出高級的Ext的應用。
六、熟讀Ext項目的源代碼
如果要想深入應用Ext,那麼閱讀Ext項目的源代碼這是必不可少的環節,Ext的代碼質量非常高,通過閱讀他的代碼我們可以更加深刻的了解 javascript面向對象編程,Ext代碼中包含了很多高級的js技巧以及設計模式。在使用Ext的過程中,我們經常根據項目的需要對Ext組件進行擴展,設計自己的組件或控制項,而如何實現一個自定義的Ext組件,我們可以從Ext的各個組件源代碼中找到答案。
Ext的源代碼在Ext項目的source目錄。讀Ext源碼,並不一定非要從某一個地方開始,而組件核心代碼Component.js、容器組件代碼 Container.js、面板Panel.js等這些是必看的; core目錄中的Element.js、Ext.js等也是必看的。當需要從一個控制項進行擴展的時候,最好能簡單看一看這個控制項的源代碼。
2.extjs應該很少應用吧 我做jsp的,從來就沒有用過這些東西·

Ⅶ extjs和js和ext之間什麼關系

ExtJS是一種主要用於創建前端用戶界面,是一個基本與後台技術無關的前端ajax框架。
js泛指javascript.
Ext是一個強大的js類庫,以前是基於YAHOO-UI,現在已經完全獨立了。
主要包括data、widget、form、grid、dd、menu,其中最強大的應該算grid了,編程思想是基於面向對象編程(oop),擴展性相當的好.可以自己寫擴展,自己定義命名空間。web應用可能感覺太大.不過您可以根據需要按需載入您想要的類庫就可以了。
主要包括三個大的文件:ext-all.css,ext-base.js,ext-all.js(包括所有的類庫,您可以根據需要進行刪減.官方網站提供這一介面),在引用ext類庫的時候,這三個文件必不可少。
它提供了豐富的,非常漂亮的外觀體驗,成為眾多界面層開發人員的追捧!其核心的組件基本覆蓋了我們構建富客戶端的常用的組件。
從 Ext 2開始,商業版(針對那些以盈利為目的的開發方)要收費了。這可能會影響一些他的應用前景。
目前的最新版本為4.0

Ⅷ 求EXTJS大牛解答,關於Ext.XTemplate的用法。

"點擊超鏈接可以彈出一個EXT窗口" 當然是可以實現的。

1.其實,你這個問題的原因是,你不太了解javascript的 運行期上下文 造成的,你也可以理解為 作用域或者類似於指針都可以。

比如,你這里的 a 標簽 的 onclick="this.mroeClick()" 這句代碼,你函數調用前使用了 this 限定了上下文作用域, 你觸發這個click 事件 的 這個this指向的是 <a/>標簽本身,請問你的<a/>上有定義函數mroeClick()這個函數嘛?

因為我看不到你的代碼,最簡單的能訪問到mroeClick() 的方法為 去掉this.,寫為onclick="mroeClick(),然後你需要把mroeClick()放在全局作用域里,大概你的這個函數就是放在全局作用域里的,因為大部分沒這個概念的人都是這樣做的。其實這個函數無論放在哪都是可以訪問得到的。你可以去改變訪問是的上下文對象,只要在你當前載入過的任何一個地方都可以訪問的到。
2.忘了回答你的Ext窗口了問題了。這個和上面的問題是一樣的,首先你要明白你的Ext在哪個上下文導入的,那麼Ext在那個上下文中是一個全局對象,和你當前要調用的地方的上下文是什麼關系,如果同屬於一個上下文,那麼你直接就可以Ext.Msg.alert()了,如果Ext導入的地方是現在頁面的父級,那麼你parent.Ext.Msg.alert()就可以了,其他同理,你只需要在代碼中把上下文環境切換到你要訪問的東西的那個作用域里,無論在哪裡都可以訪問得到,只要被導入過。如果你能理解上下文作用域,將會使你的前端開發水平進階。

Ⅸ Extjs如何動態載入Extjs腳本

1、首先,需要先創建一個基本可用的 ExtJS 模板, 這個很簡單, 如下所示:
<!DOCTYPE html>

<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="http://localhost/ext-4/resources/css/ext-all.css" />
<script type="text/javascript" src="http://localhost/ext-4/ext-debug.js"></script>
</head>
<body>

</body>
</html>

2、需要引用的腳本是 ExtJS 根目錄下的 ext-debug.js , 不是 ext-all-debug.js, 這個文件非常小, 只有幾百K , 當讓這個只是最基本的 ExtJS 組件, 不包括任何的界面功能。

3、配置 Ext.Loader 啟用動態載入;

4、ExtJS 中的動態載入是由 Ext.Loader 來完成的, 默認不啟用動態載入, 所以接下來需要做的事配置 Ext.Loader 啟用動態載入, 在上面模板的 body 標簽內添加如下代碼:

<script type="text/javascript">
Ext.onReady(function() {
Ext.Loader.setConfig({
enabled : true,
disableCaching: false,
paths : {
Ext : '/ext-4/src'
}
});
});
</script>

注意:上面的代碼啟用了動態載入, 禁用了瀏覽器緩存, 以及指定了 ExtJS 的所部署的路徑。