中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術文檔 > 網頁制作 > 使用YUI 3開發(fā)Web應用的訣竅
重新認識CSS的權重 回到列表 firebug net面板詳解
 使用YUI 3開發(fā)Web應用的訣竅

作者:拔赤 時間: 2011-04-18 文檔類型:翻譯 來自:Taobao.com UED Team

第 1 頁 使用YUI 3開發(fā)Web應用的訣竅 [1]
第 2 頁 使用YUI 3開發(fā)Web應用的訣竅 [2]
第 3 頁 使用YUI 3開發(fā)Web應用的訣竅 [3]
第 4 頁 使用YUI 3開發(fā)Web應用的訣竅 [4]
第 5 頁 使用YUI 3開發(fā)Web應用的訣竅 [5]
第 6 頁 使用YUI 3開發(fā)Web應用的訣竅 [6]
第 7 頁 使用YUI 3開發(fā)Web應用的訣竅 [7]
第 8 頁 使用YUI 3開發(fā)Web應用的訣竅 [8]
第 9 頁 使用YUI 3開發(fā)Web應用的訣竅 [9]

所有在模塊的代碼頂部聲明的常量在模塊外都是不可見的,但你可能想使一些常量可見,比如CLASS_NAMES。此時,你只需在Y.Base.create的最后一個參數中,即聲明靜態(tài)成員的區(qū)域聲明:CLASS_NAMES: CLASS_NAMES

這樣這一對象及其包含的所有屬性都可通過Y.MyWidget.CLASS_NAMES來訪問。

我建議盡可能將widget的HTML字符串都調整好再執(zhí)行Y.Node.create。因為在Javascript中,字符串操作的速度比DOM操作快很多。在Y.Node.create調用前做的越多,代碼執(zhí)行的速度就越快。

所有widget還都會用到的方法就是bindUI。你可以在這個函數創(chuàng)建元素綁定事件,例如你可以給上面TEMPLATE中的<input>綁定valueChange事件,使textbox中值和配置屬性中的對應的值始終保持一致。代碼和用戶都有可能去修改input中的值。如果是來自內部代碼的更新值,textbox要刷新以顯示新值,如果改變來自用戶輸入則不用刷新。如不這樣,就會陷入死循環(huán):textbox的value屬性發(fā)生改變,觸發(fā)change事件,響應函數又改變textbox的值,這一改變又觸發(fā)了change事件……讓我們看看如何處理這一情況。我們在input上綁定自定義的valueChange事件,當然要先在模塊的requires中加入event-valuechange模塊。

this._eventHandles.push(this._inputEl.after(‘valueChange’, this._afterInputChange, this));

我們假設_inputEl對象指向textbox。事件響應函數如下:

_afterInputChange: function (ev) { this.set(VALUE, ev.target.get(VALUE),{source:UI}); },

這里假設我們事先已定義了表示value和ui的常量VALUE和UI。我們簡單的將配置屬性中的值設置為input中的值,我還給函數加了第三個參數{source:UI}。set函數可以接受第三個參數,這個參數是一個object對象,它的屬性可以加入attribute change事件的事件對象(event facade)中,由此就可以區(qū)別textbox的valueChange事件是來自內部代碼還是用戶輸入。在bindUI中,我們可能已經這樣設置了事件監(jiān)聽:

this._eventHandles.push(this.after(‘valueChange’,this._afterValueChange));

這是一個監(jiān)聽value變化的事件監(jiān)聽,上一個例子也是對<input>的value的變化作監(jiān)聽。兩個事件名稱都一樣,實際上,它們都是對一個叫做value的值的變化進行監(jiān)聽,但實際卻不一樣。通常,對屬性變化的監(jiān)聽會放在initializer里,而此例涉及改變UI元素,所以把它放在bindUI中,也提醒我們這個事件響應涉及textbox。事件響應函數如下:

_afterValueChange: function (ev) {
    if (ev.source === UI) {
        return;
    }
    this._inputEl.set(VALUE, ev.newVal);
},

首先我們檢查事件對象的source屬性。如果事件來自UI,我們直接忽略。在這里,屬性名UI和它的值都是任意的,你可以根據自己喜好定義。我在設定value的屬性值時定義了UI和它的值,所以在這里我就可以訪問UI這一屬性,你也可以用其它的鍵值對。實際上,widget也提供了一個相同功能的常數Y.Widget.UI_SRC,只是名字有點長,所以我寧愿自己定義。

一個小技巧:你可以使用_set代替set來改變只讀屬性的值。_set方法本來是作為受保護方法,只能在類及其子類中訪問的,但是javascript中對象成員都是公有的,所以_set實際上是個公共方法,外部也能訪問。即使這樣,我們還是會給只讀屬性聲明readOnly:true,并且在API文檔里也將這一屬性標為只讀。

最后一個實例方法是syncUI。前兩個方法renderUI和bindUI會且僅會執(zhí)行一次,但syncUI則至少被widget自身調用一次,你也可以在后面的程序中多次調用這個方法。syncUI的作用是根據對象的狀態(tài)刷新其外觀。對象的狀態(tài)可能一直在變化, 界面也會跟著變化。不過,如何編寫這個方法不能一概而論,要根據具體情況。對于簡單的用戶界面,syncUI可以在每次有變化發(fā)生時都重繪界面中的全部內容。而對于復雜的用戶界面,重繪整個界面費時且會造成圖像閃爍,所以你最好只重繪發(fā)生變化的部分,這樣的話,你就需要將重繪不同部分的代碼分別放在不同的函數中,syncUI會將每一部分只調用一次。還有,在先前的renderUI的例子中,我改變了textbox的值,而只有在syncUI執(zhí)行之后,這一變化才能在屏幕上顯示出來。

更常見的使用方法是給每個UI元素設置單獨的重繪函數。這個函數會在初始化時被syncUI調用一次,之后會在配置屬性的發(fā)生變化后,通過事件響應函數調用。例如

_valueUIRefresh: function (value) {
    this._inputEl.set(VALUE, value);
}

這一函數和其它相似功能的重繪函數會在syncUI中被調用:

syncUI: function () {
    this._valueUIRefresh(this.get(VALUE));
    // other such refreshers
},

在after事件響應函數中的代碼如下:

_afterValueChange: function (ev) {
    if (ev.source === UI) {
        return;
    }
    this._valueUIRefresh(ev.newVal);
},

出處:Taobao.com UED Team
責任編輯:bluehearts

上一頁 使用YUI 3開發(fā)Web應用的訣竅 [5] 下一頁 使用YUI 3開發(fā)Web應用的訣竅 [7]

◎進入論壇網頁制作WEB標準化版塊參加討論,我還想發(fā)表評論

相關文章
構建成功web應用的十項黃金法則
作者文章
什么是Node?
JS語法檢查插件 jsLint for Vim
一場關于YUI3/jQuery的精彩辯論
YUI3設計中的激進和妥協
關鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設計比賽 網頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設計大賽開啟
國際體驗設計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數企業(yè)唯一擁抱互聯網的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯網觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標
數據同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:6/91個記錄/頁 轉到 頁 共9個記錄

藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。

轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內容無關的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網上道德,遵守中華人民共和國的各項有關法律法規(guī)
·承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
·本站評論管理人員有權保留或刪除其管轄評論中的任意內容
·您在本站發(fā)表的作品,本站有權在網站內轉載或引用
·參與本評論即表明您已經閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內容
網站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網站UI 設計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設計》
犀利開發(fā)—jQuery內核詳解與實踐
作品集 更多內容

雜⑦雜⑧ Gold NORMANA V2