dojo源碼
『壹』 如何添加 Dojo Gridx 的工具條自定義組件
Gridx 是基於 Dojo 的開源項目,在 GitHub 或者其官網都可以下載到源碼包。下載解壓後將 Gridx 文件夾置於與 Dojo、Dijit 和 Dojox 等文件夾同級的目錄即可。目前 Gridx 支持 Dojo1.80+。
創建基於 Gridx 的 Grid,實現代碼如下:
require([
"gridx/Grid",
"gridx/core/model/cache/Sync",
......
"dojo/domReady!"
], function(Grid, Cache, ......){
......
var grid = new Grid({
cacheClass: Cache,
store: storeName,
pageSize : defaultPageSize,
query: queryName,
structure: columnStructure,
moles: [
mole1,
mole2
…
],
molePropertyName1,
molePropertyName2,
…,
'class': 'GridxClass'
});
grid.placeAt('gridContainerNode');
grid.startup();
});
Gridx 以 Dojo 的 store 作為數據源,但是需要用戶指出所用的 store 是非同步還是同步的。非同步的 store 通常由服務端提供數據,向它請求的數據需要非同步地被接收。而同步的 store 一般都一次性的載入到客戶端。用戶可以通過設置 cacheClass 參數,將這個信息告知 Gridx。Query 參數是用來確定數據請求的地址,而 structure 參數則是用來確定數據之間的相關性。
上面的參數是初始化一個 Grid 的必要參數,而 moles 參數則是作為可選的模塊,供用戶進行功能性選擇的處理。我們在這里描述的工具條組件也是其中之一。通過在 moles 參數裡面進行注冊的模塊,我們可以動態的注入一些新的可視化組件。最下模塊參數則是供用戶進行特殊模塊的特別參數初始化。
『貳』 怎麼使用Dojo
Dojo●什麼是Dojo?
Dojo是一個用javaScript語言實現的開源DHTML工具包。它是在幾個項目捐助基礎上建立起來的(nWidgets, Burstlib, f(m)),這也是為什麼叫它a unified toolkit的原因。Dojo的目標是解決開發DHTML應用程序遇到的那些、長期存在 、歷史問題,以及DHTML 跨瀏覽器問題。
Dojo能夠讓你更容易使Web頁面具有動態能力,或者在任何能夠穩定支持JavaScript語言的環境中發揮作用。
Dojo有以下的特徵:
1、利用Dojo提供的組件,你可以提升你的web應用程序可用性、交互能力以及功能上的提高。
2、也可以更容易的建立互動的用戶界面。同時Dojo提供小巧的動態處理工具。
3、利用它的低級API和可兼容的代碼,能夠寫出輕便的、單一風格(復雜)的JavaScript代碼。Dojo的事件系統、I/O的API以及通用語言形式是基於一個強大編程環境。
4、通過Dojo提供的工具,你可以為你的代碼寫命令行式的單元測試代碼。
5、Dojo的擴展包能夠使你自己的代碼更容易維護,耦合性更低。
Dojo通過很少的代碼完成了以上的功能。當你寫腳本時,只需要包含很少的js文件,也可以選擇的(包含)下載dojo提供的龐大的功能。
---------------------------------------------------------------------------------------
(轉)Dojo是一個非常強大的面向對象的JavaScript的工具箱, 建議能夠去復習一下JavaScript下如何使用OO進行編程的, 這對於你以後閱讀Dojo Source有很大的用處
請大家下載dojo 0.3.1, 以下的說明均針對此版本
1: 把Dojo加入到我們的Web程序中
1.1 標志
<script type="text/javascript">
djConfig = { isDebug: false };
</script>
djConfig是Dojo里的一個全局對象, 其作用就是為Dojo提供各種選項, isDebug是最常用的屬性之一, 設置為True以便能夠在頁面上直接看到調試輸出, 當然其中還有些屬性與調試有關, 這里就不啰嗦了
1.2 引用 dojo 的啟動代碼
<script type="text/javascript" src="/yourpath/dojo.js" />
這樣你就引用了dojo的代碼, 並可以直接使用其中部分常用的對象, 下載下來的dojo.js是壓縮(remove comments and space)後的代碼, 要閱讀的話,建議閱讀dojo.js.uncompressed.js, dojo.js大概有127K, 而未壓縮前有211K, ok, 為什麼會這么大呢, 原來其已經把部分常用的模塊整合進dojo.js里, 因此顯得大了一點, build.txt里就說明了默認的dojo.js包含了哪些模塊
1.3 聲明你所要用到的包
<script type="text/javascript">
dojo.require("dojo.math");
dojo.require("dojo.io.*");
dojo.require("dojo.widget.*");
</script>
你就把這些代碼當成是java的import語句或C#中的using語句一樣, 如果你不require的話, 而模塊本身又沒有整合在dojo.js中, 是會出現腳本錯誤的喔
2. 針對不同需求提供的預整合包
Dojo本身是由許多模塊所組合而成的, 但是由於用戶需求的多樣性, dojo針對不同的需求而提供了不同的版本, 用戶在下載dojo的時候就看見可以選擇很多的版本, 比如Ajax版和Widget版, 每個版本最重要的區別就在於dojo.js文件, 但是除此之外, 每一個版本都是全功能的, dojo.js根據版本的不同而整合進了不同的模塊
3. 直接獲取Dojo的最新源代碼
......
模塊
Dojo的代碼被劃分為邏輯單元稱之為模塊, 這有點類似於Java中的package,除了dojo的模塊能夠包含類 (類似於java中的classes)和簡單函數
比如: 模塊"dojo.html"包含了一系列的函數, 比如dojo.html.getContentBox(), 模塊"dojo.dnd"包含了一系列的HtmlDragObject的類
注意名稱約定, 函數的首字母為小寫字母,類的首字母為大寫
模塊也可以稱之為"命名空間"
包
在多數情況下, dojo的模塊只需要定義在一個文件就可以了, 但有時, 一個模塊可能劃分到多個文件, 比如: 模塊dojo.html, 本來是定義在一個文件中, 可是由於功能的增強, 文件逐漸變大, 我們不得不將其拆分為多個文件, 這主要是為性能考慮, 以便瀏覽器可以只下載其需要用到的代碼, 不幸的是其實現細節對於dojo的用戶看起來不那麼透明, 你必須知道你想要用到的功能到底是包含在哪個文件, 然後才能require並使用它,這樣的每一個文件都稱之為一個包
『叄』 dojo 1.91 html文件放到其它子目錄里再調用.././dojo.js火狐3就報錯 NS_ERROR_DOM_BAD_URI IE正常 為什麼
尊敬的用戶,您好!很高興為您答疑。
據錯誤提示來看,這應該是您引用路徑存在問題,或者您的伺服器進程沒有許可權讀寫您所設置的路徑所致。
希望我的回答對您有所幫助,如有疑問,歡迎繼續咨詢我們。
『肆』 Web前端開發框架有哪些
目前常用的一些前端的框架如下:
1. Bootstrap
Boostrap絕對是目前最流行用得最廣泛的一款框架。它是一套優美,直觀並且給力的web設計工具包,可以用來開發跨瀏覽器兼容並且美觀大氣的頁面。它提供了很多流行的樣式簡潔的UI組件,柵格系統以及一些常用的JavaScript插件。
Bootstrap是用動態語言LESS寫的,主要包括四部分的內容:
腳手架——全局樣式,響應式的12列柵格布局系統。記住Bootstrap在默認情況下並不包括響應式布局的功能。因此,如果你的設計需要實現響應式布局,那麼你需要手動開啟這項功能。
基礎CSS——包括基礎的HTML頁面要素,比如表格(table),表單(form),按鈕(button),以及圖片(image),基礎CSS為這些要素提供了優雅,一致的多種樣式。
組件——收集了大量可以重用的組件,如下拉菜單(dropdowns),按鈕組(button groups),導航面板(navigation control)——包括:tabs,pills,lists標簽,麵包屑導航(breadcrumbs)以及頁碼(pagination),縮略圖(thumbnails),進度條(progress bars),媒體對象(media objects)等等。
JavaScript——包括一系列jQuery的插件,這些插件可以實現組件的動態頁面效果。插件主要包括模態窗口(modals),提示效果(tool tips),「泡芙」效果(popovers),滾動監控(scrollspy),旋轉木馬(carousel),輸入提示(typeahead),等等。
Bootstrap已經足夠強大,能夠實現各種形式的 Web 界面。為了更加方便地利用Bootstrap進行開發,很多工具和資源可以用來配合使用,下面列舉了其中的一部分工具和資源。
jQuery UI Bootstrap —— 對於jQuery和Bootstrap愛好者來說這是個非常好的資源,能夠把 Bootstrap的清爽界面組件引入到jQuery UI中。
jQuery Mobile Bootstrap Theme —— 和上面提到的jQuery UI主題類似,這是一個為jQuery mobile建立的主題。如果你想讓用Bootstrap開發的網站在手機端也可以優雅訪問,那麼這個資源對你來說很方便易用。
Fuel UX —— 它為Bootstrap添加了一些輕量的JavaScript控制項。Fuel UI 安裝,修改,更新以及優化都很簡單方便。
StyleBootstrap.info —— Bootstrap提供了自己的幾種界面風格,StyleBootstrap提供了更多的配色選項,並且你可以給每個組件都應用不同的配色。
BootSwatchr —— 利用這個工具你可以立刻查看主題修改後的效果。對於每一次變動的效果,這個應用都會生成一個唯一的URL方便你與他人分享,你也可以在任意時刻修改你的主題。
Bootswatch —— 提供大量免費的Bootstrap主題。
Bootsnipp —— 在線前端框架交互組件製作工具,是一個供給設計師和開發者的基於Bootstrap HTML/CSS/JavaScript 架構的免費元素。
LayoutIt —— 通過界面拖放生成器簡便快捷地創建基於Bootstrap的前端代碼。通過拖放動作將Bootstrap風格的組件加入到你的個人設計里並且可以方便地修改他們的屬性,簡單便捷。
2、flex
Apache基金會發布了Flex 4.8版本,這是Adobe將Flex捐獻給Apache基金會後發布的第一個版本
需要注意的是
2014年03月10日,Apache Flex技術社區發布了全新的Apache Flex 4.12.0版本,該版本是Apache Flex 4.11.0的升級版本,改進的功能包括:
◆支持最新版本的Flash Player
◆支持最新的AIR運行時
◆改進了內存佔用和性能
◆改善了針對移動平台的組件的樣式
◆支持iOS7系統
◆修復了超過80個漏洞[4]
2014年05月10日,Apache對4.12.0版本進行優化改進,發布了Flex 4.12.1,新版本加入對全新Flash Player及Air運行時的支持,改進對移動媒體查詢的支持,並修復20多個Bug。
3、extjs
ExtJS是一種主要用於創建前端用戶界面,是一個基本與後台技術無關的前端ajax框架。
功能豐富,無人能出其右。
無論是界面之美,還是功能之強,ext的表格控制項都高居榜首。
華麗的界面,靈活的功能,還有開發工具都是配套的,但有個最大的問題,用就得花錢!
4、easyui
easyui幫助你構建你的web應用更加容易。
它是一個基於jquery的插件,開發出來的一套輕量級的ui框架,非常小巧而且功能豐富。
但是她有一個最大的問題就是代碼只能找到以前的開源的版本,到了1.2以後的版本源代碼都是經過混淆的,如果遇到問題修改起來會非常麻煩!不過一個比較大的優勢是開源免費,並且界面做的還說的過去!
5、MiniUI
又一個基於jquery的框架,開發的界面功能都很豐富。
jQuery MiniUI – 快速開發WebUI。
它能縮短開發時間,減少代碼量,使開發者更專注於業務和服務端,輕松實現界面開發,帶來絕佳的用戶體驗。
使用MiniUI,開發者可以快速創建Ajax無刷新、B/S快速錄入數據、CRUD、Master-Detail、菜單工具欄、彈出面板、布局導航、數據驗證、分頁表格、樹、樹形表格等典型WEB應用系統界面。
界面做的挺不錯,功能也挺豐富,但是有兩個比較大的問題,一個是收費,一個是沒有源碼,說白了,不開源!基於這個開發如果想對功能做擴展就需要找他們的團隊進行升級!
6、jQuery UI
jQuery UI 是一套 jQuery 的頁面 UI 插件,包含很多種常用的頁面空間,例如 Tabs(如本站首頁右上角部分) 、拉簾效果(本站首頁左上角)、對話框、拖放效果、日期選擇、顏色選擇、數據排序、窗體大小調整等等非常多的內容。
功能非常全面,界面也挺漂亮的,可以整體使用,也可以分開使用其中的幾個模塊,免費開源!
7、DWZ
DWZ富客戶端框架(jQuery RIA framework), 是中國人自己開發的基於jQuery實現的Ajax RIA開源框架.
設計目標是簡單實用,快速開發,降低ajax開發成本。
歡迎大家提出建議,我們將在下一版本中進一步調整和完善功能.共同推進國內整體ajax開發水平。
畢竟是國產的,支持一下,而且源碼完全公開,可以選擇一下!不過性能怎麼樣不敢確定!
8、GWT
Google 網頁工具包——GWT 提供了一組基於Java語言的開發包,這個開發包的設計參考Java AWT包設計,類命名規則、介面設計、事件監聽等都和AWT非常類似。熟悉Java AWT的開發者不需要花費多大的力氣就能夠快速的理解GWT開發工具包,將更多地時間投入到GWT應用的開發過程中。
你不用去了解這樣那樣的javascript框架,通過java你就可以寫出功能豐富的界面,可以做單元測試,畢竟是google的產品,嚴重支持一下!
9、YUI
Yahoo! UI Library (YUI) 是一個開放源代碼的 JavaScript 函數庫,為了能建立一個高互動的網頁,它採用了AJAX, DHTML 和 DOM 等程式碼技術。它也包含了許多 CSS 資源。使用授權為 BSD許可證,基本上沒怎麼研究過!
YUI Compressor倒是挺出名的,這套UI庫不知道應用的情況怎麼樣!
10、Sencha
Sencha 是由 ExtJS、jQTouch 以及 Raphael 三個項目合並而成的一個新項目。
大公司的框架,並且是幾樣庫的強強聯合,值得推薦!
11、Dojo
在國內應用好像不是很廣,不過性能上應該沒問題。
Dojo是一個用javascript語言實現的開源DHTML工具包。
有多個基金會的支持,包括IBM和SUN,都是軟體界的泰斗,值得信賴!
12、ZK
ZK是 一套以 AJAX/XUL/Java 為基礎的網頁應用程式開發框架,用於豐富網頁應用程式的使用介面。最大的好處是,在設計AJAX網路應用程式時,輕松簡便的操作就像設計桌面程式一樣。 ZK包含了一個以AJAX為基礎、事件驅動(event-driven)、高互動性的引擎,同時還提供了多樣豐富、可重復使用的XUL與HTML組件,以 及以 XML 為基礎的使用介面設計語言 ZK User-interfaces Markup Language (ZUML)。
功能豐富,全面,文檔齊全,而且升級了很多次,非常值得推薦!
13、OperaMasks-UI
OperaMasks- UI是OperaMasks團隊 2011下半年打造的一款輕量級前端JS組件庫,旨在提供一款學習曲線低、定製性靈活、樣式統一,且多瀏覽器支持、覆蓋企業業務場景的前端 JavaScript UI組件庫。目前,該團隊已將這一產品以LGPL 開源協議開放給社區。
文檔豐富,功能齊全,而且很容易使用和開發!而且是國產的喲!
14、JavaFX
Sun 公司(已於2009年被Oracle公司收購)在2008年12月05日發布了JavaFX技術的正式版,它使您能利用 JavaFX 編程語言開發富互聯網應用程序(RIA)。JavaFX Script 編程語言(以下稱為JavaFX)是Sun微系統公司開發的一種declarative, statically typed(聲明性的、靜態類型)腳本語言。JavaFX技術有著良好的前景,包括可以直接調用Java API的能力。因為 JavaFX Script是靜態類型,它同樣具有結構化代碼、重用性和封裝性,如包、類、繼承和單獨編譯和發布單元,這些特性使得使用Java技術創建和管理大型程序 變為可能。
『伍』 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開發的細節,你要自己參考一下相關的東西了
『陸』 Dojo到底有什麼好用的,一大堆需要引用的js文件,不臃腫嗎!
你用的dojo都是老版本了, 現在都出1.10了, 在dojo1.8已後都已經採用了AMD模式, 做到了按需載入, 並dojo本身屬於企業級應用的JS框架,為開發者提供大量UI、Tool、Ajax等類庫,可以使開發者不用關注瀏覽器兼容性問題來開發系統。
本身dojo的JS編程方式比較OO, 深入學習後, 你會發現你可以通過dojo來定義屬於自己的UI庫、模塊庫等,還是比較爽的。
缺點就是對HTML的侵入性比較嚴重, 目前還沒有看到MVVM的加入, 學習資料很少很難入門。
『柒』 誰告訴我 網站源碼 用什麼軟體容易編輯 本人0基礎
你是學習還是要建網站。這個要看源碼是神魔語言了,sublime text ,
eclispe 這是我們常用的。有疑問可以扣我,望採納!
『捌』 這種網站的源碼是什麼
你可以去酷安下載應用 一個木函
『玖』 如何使用Dojo的DatePicker控制項製作聯動日期選擇器
在開發系統的調查功能時,需要設計一個可以聯動的開始日期/結束日期選擇器用來設定用戶的調查的起始/結束日期。對於這個聯動的日期選擇器,我們的設計要求是這樣的:
在新增調查時,該調查的開始日期默認為今天,而結束日期則不能選擇成今天之前的日期;
當用戶修改開始日期時,將判斷當前用戶設定的結束日期,如果結束日期在修改後的開始日期之後,則不修改結束日期,而如果結束日期變成了在修改後的開始日期之前時,則修改結束日期,和開始日期為同一天,並且設定用戶不能選擇開始日期之前的日期為結束日期;
修改結束日期時,不能選擇開始日期之前的日期。
針對這樣的要求,決定使用dojo的日期選擇控制項 DatePicker / DropDownDatePicker 來實現。
P_1167283844_0.JPG
最終的效果,聯動的DatePicker,注意20日之前的日期都是不能選擇的
針 對第1和第3點要求,dojo的 DatePicker / DropDownDatePicker 可以輕易的實現,可以通過設置 DatePicker / DropDownDatePicker 的 value 和startDate這兩個屬性實現。而要這個需求的難點在於兩個DatePicker之間的聯動,也就是說,要動態的根據第一個DatePicker的 值來設定第二個DatePicker的startDate屬性。但是不幸的是,dojo沒有提供直接的動態修改 DatePicker 的 startDate / endDate 的方法。雖然我們可以隨時修改DatePicker的startDate屬性,但是,在UI(日期選擇界面)卻不會發生變化,達不到我們想要的效果。
dojo提供了一個onValueChanged的事件,我們可以為第一個DatePicker添加這個事件的觸發器,觸發後調用我們自己寫的 Javascript函數。而在這個函數里我們要解決的問題就只有修改第二個DatePicker的startDate屬性(這個很簡單),並讓UI即時 生效(問題就在這里)了。
在仔細研究了dojo的DatePicker的源代碼後發現,startDate僅僅是這個 DatePicker控制項的一個單純的屬性,修改它並不會在內部觸發任何改動UI的事件。所以,我們要做的就變得很簡單了——想辦法重繪UI就可以。不幸 中的萬幸是,我們找到了_preInitUI()這個內部的方法,它可以繪制DatePicker的UI。
一切明朗後,就變得很簡單了。看看代碼片斷吧,很輕松的實現了兩個DatePicker / DropDownDatePicker控制項的聯動。
HTML4STRICT代碼:
開始時間:<input dojoType="dropdowndatepicker" id="startdate" name="start" value="today" displayFormat="yyyy-MM-dd" onValueChanged="checkEndDate" />
結束時間:<input dojoType="dropdowndatepicker" id="enddate" name="end" displayFormat="yyyy-MM-dd" />
注意看上面HTML代碼中的第一個DropDownDatePicker控制項的屬性:
value設置為today則會默認帶出今天的日期
displayFormat設置時間顯示格式(便於後台程序轉換成timestamp導入DB)
onValueChanged則設置了觸發名為checkEndDate的自定義Javascript函數
再看看Javascript代碼片斷:
JAVASCRIPT代碼:
function g(id) {
return document.getElementById(id);
}
function w(id) {
return dojo.widget.getWidgetById(id);
}
function checkEndDate(){
var func=function(){
//得到新的修改後的開始日期和當前的結束日期
starttime=w('startdate').getDate();
endtime=w('enddate').getDate();
//開始日期是否在結束日期之後?
if (starttime>endtime) {
//開始日期在結束日期之後,修改結束日期等於開始日期
w('enddate').setDate(starttime); //時間戳
w('enddate').value=w('startdate').inputNode.value; //字元串值
}
//設定結束日期的startDate屬性,限制用戶選擇開始日期之前的日期
var startDate=dojo.date.fromRfc3339(w('startdate').inputNode.value).setHours(0,0,0,0);
w('enddate').startDate=w('startdate').inputNode.value;
w('enddate').datePicker.startDate=startDate;
//得到結束日期的當前月份
var d = new Date(w('enddate').datePicker.curMonth);
//利用_preInitUI()重繪結束日期的UI(當前月)
w('enddate').datePicker._preInitUI(d,false,true);
}
//延時500毫秒執行
window.setTimeout(func,500);
}
怎 么樣,很簡單吧?不過你也許要問,為什麼要延時500毫秒執行呢?原因是這樣的,一開始瀏覽器在繪制頁面的時候,設定開始日期為今天,這一動作同樣會觸發 onValueChanged事件。但這時候,因為結束日期的DatePicker控制項還未被瀏覽器繪制完成,所以導致觸發onValueChanged 事件後,Javascript無法執行成功,根本get不到enddate這個element。所以,我採取了onValueChanged事件觸發後 500毫秒後執行Javascript程序,這時候,再慢的電腦都已經render完這個element了,執行Javascript就不會出錯了,而且 對於用戶,也沒什麼感覺。當然,你也可以寫一個onLoad事件的Javascript函數在頁面載入完成後再給startdate這個element賦 值。這都是問題的解決辦法,怎麼使用完全取決於你。
『拾』 如何在Android中結合使用PhoneGap和Dojo Mobile
在編寫本文時,Dojo 的最新的穩定版本是 1.6.1。要立即開始使用 Dojo Mobile 1.7,則需要從一個 Subversion
存儲庫中下載 Dojo Toolkit 最新的版本。svn 命令行工具通常已預先安裝在 Mac OS X 和 Linux® 操作系統上。如果使用
Windows®,那麼您可能需要先下載和安裝這些工具。有關的更多信息,請訪問 Subversion 站點。
假設您已經安裝了 Subversion,並且正在使用基於命令行的工具,那麼您可使用以下命令遷出最新的 Dojo 版本。該命令會下載完整的 Dojo
Toolkit 源代碼,所以預計會花一段時間。
?1svn checkout http://svn.dojotoolkit.org/src/view/anon/all/trunk
dojo-toolkit-readonly
當完成遷出後,您將在一個名為 dojo-toolkit-readonly 的新目錄中擁有 Dojo Toolkit
的完整源代碼。將此目錄復制或移動到您 Web 伺服器上的一個位置,以便您能夠在 HTML 文檔中使用它。將它重命名為更短的名稱,比如
dojo-toolkit,然後就可以開始使用 Dojo 了。
如果願意的話,可以僅下載您想要的 Dojo Toolkit 部分。一些人發現首先下載完整版本,然後丟棄不需要的部分更容易一些。Dojo
的源代碼沒有壓縮且比較大,所以不建議在生產應用程序中使用它。
清單 1 給出了 Dojo 應用程序的基本結構。Dojo Mobile 1.7
中新增了deviceTheme類,它將自動確定要為您使用的設備載入的准確主題。您無需檢測用戶的瀏覽器並提供相關的 CSS 文件。
當完成遷出後,您將在一個名為 dojo-toolkit-readonly 的新目錄中擁有 Dojo Toolkit
的完整源代碼。將此目錄復制或移動到您 Web 伺服器上的一個位置,以便您能夠在 HTML 文檔中使用它。將它重命名為更短的名稱,比如
dojo-toolkit,然後就可以開始使用 Dojo 了。 如果願意的話,可以僅下載您想要的 Dojo Toolkit
部分。一些人發現首先下載完整版本,然後丟棄不需要的部分更容易一些。Dojo 的源代碼沒有壓縮且比較大,所以不建議在生產應用程序中使用它。請參閱
參考資料,了解有關創建自定義 Dojo 構建版本來提升 Dojo 應用程序性能的信息。
清單 1 給出了 Dojo 應用程序的基本結構。
如果將清單 1 中的代碼保存到文件中,在 Web
瀏覽器中打開此文件,將會看到一個灰色背景,再沒有任何內容。這沒什麼用,所以讓我們在應用程序中添加一些內容。本文中的示例使用了非標準的 Dojo Mobile
類,所以需要用dojo.require載入它們。在dojo.require("dojox.mobile");行的後面,添加清單 2 所示的代碼。
人工載入 Dojo Mobile 類
6dojo.require("dojox.mobile.ScrollableView");
dojo.require("dojox.mobile.SwapView");
dojo.require("dojox.mobile.IconContainer");
dojo.require("dojox.mobile.Button");
dojo.require("dojox.mobile.SpinWheelDatePicker");
dojo.require("dojox.mobile.SpinWheelTimePicker");
現在,可以添加 "Hello World" 應用程序的主要代碼。本文中的示例使用了 Dojo Mobile 的聲明式語法,這意味著要使用帶特殊
Dojo Mobile 屬性的常規 HTML 標記,在運行時解析 Dojo Mobile 屬性。在代碼的部分中,添加清單 3 中的代碼。
Hello, World!
First Section
This is a nice standard rounded rectangular label.
Second Section
List Item 1
List Item 2
List Item 3
List Item 4
List Item 5
上述代碼定義了一個ScrollableView,它構成主要的應用程序界面。標準的View類與ScrollableView類之間的主要差異是:標準的View使用標準的瀏覽器機制來滾動頁面。ScrollableView類有自己的滾動機制,可以像原生應用程序一樣固定應用程序中的頁眉和頁腳,滾動它們之間的內容。
在ScrollableView中有一個Heading,它是包含文本 「Hello, World」
的標題欄。通過在這個對象上設置屬性fixed="top",Dojo Mobile
會將這個標題一直留在屏幕頂部,滾動它下面的其他內容。RoundRectCategory對象為圓形的列表或單一列表項定義了一個組標題。第一個類別後面是一個RoundRect框,其中包含一些靜態文本。然後是另一個類別標題和RoundRectList對象,該對象包含一系列ListItem對象。