国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web components標準的前端工程組件化的改進研究

2016-12-26 11:05:22黃江寧
電子技術與軟件工程 2016年22期
關鍵詞:前臺瀏覽器組件

摘 要

隨著互聯(lián)網(wǎng)的普及,網(wǎng)速的提升,瀏覽器性能的提高,前端技術的迅速發(fā)展,出現(xiàn)了各式各樣的前端組件,在這樣的環(huán)境下,W3C提出了Web components 標準。本文首先對W3C的Web components標準進行了闡述,并對前端工程的組件化發(fā)展問題進行了分析,最后應用Web components 標準提出了一種新的前端工程組件化方案,提高了前端的開發(fā)效率,增強了Web應用的可維護性和擴展性。

【關鍵詞】Web components標準 前端工程 組件化

互聯(lián)網(wǎng)的發(fā)展給我們的生活帶來了翻天覆地的變化,無論是購物、娛樂、學習還是辦公,人們對互聯(lián)網(wǎng)的依賴性越來越大。目前前端模塊化和組件化的標準只是停留在初步階段,由于缺少官方標準,各大公司的主流框架都用自己的方式實現(xiàn)組件化。但是每個框架之間實現(xiàn)的方式不同,就導致框架之間的組件不能復用,如何制定一個通用的組件化標準并將其應用是整個前端工程發(fā)展的一個難題。W3C提出的Web components 標準為解決這一問題提供了良好的契機。

1 Web components 標準及其發(fā)展

Web組件實際上是一種可被重用的構件,它是由谷歌工程師開發(fā),在生產(chǎn)標準和W3C規(guī)范下,可以在Web程序和文檔中創(chuàng)建它。其核心目標就是將Web應用程序的開發(fā)進行革新,使之以軟件工程模式來進行組件開發(fā)。在該組件中可進行封裝,同時也能夠對HTML元素進行操作。另外Firefox等瀏覽器則可以通過手工設置來對Web組件技術給予支持。而IE瀏覽器對Web組件技術的支持度方面則相對較低。Web組件的核心就是將有關UI元素進行組件封裝,也就是將JS、HTML以及CSS等進行封裝。在應用時只需要調(diào)用這個組件對象就可以實現(xiàn),而不需要導出粘貼相應的源碼。通常,這個組件實際上就是一種模板,所涉及到的元素包括了模板(template),Shadow DOM,導入以及自定義元素。

2 目前前端工程的發(fā)展與問題

2.1 前端工程初期

1994年在PHP技術出現(xiàn)之后,可以將數(shù)據(jù)轉化成HTML模板,并進行渲染。兩年后,W3C組織正式推出CSS1.0規(guī)范。在此規(guī)范下,可以支持開發(fā)者能夠利用外聯(lián)文件模式對之前的HTML樣式進行修改,而之前要進行修改,需要在對應的HTML網(wǎng)頁上進行修改,這樣維護就變得簡單,頁面也會更加簡潔,此時HTML和CSS以及模板語言這三個技術的融合開始得到廣泛應用。在技術的支持下,一些后臺也能夠通過HTML來實現(xiàn)。之前的Web也從最初的展示工具蛻變成Web App,此后利用腳本語言進行Web開發(fā)已經(jīng)成為趨勢。

2.2 Web2.0時期

2005年之后,異步的Java Script與XML技術(ajax)的出現(xiàn)徹底改變了javascript的地位。在ajax出現(xiàn)之前,前端后端之間的溝通需要提交表單,并且網(wǎng)頁需要跳轉。ajax通過javascript就可以在瀏覽器內(nèi)隨時與后端進行連接,用戶基本上感覺不到頁面的變化。不僅瀏覽器和服務器的交流大大降低,客戶端也可以更快速的響應并且返回數(shù)據(jù)。

2.3 工程化前端時期

