<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    duansky'weblog

    統(tǒng)計

    留言簿(3)

    友情鏈接

    閱讀排行榜

    評論排行榜

    關(guān)于extjs開發(fā)的方式

    我覺得,開發(fā)EXTJS,首先要建立的就是組件化編程,你把一個form作為一個組件,也可以將半個頁面都作為一個組件.當(dāng)組件化編程之后你就要考慮分類別,分模塊開發(fā)了,

    我認(rèn)為,一個組件一個JS文件,多個組件拼接成一個模塊,這些組件都放在一個文件夾下,命名方法其實很簡單,類似java如:
    在App文件夾下的Scene文件夾內(nèi)
    App.Scene.ScreenManager.js
    ??? Ext.namespace("App.Scene.ScreenManager.XX","App.Scene.ScreenManager.YY");

    App.Scene.ScreenControl.js
    ??? Ext.namespace("App.Scene. ScreenControl.XX","App.Scene. ScreenControl.YY");

    App.Scene.Main.js
    ??? Ext.namespace("App.Scene. Main.XX","App.Scene.Main.YY");

    在App文件夾下的Business文件夾內(nèi)
    App.Business.CheckUser.js
    ??? //同上
    App.Business.Logout.js
    ??? //同上

    并且,切記,要把Extjs當(dāng)做java來寫,因此,你的程序只能有一個入口即只能允許整個程序中只出現(xiàn)一個
    Ext.onReady(function(){

    });
    很多人不信Extjs可以這樣寫,說只能應(yīng)用在小型的項目中,但是我可以告訴你,這樣的寫法完全適用與大項目,而且是項目越大越能展現(xiàn)出他的好處

    我經(jīng)歷過刻骨銘心的失敗總結(jié)出以下幾點經(jīng)驗:
    1.絕不使用全局變量(如有必要,可以用靜態(tài)方法來做)
    2.不能設(shè)置組件的(包括該組件下的小組件的)ID這個屬性,(此組件的派生類你可以隨意).
    3.稀奇古怪的代碼少寫,因為你不能保證你的EXTJS版本永遠(yuǎn)停留在當(dāng)前版本上(如果公司有錢買授權(quán)的話)
    4.能在后臺完成的業(yè)務(wù)邏輯堅決不在前臺做,即使在前臺做看起來比較簡單(如果前臺坐起來非常簡單就算了,例如驗證)
    5.統(tǒng)一管理你的JSON生成.
    6.規(guī)范你的代碼


    我下面有一段代碼是我的風(fēng)格,當(dāng)然可能并不適合你:
    Js代碼 復(fù)制代碼
    1. Ext.ns("App.Users.CURD"); ??
    2. /** ?
    3. ?*?必要的注釋一個不能少,Javascript代碼維護(hù)起來沒有java好維護(hù).... ?
    4. ?* ?
    5. ?*/??
    6. App.Users.CURD?=?Ext.extend(Ext.Panel,{ ??
    7. ????//屬性代碼全部寫在這里 ??
    8. ????title:"CURD", ??
    9. ????//初始化組件(如果你的組件需要改變樣式或者需要動它的dom,你可以重寫父類的onRender,并把部分視圖代碼放在onRender函數(shù)中) ??
    10. ????initComponent:function(){ ??
    11. ????????App.Users.CURD.superclass.initComponent.call(this,arguments); ??
    12. ????????//先定義自定義事件(如果必要的話) ??
    13. ???????? ??
    14. ????????//接著視圖代碼全部寫在這里 ??
    15. ??
    16. ????}, ??
    17. ????//方法函數(shù)全部寫在這里 ??
    18. ????//先將與后臺數(shù)據(jù)交互的函數(shù)寫出來 ??
    19. ????addUser?:?function()?{ ??
    20. ????????//對應(yīng)后臺同名的Action方法函數(shù) ??
    21. ????}, ??
    22. ????delUser?:?function()?{ ??
    23. ????????//對應(yīng)后臺同名的Action方法函數(shù) ??
    24. ????}, ??
    25. ????updateUser?:?function()?{ ??
    26. ????????//對應(yīng)后臺同名的Action方法函數(shù) ??
    27. ????}, ??
    28. ????//供自己內(nèi)部使用的函數(shù)跟在后面 ??
    29. ????formClear?:?function()?{ ??
    30. ??
    31. ????}, ??
    32. ????//提供給外部調(diào)用的函數(shù)緊跟數(shù)據(jù)操作 ??
    33. ????getSelectUsers?:?function(){ ??
    34. ????????return?...... ??
    35. ????} ??
    36. ????setXXXX?:?function()?{ ??
    37. ????}, ??
    38. ????//最后就是事件處理函數(shù),因為函數(shù)比較多,事件處理往往伴隨著頁面邏輯,放在后面比較好找....混在中間不太好找 ??
    39. ????onSubmit?:?function()?{ ??
    40. ??
    41. ????}, ??
    42. ????onDelet?:?function()?{ ??
    43. ??
    44. ????} ??
    45. }); ??
    46. ??
    47. //*因為是基于UI的組件,因此一般都可以獨立測試,測試通過后注釋掉即可(注意我的注釋寫法) ??
    48. Ext.onReady(function(){ ??
    49. ????//......... ??
    50. }); ??
    51. //*/??



    最后一句....無論是ASP.NET組件(Coolite)還是什么可視化組件,前期學(xué)習(xí)都不要使用.

    轉(zhuǎn)自: http://www.javaeye.com/topic/486697

    posted on 2009-10-16 22:36 duansky 閱讀(375) 評論(0)  編輯  收藏 所屬分類: Ext

    主站蜘蛛池模板: 亚洲精品tv久久久久| av大片在线无码免费| 人成免费在线视频| 国产AV日韩A∨亚洲AV电影| 亚洲国产欧美一区二区三区| 亚洲成人激情小说| 亚洲国产精品无码久久98| 亚洲入口无毒网址你懂的| 亚洲欧洲日韩极速播放| 亚洲一久久久久久久久| 亚洲日本一线产区和二线| 亚洲欧美自偷自拍另类视| 在线观看亚洲免费视频| 手机永久免费的AV在线电影网| 免费人成又黄又爽的视频在线电影| 男人和女人高潮免费网站| 九九综合VA免费看| baoyu122.永久免费视频| 久久久免费的精品| 亚欧免费视频一区二区三区| 国产片AV片永久免费观看| 亚洲成在人线aⅴ免费毛片| 日本高清免费网站| 亚洲高清无码在线观看| 亚洲热线99精品视频| 久久久久亚洲AV片无码下载蜜桃| 91亚洲导航深夜福利| 亚洲自国产拍揄拍| 国产亚洲福利一区二区免费看| 九九九精品视频免费| 精品无码国产污污污免费网站| 久久久久久国产精品免费免费 | 亚洲色大情网站www| 久久久久久亚洲av无码蜜芽| 一级毛片免费在线| 久久久久久影院久久久久免费精品国产小说| 免费人成在线观看69式小视频| 日韩免费一级毛片| 亚洲精品成人网站在线观看| 亚洲国产成人久久三区| 午夜在线亚洲男人午在线|