dojo開發
A. web應用開發中利用dojo實現非同步通訊的問題
js是語言 == 木頭
ajax是javascript向服務端發非同步消息的技術(屬於js語言功能)
dojo、jquery都是js的集成工具包(都是js),即類庫,當然類庫都有自己的特點,但功能上大致相同 = 做成的一堆桌面、桌腿等等
這些js類庫都集成有ajax功能
要實現一個js應用 = 做一個桌子
不用類庫 = 自己造 桌面、桌腿,再組裝
用類庫 = 現成組裝
對於非同步通信:
前面說ajax是向服務端發消息,再加上 服務端(伺服器應用程序asp、php、java等)接收、處理並返回給js(PS:其實大家所說的ajax是指這整個過程)
所以回答你的問題,利於dojo(就是利於dojo里的ajax方法)可以實現非同步通信(現成組裝)
當然你用原生的js(ajax方法)照樣能實現(自己造 桌面、桌腿)
B. Dojo開發時需要引入那些文件
<!-- 引入dojo樣式文件 -->
<style type="text/css">
@import "dijit/themes/tundra/tundra.css";
@import "dojo/resources/dojo.css";、
</style>
<!-- 引入dojo包 -->
<script type="text/javascript" src="dojo/dojo.js" ></script>
引入這三個文件就行了。
C. 如何評價dojo這個前端框架
1.由於Dojo的每一個版本變化都比較大。 2.Dojo更新都比較快,基本上是1--2個月一個新的版本。 3.Dojo有很多不完善的地方,在實際應用中如果自己不修改代碼,要實現自己想要的全部功能是不可能的。
和 YUI、ExtJS 差不多,整體思想已經過時了,唯一的好處是作為大而全類型的框架,現成的東西很多。如果你需要的只是用一些現成的 UI 組件快速搞個能用的東西,勉強可以用用;但一旦要自己開發復雜的組件,就完全比不過新生代框架了。
D. Dojo到底有什麼好用的,一大堆需要引用的js文件,不臃腫嗎!
你用的dojo都是老版本了, 現在都出1.10了, 在dojo1.8已後都已經採用了AMD模式, 做到了按需載入, 並dojo本身屬於企業級應用的JS框架,為開發者提供大量UI、Tool、Ajax等類庫,可以使開發者不用關注瀏覽器兼容性問題來開發系統。
本身dojo的JS編程方式比較OO, 深入學習後, 你會發現你可以通過dojo來定義屬於自己的UI庫、模塊庫等,還是比較爽的。
缺點就是對HTML的侵入性比較嚴重, 目前還沒有看到MVVM的加入, 學習資料很少很難入門。
E. dojo這個前端框架為什麼很少聽人提起到
1.由於Dojo的每一個版本變化都比較大。
2.Dojo更新都比較快,基本上是1--2個月一個新的版本。
3.Dojo有很多不完善的地方,在實際應用中如果自己不修改代碼,要實現自己想要的全部功能是不可能的。
建議開發框架如下 root -dojo -dijit -dojox _padesk _dojo _dijit _dojox _util 也就是新建一個目錄padesk(示例,可以自己選),在padesk目錄下新建dojo、dijit、dojox目錄,把自己需要修改後才能使用的組件放到相應的目錄下: 例如: dijit.form.Button 我們想在這個基礎上定製一個只顯示Icon的Button,就可以定義為padesk.dijit.form.iconButton 這樣的結構,只要相應的模組(甚至只是相應的函數)沒有變化,我們把Padesk文件夾拷貝到新版本的dojo中,就馬上可以利用。節省了在原來代碼上修改的的許多周折。
F. 哪位朋友熟練 Dojo ,我公司開發新的項目要用這個,能給我一些學習的技巧和經驗么
其實就是一項非同步交互技術,可以做到局部刷新,增強用戶體驗效果,比如網路或GOOGLE中輸入搜索詞,下邊就出來提示要搜索的內容,這就是AJAX技術實現的,還有GOOGLE地圖,等等。
可以看一下下邊的詳述。
國內通常的讀音為「阿賈克斯」和阿賈克斯足球隊讀音一樣。Web應用的交互如Flickr, Backpack和Google在這方面已經有質的飛躍。這個術語源自描述從基於網頁的Web應用到基於數據的應用的轉換。在基於數據的應用中,用戶需求的數據如聯系人列表,可以從獨立於實際網頁的服務端取得並且可以被動態地寫入網頁中,給緩慢的Web應用體驗著色使之像桌面應用一樣。 雖然大部分開發人員在過去使用過XMLHttp或者使用Iframe來載入數據,但僅到現在我們才看到傳統的開發人員和公司開始採用這些技術。就像新的編程語言或模型伴隨著更多的痛苦,開發人員需要學習新的技巧及如何最好利用這些新技術。
AJAX模式
許多重要的技術和AJAX開發模式可以從現有的知識中獲取。例如,在一個發送請求到服務端的應用中,必須包含請求順序、優先順序、超時響應、錯誤處理及回調,其中許多元素已經在Web服務中包含了,就像現在的SOA。AJAX開發人員擁有一個完整的系統架構知識。同時,隨著技術的成熟還會有許多地方需要改進,特別是UI部分的易用性。
AJAX開發與傳統的CS開發有很大的不同。這些不同引入了新的編程問題,最大的問題在於易用性。由於AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標准也變得和JavaScript的運行時性能一樣重要了。這些問題中的大部分來源於瀏覽器、伺服器和技術的組合,因此必須理解如何才能最好的使用這些技術。
綜合各種變化的技術和強耦合的客戶服務端環境,AJAX提出了一種新的開發方式。AJAX開發人員必須理解傳統的MVC架構,這限制了應用層次之間的邊界。同時,開發人員還需要考慮CS環境的外部和使用AJAX技術來重定型MVC邊界。最重要的是,AJAX開發人員必須禁止以頁面集合的方式來考慮Web應用而需要將其認為是單個頁面。一旦UI設計與服務架構之間的范圍被嚴格區分開來後,開發人員就需要更新和變化的技術集合了。
時刻想著用戶
AJAX的最大機遇在於用戶體驗。在使應用更快響應和創新的過程中,定義Web應用的規則正在被重寫;因此開發人員必須更注重用戶。現在用戶已經逐漸習慣如何使用Web應用了。例如用戶通常希望每一次按鈕點擊會導致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長時間的狀況。因此用戶需要重新體驗按鈕點擊的響應了。
可用性是AJAX令人激動的地方而且已經產生了幾種新穎的技術。其中最引人注目的是一種稱為「黃色隱出」的技術,他在數據更新之前時將用戶界面變為黃色,更新完成後立刻恢復原來的顏色。AJAX開發人員將用戶從Web應用的負載中解放出來;小心地利用AJAX提供的豐富介面,不久桌面開發人員會發現AJAX是他們的方向。
幾種工具和技術
隨著AJAX迅速地引人注目起來,我想開發人員對這種技術的期待也迅速地增加。就像任何新技術,AJAX的興旺也需要一整個開發工具/編程語言及相關技術系統來支撐。
JavaScript
如名字所示AJAX的概念中最重要而最被忽視的是他也是一種JavaScript編程語言。JavaScript是一種粘合劑使AJAX應用的各部分集成在一起。在大部分時間,JavaScript通常被服務端開發人員認為是一種企業級應用不需要使用的東西應該盡力避免。這種觀點來來自以前編寫JavaScript代碼的經歷:繁雜而又易出錯的語言。類似的,他也被認為將應用邏輯任意地散布在服務端和客戶端中,這使得問題很難被發現而且代碼很難重用。在AJAX中JavaScript主要被用來傳遞用戶界面上的數據到服務端並返回結果。XMLHttpRequest對象用來響應通過HTTP傳遞的數據,一旦數據返回到客戶端就可以立刻使用DOM將數據放到網面上。
XMLHttpRequest
XMLHttpRequest對象在大部分瀏覽器上已經實現而且擁有一個簡單的介面允許數據從客戶端傳遞到服務端,但並不會打斷用戶當前的操作。使用XMLHttpRequest傳送的數據可以是任何格式,雖然從名字上建議是XML格式的數據。
開發人員應該已經熟悉了許多其他XML相關的技術。XPath可以訪問XML文檔中的數據,但理解XML DOM是必須的。類似的,XSLT是最簡單而快速的從XML數據生成HTML或XML的方式。許多開發人員已經熟悉Xpath和XSLT,因此AJAX選擇XML作為數據交換格式有意義的。XSLT可以被用在客戶端和服務端,他能夠減少大量的用JavaScript編寫的應用邏輯。
CSS
為了正確的瀏覽AJAX應用,CSS是一種AJAX開發人員所需要的重要武器。CSS提供了從內容中分離應用樣式和設計的機制。雖然CSS在AJAX應用中扮演至關重要的角色,但他也是構建創建跨瀏覽器應用的一大阻礙,因為不同的瀏覽器廠商支持各種不同的CSS級別。
伺服器端
但不像在客戶端,在服務端AJAX應用還是使用建立在如Java,.Net和PHP語言基礎上機制;並沒有改變這個領域中的主要方式。
既然如此,我們對Ruby o n Rails框架的興趣也就迅速增加了。在一年多前,Ruby o n Rails已經吸引了大量開發人員基於其強大功能來構建Web和AJAX應用。雖然目前還有很多快速應用開發工具存在,Ruby o n Rails看起來已經儲備了簡化構建AJAX應用的能力。
開發工具
在實際構建AJAX應用中,你需要的不只是文本編輯器。既然是JavaScript非編譯的,他可以容易地編寫和運行在瀏覽器中;然而,許多工具提供了有用的擴展如語法高亮和智能完成。
不同的IDE提供了對JavaScript支持的不同等級。來自JetBrains的IntelliJ IDEA是一個用來JavaScript開發的更好的IDE,雖然許多開發人員也喜歡Microsoft』s Visual Studio產品(允諾會在最新的版本中改善對AJAX的支持)。Eclipse包含了兩個免費的JavaScript編輯器插件和一個商業的來自ActiveStat的Komodo IDE。
另一個JavaScript和AJAX開發中的問題是調試困難。不同的瀏覽器提供不同的通常是隱藏的運行時錯誤信息,而JavaScript的缺陷如雙重變數賦值(通常是由於缺少數據類型)使得調試更加困難。在AJAX的開發中,調試就更復雜了,因為其需要標識究竟是客戶端還是服務端產生的錯誤。在過去,JavaScript調試的方法是刪除所有代碼然後一行行的增加直到錯誤出現。現在,更多開發人員回到為IE准備的Microsoft Script Debugger和為Mozilla瀏覽器准備的Venkman。
瀏覽器兼容性
JavaScript編程的最大問題來自不同的瀏覽器對各種技術和標準的支持。構建一個運行在不同瀏覽器(如IE和火狐)是一個困難的任務。因此幾種AJAX JavaScript框架或者生成基於服務端邏輯或標記庫的JavaScript,或者提供符合跨瀏覽器AJAX開發的客戶端JavaScript庫。一些流行的框架包括:AJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.
這些框架給開發人員更多的空間使得他們不需要擔心跨瀏覽器的問題。雖然這些框架提升了開發人員構建應用的能力,但由於廠商已經開發了更細節的用戶界面的打包組件解決方案,因此在AJAX組件市場中需要考慮一些其他因素。例如提供通用用戶界面的組件如組合框和數據柵格的幾個廠商,都可以被用來在應用中創建良好的通過類似電子數據表方式來查看和編輯數據的體驗。但這些組件不僅是封裝了組件的用戶界面而且包括與服務端數據的通訊方式,這些組件通常使用基於標記方式來實現如ASP.Net或JSF控制項。
展望
最近IE和火狐之間的瀏覽器之爭變得火熱起來,因此AJAX開發人員需要足夠敏捷的作出反應。關鍵點在一些問題如CSS或XML,雖然各種瀏覽器形成採用最新標準的不同陣營(如Mozilla擁抱SVG和E4X標准及在最新火狐BETA版本中使用XUL,而微軟使用自己的XAML技術)。所有這些技術代表當前AJAX主流JavaScript和XML的市場方向改變。
總的來說,AJAX開發人員必須盡快地跟進最新的技術並利用高產的工具集。成功的AJAX開發人員還需要留心他們的使用者以避免將任何問題擴大化。並且AJAX開發人員還需要持續地創新來創建增強Web應用易用性的新方法。
G. dojo是什麼
1.dojo是一款javascript框架,提供很多javascript UI, 2. dojo的程序支持,正常來講我們都是做web工程的時候用到,要用到dojo的源文件包,如果你javascript可以的話,可以直接參考裡面的源碼,對代碼進行分析,如果只是用裡面提供的UI類創建自己的DOM,這些可以很快上手。
3.配置dojo,原則上是只要能正確把 使用<script src='[dojoroot]/dojo/dojo.js'>放入你的web page 中 就可以。
我使用過java做web開發,是這樣配置的,可以幫助理解下,我以tomcat容器為例,使用eclipse環境開發。首先放置 dojo包至你的web容器重 即 ,【tomcat root】/webapps 下,然後在eclipse中創建web app project,將你的web工程與你的web容器關聯,這時候可以在你的index.jsp中使用dojo的東西做開發了,別忘記加 <scriipt src = [dojoroot]/dojo/dojo.js>至你的index.jsp中。使用dojo開發的細節,你要自己參考一下相關的東西了
H. 為什麼使用Dojo toolkit的十大原因
最強大但是使用量卻大大低於預期的Javascript工具類庫肯定是:Dojo Tookkit。幾乎所有的javascript框架或者類庫都許諾你可以實現任何功能,但是Dojo是最具有此類話語權的類庫。在這篇文章中,我們將從十個不同的角度來分享,為什麼你應該在你的web項目中開始使用Dojo toolkit。
原因一:模塊化和AMD模塊載入機制
隨著web技術的發展,客戶端的javascript越來越復雜,為了更好,更快運行我們的js應用,我們需要模塊化我們的程序。不使用非同步載入的日子應該結束了。Dojo toolkit一直都引以驕傲他們的模塊化設計,使用dojo.require來動態的載入頁面資源。 雖然有一個跨域選項是非同步的餓,預設的載入javascript資源的方法是同步的。
Dojo已經遷移到了非同步載入器上,由Rawld Gill開發,可以方便的非同步載入所有資源,很大程度的提高了速度。
原因二:使用dojo/declare來實現Class和擴展性
javascript並不是真正的提供class系統,而Dojo toolkit通過dojo/declare提供了一個類似class繼承機制。declare在整個框架中都被使用,所以開發人員可以:
剪切或者刪除重復的代碼
使用「混合」方式來在不同class中共享功能
很簡單的擴展已存在的class用來擴展自定義
不同項目中分享模塊代碼
在出現bug的Dojo class中安全的創建混合的class
Dojo的class系統使用原型繼承,允許原型(prototype)被繼承,這樣子class可以像父class一樣強大。
原因三:基於方面(Aspects)和「方法到方法的事件」
Aspects是高級web開發力最強大和必要的特性。Dojo toolkit提供了很多年這樣的相關功能。允許你不使用傳統的click,mouseover和keyup來觸發功能。
允能夠讓你在觸發function A之後或者之前觸發function B 。你可以將方法鏈接起來,是不是很棒!
原因四:Deferreds和統一的AJAX傳輸
Deferreds是基於對象的非同步操作的表達方式,允許非同步操作對象可以方便的從一個地方傳遞到另外一個地方。jQuery最近的最重要的添加就是Deferred。很巧合的是,Dojo團隊已經實現了。Dojo toolkit幾年前已經添加了這個特性,使用它來簡化AJAX高級操作,動畫及其其它。
除了最前面這里的Deferred對象,Dojo也在XMLHTTPRequest之外首次添加了幾個IO處理方法,包括:window.name封裝,AJAX文件上傳的dojo/io/iframe及其其它。那麼什麼時候使用Deferredd對象呢?無論什麼時候只要一個非同步的AJAX操作發生!Deferred對象都會返回XHR請求,dojo/io請求,動畫和其它!
原因五:Dijit UI framework
毫無疑問,Dojo toolkit相比其它框架最大的優勢在於Dijit UI框架。這個和其它工具吹噓的完全不同:
完整,完整的支持本地化
完整的accessiblity
先進的布局組件能夠幫助你解決100%高度元素,創建自定義的分割和布局修改
內建的表單驗證和強化的用戶體驗
很多主題,最新的叫"claro"
LESS文件自定義主題
非常模塊化的代碼,允許自定義和擴展
原因六:Dojo Mobile
可以這么說,基本上每一個web問題,dojo都有一個解決方案,Dojo toolkit對於移動客戶端的解決方案就是dojox/mobile,這個類庫在我們以前的dojo移動開發文章中我們也牛刀小試了一把。如果你想看看dojox/mobile開發的UI界面,請點擊這里:在線演示,dojox/mobile主要特性如下:
自動探測設備類型
擁有iOS,Andriod,Blackberry和common這四種主題
mobile表單組件
布局組件和面板
支持桌面,允許簡單的debug
原因七:GFX和圖表
CSS動畫是不錯的視覺工具,既是動畫圖片,同時也是靈活和強大的矢量圖形創建和管理工具。最流行的客戶端的矢量圖形生成工具一直是Raphael JS,但是Dojo toolkit的GFX類庫毫無疑問更將的強大。GFX可以用來配置SVG,VML,Silverlight,Canvas和webGL格式的矢量圖形。提供了一個健壯的封裝來創建不同的矢量圖片形狀(線狀圖等等),包括:
改變大小,旋轉和偏轉
動畫填入,拉直等屬性
添加線或者圓圈圖形到指定圖形中
監聽和響應滑鼠屬性
組合圖形並且更好的去管理
原因八:SitePen dgrid
Sitepen,Dojo toolkit創始人Dylan Schiemann的javascript咨詢公司,打算替換Dojox的華而不實的Grid widget,使用更快,可擴展並且可編輯的Grid組件,主要特性如下:
支持不同的主題,配置簡單
支持移動
行可排序
允許「滯後載入」grid數據
支持樹狀的Grid
使用Dijit widget支持可編輯的Grid
可擴展,支持列寬改變,拖放支持和分頁,及其其它
原因九:DOH測試框架
測試對於我們來說非常重要,特別是對於客戶端而非伺服器端的程序來說。隨著不同的瀏覽器的出現,客戶端的互動測試成為一個必須的內容和步驟。Dojo toolkit提供了自己的測試框架。別名DOH(Dojo objective Harness)。提供了每一個Dojo toolkit版本的下載
原因十:Dojo編譯流程
當一個web應用准備部署時,對於創建一個壓縮版的javascript對於載入速度和優化來說非常有必要。這有效的減少了請求次數,並且縮短了下載時間。Dojo的編譯分析Define將調用並且檢測依賴關系。使用Dojo toolkit編譯流程,你需要創建一個build profile。
I. 前端開發有哪些框架要學的比如dojo什麼的
jquery 通了這一個,拿來吃飯是沒有問題了,
想要高端的話,就再學習一下前端的MVC框架,像backbone angular 等等,
再高端點就弄伺服器node.js