在這個階段,前臺和后臺的功能開始變得十分明確,它們之間的交互主要是基于相應的接口來實現(xiàn),只要對接口的規(guī)格進行規(guī)范,就能夠將前臺和后臺進行分離。在前臺,可以通過字段來研發(fā)相應的接口,確保錄入的數(shù)據(jù)具有正確性。當后臺開發(fā)成功之后,就能夠進行統(tǒng)一測試。然而隨著網(wǎng)絡業(yè)務的豐富,所需的功能也開始增多,這種開發(fā)模式的優(yōu)勢就很難體現(xiàn),即使是一個單頁面程序,在復雜交互環(huán)境下,代碼也變得十分的龐大。為了改變這種境況,在前臺開始出現(xiàn)了基于MVC架構設計的前端框架,在此框架的支持下,前臺的功能可以變得更加豐富,代碼規(guī)模也以幾何倍數(shù)進行增長。于是對應的模塊化概念開始出現(xiàn),當時AMD和CMD這兩個模塊化規(guī)范較為成熟,它們的關鍵思想就在于在開發(fā)前臺代碼時,引入模塊化的設計思路。

3 基于Web components標準的前端工程組件化的改進

3.1 改進的組件化框架介紹

目前改進框架的方式有兩種:

(1)提前自定義組件命名規(guī)范,然后再結合該規(guī)范進行開發(fā)。在框架渲染環(huán)節(jié),所匹配的標簽也要根據(jù)之前定義的命名規(guī)范進行,如果匹配成功就可以進行渲染。

(2)不限制標簽名稱,開發(fā)人員能夠結合自身所需將標簽名改成自己熟悉的樣式,比如分割線、駝峰等。不過這些標簽需要有一個自定義環(huán)節(jié),也就是將其自定義成相應的組件。綜合對比上述兩種方式可知,在自定義組件的優(yōu)化方面,這兩種方式存在著各自的利弊,都沒有充分遵循W3C模式。這就意味著需要開發(fā)一套能夠融合這兩種方案優(yōu)勢的一種新框架。目前Web組件標準雖然能夠提供相應的接口,可在瀏覽器上支持用戶自定義的一些元素,然而依然存在著一定的兼容性問題。Polymer通過Polyfill技術對老舊瀏覽器進行的修補,通過這些修補使之能夠支持新瀏覽器的特性。而Polymer在運行時,一旦涉及到element解析共組,就會對整體性能產(chǎn)生負面影響,另外對瀏覽器的支持,尤其是手機的支持都存在很大缺陷,在某些品牌的手機上,甚至不能夠使用。而本次通過對框架進行優(yōu)化設計,可為設計者提供一些自定義的元素,從而更好的解決上述的一些兼容性問題。本文利用W3C所提供的標準規(guī)范,以及使用JS算法在底層對該組件進行封裝,然后利用標簽來引入框架并在容器中創(chuàng)建相應的Dom元素。

3.2 改進的組件化框架工作原理

此優(yōu)化之后的框架實際上就是一種MVVC結構程序,整個程序從最上層分為兩部分:

(1)全局設計。主要涉及到全局性接口以及默認參數(shù)等;

(2)元素實例。涉及到實例的初始化和各種接口的設計。

如圖1所示,在實例化時,其核心就是將模型和視圖進行融合,該思路顯然和MVVC框架設計思路一致,主要工作包括:第一,對data進行監(jiān)聽,可通過Obsever來實現(xiàn),能實施察覺數(shù)據(jù)項的變化。第二,將Template進行解析處理,使之成為Document Fragment,接著在對directive進行解析,并獲取依賴它的一些數(shù)據(jù)項和更新策略。第三,基于Watcher將上述兩個環(huán)節(jié)進行融合,就能夠獲得依賴Directive的數(shù)據(jù)項變化情況,一旦有數(shù)據(jù)變化,那么Observer就能偵測到,然后觸發(fā)視圖更新,進而實現(xiàn)關聯(lián)性。

在此框架中涉及到的流程則是元素的加載、注冊、更新和銷毀。

(1)加載:通過對class進行遍歷,查看相應的element元素,然后調(diào)用create方法,將子元素和標簽類型等參數(shù)傳入。

(2)注冊:執(zhí)行createElementClass方法,于是就能夠產(chǎn)生elementClass,該元素可備用。

