精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用jQuery Mobile制作記事本

開發 前端
設計應用的總體架構;創建一個基本的用戶界面模型;使用Jasmine開發框架定義應用的公共接口;開始實現已定義的公共接口。

在本系列教程的第一部分,將首先看下系統的整體設計,將完成如下的幾個步驟:

設計應用的總體架構;創建一個基本的用戶界面模型;使用Jasmine開發框架定義應用的公共接口;開始實現已定義的公共接口。

應用的總體架構

我們打算記事本應用能提供如下功能:創建記事;編輯記事內容;刪除記事內容;將記事的內容保存在移動客戶端中;查看所有已建立的記事列表。

主界面效果

首先我們要實現的是一個可以增加和編輯記事的界面,我們將這個界面命名為Note Editor。界面看上去應該是如下圖的樣子(下圖是個設計草稿圖):

Jquery Mobile 實戰制作記事本

此外,我們需要一個記事的列表的界面,以顯示已經存在的記事,這個是我們啟功應用程序時首先顯示給用戶的主界面,主界面如下所示:

Jquery Mobile 實戰制作記事本

接下來,看下如何使用BDD行為驅動的方式進行開發

使用Jasmine Framework框架進行為驅動開發

首先,我們將一步以實例的方式,一邊讓用戶體驗什么是行為驅動模式的開發。這種開發模式,能讓我們先行定義和測試業務邏輯,可以跟表現層進行分離地設計。先來看下如何使用Jasmine framework這個框架。

Jasmine是一個允許開發者使用行為驅動的方式對Javascript進行測試的框架。這意味著開發者可以使用類似自然語言(易于理解)的方式,通過Jasmine編寫測試用例,最后生成Javascript代碼,這樣明顯降低了開發的難度,甚至讓不是專業程序員的人也能讀懂和編寫。

下面快速舉一個例子來說明Jasmine框架的使用,更復雜的用法,請參考其官方網站的手冊,這個例子希望讀者能理解,我們將在教程中稍后會用到。

  1. describe("Notes functions", function () {  
  2.     it("Should return a NoteModel instance", function () {  
  3.         var note = Notes.app.createNote();  
  4.         expect(note instanceof Notes.model.NoteModel).toBeTruthy();  
  5.     });  
  6. });  

在這個例子中,我們使用了多種Jasmine框架的特性。其中一個函數方法就是describe(),這個函數用來創建一個包含所有相關的測試的規格說明,我們稱之為測試套件。

其中,一個測試規格說明是通過函數方法it()中聲明的。當調用it()方法時,要傳遞一個字符串參數進去,比如這里,我們期待代碼能創建并返回一個NoteModel的實例。

