我是FE,也是Fe

          前端來源于不斷的點(diǎn)滴積累。我一直在努力。

          統(tǒng)計(jì)

          留言簿(15)

          閱讀排行榜

          評論排行榜

          企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架

          在過去的很長的一段時(shí)間,我都從事b/s應(yīng)用系統(tǒng)開發(fā),我要做的事情就是怎樣做界面規(guī)范以保證UI風(fēng)格統(tǒng)一,同時(shí)保證開發(fā)的高效性。具體而言,我要做的工作需要把css寫好,開發(fā)者做界面時(shí)能方便的寫html和樣式。可更多的經(jīng)歷我都花在javascript上。

          問題一:要不要采用javascript框架?

          我剛到公司的時(shí)候,我們的技術(shù)架構(gòu)師是不同意使用javascript 框架。理由很多,javascript 沒有得到應(yīng)有的重視是主要的原因,他一直強(qiáng)調(diào)我們做的是應(yīng)用系統(tǒng)。所以他只在網(wǎng)上找到幾個(gè)js放在項(xiàng)目下面,然后頁面上很亂,要寫一顆樹展現(xiàn)真是麻煩又麻煩。而且大家的javascript水平都很一般,基本只是稍微了解一點(diǎn)。用的最多的還是數(shù)據(jù)校驗(yàn),寫的方法還是document.form1.formname,document.add['id']之類的寫法。這讓我這個(gè)天天關(guān)注界面的技術(shù)人員(冒昧自稱技術(shù)人員,其實(shí)只是在界面層上有點(diǎn)研究而已)真是抓狂。很諷刺的是,為了使用一個(gè)小窗口彈出錯(cuò)誤信息,把jqeury+ui搬出來。整個(gè)項(xiàng)目也只有這么一個(gè)地方用到j(luò)query,去年的時(shí)候jquery的人氣正在攀升。我來了之后,由于自己輩分小,在技術(shù)上說不上話,后來大家界面上開發(fā)的時(shí)候遇到這個(gè)那個(gè)問題解決不了的時(shí)候,大家慢慢的認(rèn)識到了我的價(jià)值。新的項(xiàng)目領(lǐng)導(dǎo)讓我負(fù)責(zé)界面規(guī)范這塊,公司也想把這個(gè)項(xiàng)目做成一個(gè)產(chǎn)品。經(jīng)過很多次“力薦”,我終于說服了大家,我們不能再"IE only" 了。

          我認(rèn)為使用的理由: 一,我們要有兼容各種瀏覽器的能力,現(xiàn)在新的瀏覽器大戰(zhàn)正在打響,將來的瀏覽器市場還很難說。在css這方面 我借鑒了ext 的兼容思想,在body標(biāo)簽上加上class "IE IE6",這樣我們不要使用hack 去兼容瀏覽器了。對于javascript上,基本上只有IE和非IE的差別了。主流的javascript框架都提供了很好的瀏覽器支持。二,用javascript框架的目的是提高開發(fā)效率。這與主流的javascript不謀而合。三,web應(yīng)用正在飛速發(fā)展,界面層應(yīng)用越來越復(fù)雜,javascript不在一個(gè)校驗(yàn)數(shù)據(jù)的腳本了,ajax的應(yīng)用能很好的提升用戶體驗(yàn),有些場合使用ajax,用戶操作更加方便。舉個(gè)很簡單的例子,很多的記錄需要排序,雖然在數(shù)據(jù)上來看,只要改變排序值能解決問題,但在界面上,難道要用戶去填寫排序值,這樣用戶會(huì)覺得很難操作,而用上sortable,這個(gè)問題不僅簡單,而且操作起來不知道清晰多少。我們從傳統(tǒng)的c/s走到b/s不僅是因?yàn)閎/s 不需要安裝,升級容易。還是因?yàn)閎/s具有更前的表現(xiàn)力。

          當(dāng)然,反對使用javascript框架的理由也很尖銳。一,開發(fā)人員的水平很難以掌握現(xiàn)有的javascript框架。二,大家堅(jiān)持認(rèn)為,其實(shí)現(xiàn)在用的javascript的地方還不是很多。從需求上將屈指可數(shù),tree,borderlayout,grid,calendar。

          對此,我提出的想法就是,大家如果覺得難以使用的話,我在javascript框架上做一次封裝,降低使用難度。第二個(gè)理由更好說,雖然現(xiàn)在使用的地方就那么幾個(gè),那好,你能拿出更好的方案么。曾經(jīng)架構(gòu)師說,我們希望每一個(gè)界面控件都是單獨(dú)的,能單獨(dú)使用。當(dāng)然現(xiàn)在的主流javascript 都是這樣的。這樣,我就在大家仍用懷疑的眼光注視我的時(shí)候開始了javascript框架之旅。

          問題二:用哪個(gè)javascript框架?

          這個(gè)問題不是在討論或者爭執(zhí)哪個(gè)好哪個(gè)不好,未免大家再又爭執(zhí),我讓他們自己找javascript框架,甚至可以把他們最熟悉的拿出來使用。大伙都說沒有時(shí)間,這樣我也不擔(dān)心有人說后話了。

          我把目前主流的javascript分為三類。

          諸如:prototype/jquery/mootools這樣的javascript框架,只能是javascript工具。他的優(yōu)勢就是擴(kuò)展性強(qiáng),社區(qū)支持很好,尤其是jquery

          第二類就是:yui/ext/dojo/qooxdoo這樣的框架。他們是一套全系列的純客戶端的ui解決方案,使用方便,能滿足我們的需要。缺點(diǎn)是入口很高,適用于做富客戶端。雖然我們現(xiàn)在的應(yīng)用還是很多,但是還沒有到那個(gè)地步。

          還有一類就是與服務(wù)器端技術(shù)結(jié)合的ajax框架,他只能叫ajax框架,他基本只做數(shù)據(jù)交換。事實(shí)上只要做一個(gè)簡單的servlet(j2ee)或者HttpHanlder(.Net)再在客戶端加以封裝,使用起來也是很方便的。所以這類ajax框架我認(rèn)為不需要考慮。

          在我看來,并不是那個(gè)框架絕對的好壞,而是什么樣的框架能最好的滿足你的需求。

          論個(gè)人閱歷上來講,三類的多個(gè)框架我都知道一二。但是我最喜歡jquery,所以使用了jquery了,他的好處就是輕量級,擴(kuò)展性強(qiáng),現(xiàn)有的插件足以滿足需要。代碼非常簡介而且執(zhí)行效率高。于是我找了一大堆jquery插件。再自己封裝城稍微簡單的方法。本著不重復(fù)發(fā)明輪子的原則。很多的界面問題都能解決了。

          問題三:真的是那樣么?

          時(shí)至2009,項(xiàng)目完了,到了需要再次封裝城產(chǎn)品的時(shí)候,麻煩也就來了。我發(fā)現(xiàn)雖然jquery插件很多,很全,但是由于是百花齊放,我就不想修改里面的代碼。慢慢的使用發(fā)現(xiàn)很多插件不是很穩(wěn)定,像jstree,jquery ui 由于先前用的版本比較低,導(dǎo)致很有的bug自己寫一些修正。現(xiàn)在回過頭來看那時(shí)候做的東西,發(fā)現(xiàn)新的版本已經(jīng)修復(fù)了這些功能。而換上新版本的jquery,變化還是蠻多,比如jquery.browser就不推薦使用了,怎么辦。

          將來。

          本文就是在使用jquery之后,發(fā)現(xiàn)維護(hù)工作量也不小的背景下寫下來的。我不知道是不是我當(dāng)初選擇jquery是錯(cuò)誤的。是不是應(yīng)該選擇ext 之類的有著更強(qiáng)表現(xiàn)能力,更穩(wěn)定的框架么?現(xiàn)在的代碼還是不是那么理想。由于很多的歷史原因,大家還在用ecside ,jscalendar。使用ecside是因?yàn)闅v史原因。使用jscalendar是因?yàn)閖query還沒有一個(gè)日歷控件能支持時(shí)間的。我一個(gè)人的精力有限,而且我很多的時(shí)間都在寫項(xiàng)目代碼(說到底還是領(lǐng)導(dǎo)不重視)。我擔(dān)心我當(dāng)時(shí)做的決定會(huì)對將來造成負(fù)面影響。

          冒昧發(fā)在首頁上,真誠的希望大家提出自己的看法,在企業(yè)級應(yīng)用系統(tǒng)上界面層應(yīng)該怎樣做,文中的有些觀點(diǎn)如有不對的地方還請大家指教

          posted on 2009-04-12 17:25 衡鋒 閱讀(3021) 評論(7)  編輯  收藏 所屬分類: javascriptWeb開發(fā)j2ee

          評論

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架 2009-04-12 20:29 sowill

          我們項(xiàng)目用的prototype,前端方面研究的不太多,但是我覺得一個(gè)項(xiàng)目一旦選定一個(gè)框架的穩(wěn)定版本之后,在夠用的基礎(chǔ)上,就盡量不要升級的好,尤其是像jquery這種以插件取勝的框架,版本之間的兼容性會(huì)對眾多插件產(chǎn)生影響,我覺得這個(gè)帶來的維護(hù)是最致命的  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架[未登錄] 2009-04-12 20:57 xh

          換一個(gè)版本有的時(shí)候代價(jià)比較大,也可能出現(xiàn)新的問題,如果沒有足夠的時(shí)間還是不建議。
          自己改改bug,改的時(shí)候注意方法,沒有把握的地方增加新的方法,保留原來的方法。
          別怕麻煩就行了。  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架 2009-04-12 21:42 陽衡鋒

          上面兩位仁兄還是有經(jīng)驗(yàn)的,我現(xiàn)在也這么想,做了的東西就放著,是在有問題考慮補(bǔ)補(bǔ),只是現(xiàn)在我現(xiàn)在新開發(fā)的東西用的新版本,導(dǎo)致項(xiàng)目里面兩個(gè)jquery版本。感覺很別扭。  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架 2009-04-13 09:55 wangbing

          對ext進(jìn)行標(biāo)簽化 我看好這個(gè)方式  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架[未登錄] 2009-04-13 09:56 fish

          我在問題2以前和你的經(jīng)歷驚人的相似,只不過我比較幸運(yùn),碰到了一個(gè)比較好的領(lǐng)導(dǎo),至于使用什么框架庫的選擇,我覺得你可以參照ext作者當(dāng)年的做法,使用yui/jquery/prototype等基礎(chǔ)框架之一,在這個(gè)框架上面寫自己的組件,也就是說自己造輪子,這響應(yīng)你們的產(chǎn)品需求會(huì)非常快,還能提高很多JS/CSS知識,何樂而不為呢?  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架 2009-04-13 12:41 陽衡鋒

          @wangbing
          @fish
          你們提到的兩種方式都很好,我現(xiàn)在發(fā)現(xiàn)用jquery插件多了,我的系統(tǒng)首頁要加載將近200k的js和30k的css,在IE 6,7下面主頁反應(yīng)有點(diǎn)慢,在別的瀏覽器下當(dāng)然是不會(huì)又這種情況的,我有點(diǎn)擔(dān)心性能了。  回復(fù)  更多評論   

          # re: 企業(yè)級b/s應(yīng)用系統(tǒng)采用怎樣的javascript框架 2011-09-15 08:31 tb

          jquery 比較好  回復(fù)  更多評論   

          主站蜘蛛池模板: 滦平县| 湾仔区| 石河子市| 涟水县| 连城县| 灌云县| 镇雄县| 崇阳县| 中牟县| 甘泉县| 五峰| 鄂尔多斯市| 霍林郭勒市| 奉新县| 阳朔县| 贵港市| 炎陵县| 巍山| 宜兰县| 淳安县| 晋城| 南木林县| 延川县| 商水县| 苍山县| 沭阳县| 台中县| 福安市| 怀来县| 嘉义县| 宜宾县| 灯塔市| 安岳县| 五寨县| 宜昌市| 灵寿县| 扬中市| 惠东县| 达孜县| 合阳县| 贵南县|