(3)更新:當數(shù)據(jù)和模型產(chǎn)生變化時,能夠迅速的從視圖中進行反饋,此時可以對DOM進行操作,而它的頻繁操作也會對最終的性能產(chǎn)生負面影響。

(4)銷毀:只需要從根節(jié)點上切斷需要刪除的元素實例即可。

3.3 改進的組件化框架編譯原理

框架并不可獨立運行,只有在編譯之后,形成相應的構造函數(shù)才能夠運行。通過編譯工具,可以很好的提升前臺程序的性能,并能夠很好的進行資源加載,這里的加載內(nèi)容涉及到同步、異步和預加載以及合并、內(nèi)嵌等,另外還包括規(guī)范的開發(fā)、代碼的部署和模塊化、自動化工具的開發(fā)等。在編譯框架時,首先要對html文件進行分析,查看是否存在著自定義Element,如果發(fā)現(xiàn)了存在著這些元素,就需要從對應文件中提取template和style以及script等。然后對style部分進行封裝處理,或者進行l(wèi)ess編譯,生成新的樣式文件。對template文件進行分析,查看它是否存在著依賴元素,然后將其轉換成js代碼。而在Script環(huán)節(jié),則可以將之前模板中編譯出來的function append文件進行裝載。如果沒有發(fā)現(xiàn)element,那么該文件就是一個依賴link 的文件,并將其進行標記。

4 結論

本文從W3C的Web components標準入手,設計了一種高性能,敏捷開發(fā),易維護的開發(fā)方案。這個方案封裝了Web components標準,但不是單純的封裝,而是將瀏覽器的兼容性以及虛擬DOM渲染的性能考慮在內(nèi),實現(xiàn)了一種瀏覽器兼容性更強,書寫方式和代碼結構更加標準,數(shù)據(jù)綁定視圖和模型的前端框架。

參考文獻

[1]王政.Web前端開發(fā)技術以及優(yōu)化研究[J].電腦知識與技術,2013(22).

[2]魏娜.Web前端開發(fā)技術研究[J].現(xiàn)代計算機(專業(yè)版),2011(29).

[3]Yukui Fei,Jijun Zhang,Hongmei Zhu.Research on Self-Adaptation of Web components Based on Interface Automata.ShanDong Agri.Univ.TaiAn 271018;P.R.China Proceedings of 2007 International Symposium on Distributed Computing and Applications to Business, Engineering and Science(Volume Ⅱ),2010(07).

作者簡介

黃江寧(1989-),男,江蘇省人?,F(xiàn)為同濟大學在讀碩士。主要研究方向為軟件工程Web開發(fā)。

作者單位

同濟大學 上海市 201804

猜你喜歡
前臺瀏覽器組件
無人機智能巡檢在光伏電站組件診斷中的應用
能源工程(2022年2期)2022-05-23 13:51:50
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設計
反瀏覽器指紋追蹤
電子制作(2019年10期)2019-06-17 11:45:14
公路電助力 從幕后走向前臺
中國自行車(2018年6期)2018-07-23 03:17:24
孟晚舟:從前臺打雜到華為副總裁
海峽姐妹(2018年6期)2018-06-26 07:27:15
前臺、后臺精彩花絮停不了
風采童裝(2016年2期)2016-08-02 09:18:38
網(wǎng)站前臺設計分包合同中應注意的問題
環(huán)球瀏覽器
再見,那些年我們嘲笑過的IE瀏覽器
英語學習(2015年6期)2016-01-30 00:37:23
绥棱县| 大连市| 都江堰市| 班玛县| 斗六市| 奉节县| 南和县| 汕头市| 大城县| 沈丘县| 通江县| 嵊州市| 渝北区| 历史| 五原县| 栖霞市| 湘潭市| 宾阳县| 商水县| 万年县| 通河县| 新民市| 马公市| 横山县| 会泽县| 六枝特区| 东兰县| 汾西县| 南木林县| 安仁县| 嘉义县| 项城市| 拜城县| 平顶山市| 泰来县| 文昌市| 伊宁市| 徐州市| 河东区| 永靖县| 江北区|