Mozilla開發(fā)者Brian Grinstead在博客宣布,經(jīng)過多年的努力,他已在幾個(gè)星期前從Firefox UI中移除了XBL,亦即意味著將Firefox UI遷移至使用Web Components構(gòu)建的工程已完成。
XBL是一種基于XML的語言,當(dāng)我們要實(shí)現(xiàn)附加到DOM元素的“綁定”就需要使用XBL。然后,我們還可以將自定義JS屬性和匿名內(nèi)容添加到常規(guī)元素。XBL是在90年代末期為NetScape設(shè)計(jì)和構(gòu)建的,除了XBL,還有許多其他的“XUL”特性可幫助我們構(gòu)建桌面Web應(yīng)用——比Web平臺(tái)提供相似的功能早得多。
Firefox大約有300個(gè)XBL綁定和50000行相關(guān)代碼,主要都是被比較小型的部件使用(如),以及用于管理應(yīng)用程序(如,它通過管理標(biāo)簽在瀏覽器窗口中控制大部分狀態(tài),以及從內(nèi)容頁面接收消息等)。
我們可以將Firefox UI看作是一個(gè)非常大型的單頁應(yīng)用程序,最初采用DOM和JS構(gòu)建,相對(duì)于20多年前的原生應(yīng)用,它的技術(shù)選型十分大膽。也正因?yàn)镸ozilla走得太超前,所以在Web平臺(tái)尚未支持它們之前就自己實(shí)現(xiàn)了構(gòu)建復(fù)雜Web應(yīng)用所需的部分特性。這些特性在日后也逐漸演變成像CSS flexbox和Web Components這樣的標(biāo)準(zhǔn)規(guī)范。
處于這種新老交替的時(shí)刻,讓現(xiàn)有代碼庫繼續(xù)使用原版本,并要求平臺(tái)同時(shí)支持兩者當(dāng)然是最容易的,畢竟對(duì)舊代碼進(jìn)行重寫十分困難而且成本巨大。
然而即便如此,Mozilla還是選擇在Firefox中實(shí)現(xiàn)Web Components,他們啟動(dòng)了一個(gè)“并行”項(xiàng)目,在該項(xiàng)目中,團(tuán)隊(duì)將遷移現(xiàn)有的UI組件以使用它們。他們以“增量更新”的方式進(jìn)行此操作,以便在保證Firefox正常運(yùn)行的同時(shí)進(jìn)行每個(gè)獨(dú)立的更改,而不是從頭開始創(chuàng)建一個(gè)分支來重寫UI。
Brian認(rèn)為這是一項(xiàng)重大的成就,也給Firefox的底層提供了改進(jìn),還允許團(tuán)隊(duì)可以將精力集中在現(xiàn)代Web標(biāo)準(zhǔn)上,并移除沒有對(duì)外公開的大量重復(fù)和復(fù)雜的功能。
至于為什么要使用Web Components,Brian表示由于XBL存在的問題,多年來團(tuán)隊(duì)一直在討論移除XBL。但這項(xiàng)工程似乎十分龐大,并且看起來好像需要從頭開始重寫Firefox UI,所以一直沒能有效推動(dòng)項(xiàng)目的進(jìn)展。后來團(tuán)隊(duì)進(jìn)行了“設(shè)計(jì)審查”,并提議啟動(dòng)“并行項(xiàng)目”計(jì)劃,以實(shí)現(xiàn)采用“增量更新”的方式實(shí)現(xiàn)遷移的目標(biāo)。由于兩者的模型非常相似,因此開發(fā)者在遷移元素時(shí)能做出合理的選擇,以盡可能保持API的兼容性。
-
XML
+關(guān)注
關(guān)注
0文章
188瀏覽量
33102 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3279瀏覽量
57741
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論