接下來,我們通過 var note = Notes.app.createNote();創建了NoteModel的實例,然后使用了expect()函數這個斷言(在單元測試中我們稱之為斷言),這里是斷言判斷note是否為Notes.model.NoteModel的一個實例,并使用toBeThruthy()這個匹配器去判斷這個測試用例是否能正確通過測試。關于匹配器請參考(https://github.com/pivotal/jasmine/wiki/Matchers )。

小結一下,在it()這個函數中,開發者可以編寫相關的代碼建立測試用例,并可以多次調用expect()方法。

#p#

Jasmine的使用步驟

下面我們開始正式使用Jasmine 框架,首先我們來看下其目錄結構。首先我們為項目創建一個名為NoteApp的文件夾。在這個主文件夾下,再創建一個名為app的目錄,這個目錄中將存放的是程序的應用邏輯和表示層的頁面文件。創建一個名為spec的目錄,這個目錄中存放的是Jasmine的測試套件。除此之外,我們還創建一個lib的目錄,這個目錄保存的是項目中要用到的一些目錄,整個目錄架構如下圖:

Jasmine的使用步驟

在上圖中,讀者可能奇怪jqm和jstorage兩個文件夾存放的是什么,jqm存放的是jquery mobile的框架文件,而jstorage存放的是jstorage框架的文件,在接下來的學習中將會詳細介紹。

接著,我們可以將下載到的jasmine框架的文件解壓后,放到jasmine目錄下,如下圖:

Jasmine的使用步驟

接下來,我們開始編寫應用的第一個代碼文件,一個是名為app.js,放在app目錄下,另外一個是jasmine的測試程序,文件為Appsec.js,文件的保存位置如下圖:

Jasmine的使用步驟

最后,我們將編寫一個名為specrunner.html的文件,這個文件中將會運行調用jasmine的測試用例。這個文件實際在jasmine的下載包中存在,但我們要對其進行一些必要的修改,以使其引用到恰當的類庫文件,代碼如下:

  1.       <!-- HEAD --> 
  2.    <!-- Jasmine includes --> 
  3.     css" rel="stylesheet" type="text/css" /> 
  4. <script type="text/javascript" 
  5. src="../lib/jasmine/jasmine-html.js" type="text/javascript"> 
  6. </script> 
  7.     <!-- Source files --> 
  8.     <script src="app/App.js" type="text/javascript"></script> 
  9.     <!-- Spec files --> 
  10.     <script src="spec/AppSpec.js" type="text/javascript"></script> 
  11.    <!-- BODY -->   
  12.    <script type="text/javascript">   
  13.     jasmine.getEnv().addReporter(new jasmine.TrivialReporter());    
  14.     jasmine.getEnv().execute();    
  15. </script> 

最后,我們把這個文件放到恰當的位置,如下圖:

Jasmine的使用步驟

#p#

開始編寫邏輯代碼

接下來,我們開始使用jasmine框架以BDD驅動方式編寫主要的代碼。BDD的方式需要我們不斷編寫和修改單元測試用例AppSec.js,讓我們就從AppSec.js這個文件開始吧。

首先,我們必須斷言命名空間是存在的,所以可以在AppSec.js文件中,編寫如下代碼:

  1.    describe("Public interface exists", function () {  
  2.     it("Defines the app", function () {  
  3.         expect(Notes.app).toBeDefined();  
  4.     });  
  5. }); 

注意我們在一個名為Public interface exists的測試套件中,編寫了測試說明用例。在這個測試套件中,將保存所有對業務邏輯的公共函數測試的用例,這里只是簡單去斷言應用的命名空間是否已經定義。

接下來我們開始進行測試,使用瀏覽器中打開specrunner.html這個文件,可以看到如下圖的結果:

開始編寫邏輯代碼

可以看到,出現了錯誤的提示:Notes is not defined。這是正確的,因為我們的代碼中還沒定義命名空間,接下來我們編寫代碼修正之,如下:

  1.   var NotesNotes = Notes || {}  
  2.  
  3.   Notes.app = (function () {  
  4.  
  5.   return {}  
  6.  
  7.   })();  

這里我們定義了應用的命名空間,再次運行jasmine測試框架,結果如下圖:

開始編寫邏輯代碼

現在我們可以總結出其步驟:先定義出行為,然后為行為編寫測試用例,然后運行測試,看測試是否通過,不通過的話就修改代碼,再運行測試直到其再次通過,這就是典型的BDD開發方法。

接下來,我們需要將一些記事的內容列表由業務邏輯端返回給前端的表現層,因此我們使用如下的jasmine的行為規格說明去定義,繼續往測試套件中增加如下代碼:

  1.             describe("Public interface exists", function () {  
  2.  
  3. it("Should have public interface to return notes list", function () {  
  4.  
  5. expect(Notes.app.getNotesList).toBeDefined();  
  6.  
  7. });  
  8.  
  9. }); 

這個測試用例斷言測試是否已經定義了顯示記事列表的方法getNotesList。再編寫另外一個測試用例,稍微復雜點的,如下:

  1.   describe("Public interface implementation", function () {  
  2.  
  3. it("Should return notes list", function () {  
  4.  
  5. var notesList = Notes.app.getNotesList();  
  6.  
  7. expect(notesList instanceof Array).toBeTruthy();  
  8.  
  9. });  
  10.  
  11. }); 

這個測試用例,主要用來斷言測試返回的記事列表是否是一個數組。 注意我們現

在新建立了一個測試套件,名為 Public interface implementation,在這個測試套件中,專門存

放的是針對接口實現的測試用例。再次在瀏覽器中運行,可以看到如下圖:

開始編寫邏輯代碼

可以看到,兩個測試用例都出錯了,沒關系,我們馬上編寫代碼修正:

  1.   Notes.app = (function () {  
  2.  
  3. var notesList = [];  
  4.  
  5. function getNotesList() {  
  6.  
  7. return notesList;  
  8.  
  9. }  
  10.  
  11. return {  
  12.  
  13. getNotesList: getNotesList  
  14.  
  15. }  
  16.  
  17. })(); 

再次運行測試,結果如下圖,這次我們通過了測試。

開始編寫邏輯代碼

接下來的步驟

接下來,我們將使用jQuery Mobile開始正式開始編寫我們的業務邏輯層代碼了。請留意本教程系列的第2講。

原文鏈接:http://www.byhtml5.com/hjc/2012-01-20/504_7.html

【編輯推薦】

  1. 印象深刻的jQuery手風琴效果應用
  2. jQuery基本事件代碼優化
  3. 支持同一頁面多次使用的jQuery插件
  4. jQuery可多次使用的星級插件
  5. jQuery從入門到精通
責任編輯:張偉 來源: byhtml5
相關推薦

2009-09-03 13:08:43

C#調用記事本

2011-09-15 19:17:11

windows 7記事本

2012-05-29 16:09:29

天天記事云記事本DSM記事本

2009-09-03 13:48:46

C#調用記事本記事本程序

2024-03-08 15:03:43

惡意軟件網絡攻擊

2009-04-02 08:42:06

Windows 7微軟操作系統

2021-10-11 05:36:04

Windows 11操作系統微軟

2011-09-15 13:32:16

2012-06-05 13:45:55

天天記事DSM記事本

2009-09-03 12:52:50

C#打開記事本

2021-03-25 11:19:34

Windows 10Windows微軟

2024-01-16 18:17:20

微軟AI

2012-05-16 14:03:30

軟件、iphone

2021-10-12 05:41:25

Windows 11操作系統微軟

2014-07-04 13:33:03

jQueryjQuery Mobi

2021-05-11 16:36:19

Windows 10Windows微軟

2012-05-05 07:07:34

DSM記事本iPhone版本

2022-02-16 16:22:19

微軟記事本Groove Mus

2011-09-08 17:35:13

Windows7記事本

2012-03-02 10:22:09

傲游3.3.5發布
點贊
收藏

51CTO技術棧公眾號

亚洲精品一区二区三| 亚洲精品乱码久久久久久蜜桃麻豆| 手机精品视频在线观看| 欧美日韩精品三区| 欧美极品少妇xxxxⅹ免费视频 | 久久99国产成人小视频| 国产精品成人网| 国产91精品不卡视频| 在线免费黄色网| 免费在线超碰| 国内精品偷拍| 亚洲精品国产精品乱码不99| 国产精品吴梦梦| 欧美在线播放一区二区| 精品一区二区三区香蕉蜜桃| 国产丝袜在线视频| 乳色吐息在线观看| 亚洲熟女乱色一区二区三区久久久| 日韩免费成人| 国产精品午夜春色av| 欧美一级在线亚洲天堂| 一本一本久久a久久| 日韩精品专区| 99re这里只有精品首页| 欧美激情精品久久久久久黑人 | 亚洲制服丝袜在线播放| 国产日产一区二区| 日韩av在线播放中文字幕| 日韩精品亚洲元码| 草草视频在线免费观看| 国产高清视频免费| 欧美激情视频一区二区三区在线播放 | 在线视频观看一区| 九色综合婷婷综合| 亚洲天堂一区在线观看| 亚洲va久久| 色中色一区二区| 视频一区国产精品| 中文天堂在线视频| 亚洲成人国产| 欧美成人精精品一区二区频| 日韩日韩日韩日韩日韩| 五月婷婷在线观看视频| 老鸭窝毛片一区二区三区| 亚洲人成伊人成综合网久久久| 男人的天堂日韩| 欧美r级在线| 国产成人免费xxxxxxxx| 久久久久久久久久久网站| 国产在线免费看| 99这里只有精品视频| 亚洲18色成人| 农村寡妇一区二区三区| 91福利在线观看视频| 欧美久久99| 日韩视频欧美视频| 亚洲自拍偷拍精品| 成人影院av| 亚洲欧美日韩久久| 久久久精品有限公司| 免费av网站观看| 日韩精品电影在线观看| 久久国产精品久久国产精品| 特大黑人巨人吊xxxx| 巨大黑人极品videos精品| 一二三四社区欧美黄| 久久日韩精品| 性感美女福利视频| 91一区二区在线| 欧美精品二区三区四区免费看视频| 中文字幕第99页| 日韩精品国产精品| 国产精品国产三级国产aⅴ9色| 神马午夜精品91| 麻豆一区一区三区四区| 欧美老年两性高潮| 久色视频在线播放| 8888四色奇米在线观看| proumb性欧美在线观看| 国产精品视频地址| 日产精品久久久久| 久久精品高清| 日韩精品免费在线播放| 国产精品久久久久久久99| 国产精品视频一区视频二区 | 四虎4hu永久免费入口| 成人久久久精品国产乱码一区二区| 久久一本综合频道| 国产精品美女www| 国产精品怡红院| 久久精品男女| 国产精品丝袜一区二区三区| 国产jzjzjz丝袜老师水多 | 在线观看成人小视频| 久久久国产欧美| 国产乱码在线| 中文字幕一区二区三| 浴室偷拍美女洗澡456在线| 国产精品一区在线看| 成人18视频在线播放| 亚洲在线第一页| 亚洲天堂狠狠干| 国产福利电影一区二区三区| 欧美凹凸一区二区三区视频| 麻豆电影在线播放| 婷婷综合五月天| 欧美日韩三级视频| 国产成人一二三区| 粉嫩一区二区三区国产精品| 亚洲啪啪综合av一区二区三区| 丁香六月激情网| 在线xxxx| 亚洲色图在线看| 人妻少妇精品久久| 久久亚洲精品人成综合网| 欧美精品一区男女天堂| 男人添女人荫蒂国产| av成人在线网站| 欧美日韩1234| 波多野结衣先锋影音| 亚洲精品一区二区在线看| 日韩精品视频免费专区在线播放| 中文字幕有码在线播放| 国产美女撒尿一区二区| 一区二区欧美激情| 日本黄色小视频在线观看| 欧美日韩国产在线一区| 国产精品丝袜白浆摸在线| 水中色av综合| 久久久久久久综合| 日韩美女一区| 尤物网址在线观看| 亚洲青青青在线视频| 可以在线看的黄色网址| 主播大秀视频在线观看一区二区| 欧美视频中文字幕| 亚洲黄色av片| 97人人澡人人爽91综合色| 一个人www欧美| 国产精品视频免费播放| 国产东北露脸精品视频| 天天综合中文字幕| 色在线视频网| 天天综合日日夜夜精品| 性色av浪潮av| **女人18毛片一区二区| 国产精品嫩草影院久久久| 青青草在线播放| 国产精品美女久久久久aⅴ| 一区二区三区四区久久| 久草在线资源站资源站| 色诱视频网站一区| 精品人妻一区二区免费视频| 欧美女人交a| 91精品久久香蕉国产线看观看| 图片区 小说区 区 亚洲五月| 亚洲精品欧美在线| 久久网站免费视频| 九七电影院97理论片久久tvb| 亚洲男人天堂2019| 国产在视频线精品视频| 伊人久久亚洲美女图片| 国产精品福利网站| 九九九伊在人线综合| 综合激情成人伊人| 91视频 -- 69xx| 午夜a一级毛片亚洲欧洲| 日韩中文字幕视频| 亚洲一二区视频| 日韩毛片一二三区| 免费欧美一级片| 亚洲午夜久久久久久尤物| 国产精品大片wwwwww| 国产香蕉视频在线看| 欧美在线观看18| 中国1级黄色片| 国产麻豆精品95视频| 农村寡妇一区二区三区| 欧美free嫩15| 亚洲精品久久久久久久久久久| 成人做爰视频网站| 国模无码大尺度一区二区三区| 蜜桃成人在线| 99久久精品一区二区成人| 日韩国产精品亚洲а∨天堂免| 天堂网一区二区三区| 国产精品白丝jk白祙喷水网站| 男人天堂新网址| 日韩极品少妇| 国产精品中文字幕在线观看| av片在线观看网站| 亚洲精品www久久久| 一级黄色在线观看| 91性感美女视频| 国产xxxx振车| 亚洲素人在线| 成人亚洲激情网| av中文在线| 色先锋久久av资源部| 婷婷国产成人精品视频| 成人免费毛片aaaaa**| 8x8x华人在线| 欧美顶级毛片在线播放| 国产精品4hu.www| 亚洲激情亚洲| 国产日韩欧美91| 色婷婷综合视频| 一区二区三区在线观看欧美| 中国av免费看| 国产综合色在线| 咪咪色在线视频| 精品国产午夜肉伦伦影院| 国产乱肥老妇国产一区二| 国产高清在线a视频大全| 国产性色av一区二区| 黄色av网站免费观看| www一区二区| 99精品视频免费版的特色功能| 天天射综合网视频| 91九色精品视频| 爆操欧美美女| 日韩一区二区三区免费观看| 亚洲国产123| 91丨九色丨蝌蚪富婆spa| 中文字幕剧情在线观看| 首页亚洲欧美制服丝腿| av高清在线免费观看| 亚洲区综合中文字幕日日| 欧美在线激情| 日韩精品免费一区二区夜夜嗨 | 午夜激情成人网| 欧美激情第1页| 国产区在线看| 日韩视频免费看| jizz在线免费观看| 亚洲免费高清视频| 亚洲AV成人无码一二三区在线| 欧美不卡在线视频| 国产日韩一级片| 欧美日韩的一区二区| 中文字幕av无码一区二区三区| 色狠狠综合天天综合综合| 短视频在线观看| 日韩综合在线视频| 国产黄色一级网站| 夜夜嗨一区二区三区| 日韩亚洲不卡在线| 蜜桃精品wwwmitaows| 九九99玖玖| 日韩欧美激情| 久久久人成影片一区二区三区| 飘雪影院手机免费高清版在线观看 | 国产麻豆精品| 91精品久久久久久| 伊人久久大香线蕉综合影院首页| 91精品久久久久久久久久久| 看片一区二区| 成人黄色av免费在线观看| 四虎在线精品| 91在线免费网站| 日韩一区二区三区高清在线观看| 亚洲xxxx视频| 超碰成人在线观看| 久草精品电影| 国产精品一区二区三区av麻| 91精品久久久久久久久中文字幕 | 国产日韩欧美电影在线观看| 日韩综合久久| 亚洲综合中文字幕68页| 91九色鹿精品国产综合久久香蕉| 欧美资源在线观看| 国产三区视频在线观看| 欧美成人免费一级人片100| 97影院秋霞午夜在线观看| 欧美成年人网站| 色呦呦在线免费观看| 午夜精品三级视频福利| 欧美精品日韩少妇| 久久久国产一区二区三区| 亚洲 小说区 图片区 都市| 精品爽片免费看久久| 国内在线免费高清视频| 日韩在线视频二区| 香蕉av在线播放| 亚洲视频网站在线观看| 欧美被日视频| 97色在线播放视频| 成人午夜精品| 亚洲最大av在线| 亚洲va久久| 青草全福视在线| 羞羞视频在线观看欧美| 九九热只有这里有精品| 美女诱惑一区| 一级黄色片在线免费观看| 成人97人人超碰人人99| 国产福利在线导航| 亚洲成人免费av| 欧美三级免费看| 亚洲欧洲韩国日本视频| 九九热国产在线| 亚洲美女视频在线观看| 日本中文字幕免费| 欧美日韩国产电影| 天天干天天做天天操| 少妇激情综合网| 五月天av在线| 91精品国产亚洲| www成人在线| 亚洲综合激情另类小说区| youjizz在线视频| 午夜精品久久久久久久99樱桃| 国产精品无码一区| 狠狠色香婷婷久久亚洲精品| 中日韩黄色大片| 欧美日本国产一区| 日本一区高清| 久久久精品在线| 日韩精品三区| 久久99精品久久久久久水蜜桃| 亚洲天堂一区二区三区四区| 国产黄色特级片| 99久久精品免费看国产免费软件| 女性裸体视频网站| 91成人在线免费观看| 黄色一级大片在线免费看国产一 | 国产一区二区三区的电影| 欧美图片激情小说| 久久激情五月婷婷| 捷克做爰xxxⅹ性视频| 国产亚洲短视频| 国产视频123区| 狠狠色狠色综合曰曰| 色窝窝无码一区二区三区成人网站| 久久国产精品久久国产精品| 啪啪av大全导航福利综合导航| 日本不卡久久| 老司机一区二区三区| 亚洲成人av免费在线观看| 亚洲国产精品综合小说图片区| 精品久久久久成人码免费动漫| 亚洲第一级黄色片| 可以在线观看的av网站| 午夜美女久久久久爽久久| 91免费精品国偷自产在线在线| 黄色一级片av| 国产一区二区美女诱惑| 免费看特级毛片| 欧美剧在线免费观看网站| se在线电影| 国产欧美日韩中文字幕| 欧美gayvideo| 中文字幕永久有效| 成人免费看黄yyy456| 欧美成人精品激情在线视频| 欧美一区二区三区在线| 日本一级在线观看| 欧美中文在线观看| 蜜乳av综合| www.涩涩涩| 成人综合在线网站| 久久亚洲AV无码| 欧美色手机在线观看| 高潮毛片7777777毛片| 欧美激情小视频| 国产成人澳门| 国产精品沙发午睡系列| www激情久久| 成人免费一区二区三区| 久久精品国产视频| 91亚洲精品视频在线观看| 成 年 人 黄 色 大 片大 全| 麻豆精品在线观看| 少妇高潮在线观看| 日韩一级片在线观看| 91九色国产在线播放| 成人国产在线视频| 欧美日韩1区| 99久久人妻无码中文字幕系列| 日韩欧美一区二区三区| 国产精品探花视频| 欧美另类交人妖| 精品久久99| 永久免费看av| 99精品久久99久久久久| 天堂网免费视频| 久久精品国产欧美亚洲人人爽| 99re6热只有精品免费观看| 日本网站免费在线观看| 国产免费观看久久| 久久亚洲精品国产| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 国产在线播放一区三区四| 国产无码精品在线播放| 91麻豆精品91久久久久同性| 国产在线资源| 成人伊人精品色xxxx视频| 最新亚洲视频| 激情五月深爱五月| 日韩精品专区在线|