微信小程序本身是基于微信中的WebKit而存在的,所以其本身就是一個網(wǎng)頁端的應(yīng)用。但是與傳統(tǒng)的HTML不同的是,它的頁面并非DOM的操作方式,這是為了避免多層嵌套DOM速度過慢的問題,對于開發(fā)者而言,這些都是透明不可見的,也就是說不用專門學(xué)習(xí)。
雖然南昌小程序開發(fā)的技術(shù)并不是完全原生的JS、HTML、CSS,但其是用這些技術(shù)封裝起來的,所以學(xué)習(xí)這些技術(shù)也是必要的。
JavaScript技術(shù)
Java Script是世界上最流行的腳本語言,它屬于Web語言,它適用于PC、筆記本電腦、平板電腦和移動電話。JavaScript的設(shè)計目的是增加HTML頁面的交互性。
許多HTML開發(fā)者都不是程序員,但Java Scripti擁有非常簡單的語法,所以幾乎每個人都有能力將小的JavaScript片段添加到網(wǎng)頁中。
Java Script本身是一種高級編程語言,通過解釋執(zhí)行,是面向?qū)ο螅ɑ谠停┑闹弊g語言。它已經(jīng)由ECMA(歐洲電腦制造商協(xié)會)通過ECMAScript實(shí)現(xiàn)語言的標(biāo)準(zhǔn)化。它被世界上的絕大多數(shù)網(wǎng)站所使用,也被世界主流瀏覽器(Chrome、IE、FireFox、Safari、Opera)支持。
在客戶端,JavaScript在傳統(tǒng)意義上被實(shí)現(xiàn)為一種解釋語言,但在最近,它已經(jīng)可以被即時編譯(JT)執(zhí)行。隨著最新的HTML 5和CSS 3語言標(biāo)準(zhǔn)的推行,它還可用于游戲、桌面、移動應(yīng)用程序的開發(fā)和在服務(wù)器端網(wǎng)絡(luò)環(huán)境運(yùn)行,如通過Node.js。
CSS技術(shù)
層疊樣式表(Cascading Style Sheets,簡稱CSS),又稱級聯(lián)樣式表、串接樣式表。層疊樣式表是一種用來為結(jié)構(gòu)化文檔(如HTML文檔或XML應(yīng)用)添加樣式(字體、間距和顏色等)的計算機(jī)語言,由W3C定義和維護(hù)。目前最新版本是CSS 3。
網(wǎng)頁的用戶和開發(fā)者都可以使用CSS來決定文字的顏色、字體、排版等顯示特性。它使得網(wǎng)頁更加生動,甚至可以使用不同的樣式來控制網(wǎng)頁上出現(xiàn)動畫或其他效果。CSS最主要的目的是將文件的內(nèi)容與顯示分隔開來,之后通過引入選擇器的方式控制DOM的樣式效果。這有許多好處:
·文件的可讀性加強(qiáng)。
·文件的結(jié)構(gòu)更加靈活。
·用戶和開發(fā)者可以自己決定不同的顯示。
·文件的結(jié)構(gòu)簡化了。
通過分離出來的CSS文件,可以針對每個不同的用戶顯示不同的效果,并且整個網(wǎng)站或其中一部分網(wǎng)頁的顯示信息被集中在一個地方,要改變它們很方便。針對不同的讀者可以有不同的樣式,比如有的用戶需要的字體比較大,有的用戶對于某些圖標(biāo)不可見或者是色弱等要對色彩做不同的調(diào)整。
CSS還可以控制其他參數(shù),例如聲音(假如瀏覽器有閱讀功能的話)或給視障者用的感受裝置。
對于最新的CSS 3,不但將CSS 3折分為“模塊”,而且在原有簡單樣式的基礎(chǔ)上增加了一些新的屬性,一些最重要CSS 3模塊如下:
·選擇器。
·盒模型。
·背景和邊框。
·文字特效。
·2D/3D轉(zhuǎn)換。
·動畫。
·多列布局。
·用戶界面。
HTML(XML)技術(shù)
HTML(XML)技術(shù)其實(shí)是兩種不同的技術(shù),即HTML和XML。
超文本標(biāo)記語言(Hyper Text Markup Language,簡稱HTML)是一種用于創(chuàng)建網(wǎng)頁的標(biāo)準(zhǔn)標(biāo)記語言。HTML是一種基礎(chǔ)技術(shù),常與CSS、Java Script一起被眾多網(wǎng)站用于設(shè)計令人賞心悅目的網(wǎng)頁、網(wǎng)頁應(yīng)用程序以及移動應(yīng)用程序的用戶界面。網(wǎng)頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網(wǎng)頁。HTML描述了一個網(wǎng)站的結(jié)構(gòu)語義,最新版本為HTML5。
可擴(kuò)展標(biāo)記語言(Extensible Markup Language,簡稱XML),是一種標(biāo)記語言。標(biāo)記指計算機(jī)所能理解的信息符號,通過此種標(biāo)記,計算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記,既可以選擇國際通用的標(biāo)記語言,比如HTML,也可以使用像XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。XML用到的主要有可擴(kuò)展標(biāo)記語言、可擴(kuò)展樣式語言(XSL)、XBRL和XPath等。
XML的誕生是為了取代HTML,但由于XML一些煩瑣的寫法和不夠靈活的方式,它并沒有取代HTML的位置,反而因其清晰的結(jié)構(gòu)和自定義的節(jié)點(diǎn)名稱,被用于一些配置文件的書寫和一種數(shù)據(jù)持久化的手段。
由于HTML和XML本源和初衷是一致的,所以對于兩者的學(xué)習(xí)是通用的、可擴(kuò)展的。
通過以上對HTML和XML的介紹,這里總結(jié)一下它們的聯(lián)系與區(qū)別:XML和HTML都用于操作數(shù)據(jù)或數(shù)據(jù)顯示結(jié)構(gòu),在結(jié)構(gòu)上大致相同,但在本質(zhì)上的區(qū)別也相當(dāng)明顯。
1、語法要求不同
(1)在HTML中不區(qū)分大小寫,在XML中嚴(yán)格區(qū)分大小寫。
?。?)在HTML中,結(jié)構(gòu)不嚴(yán)格,對于解析而言,如果能通過上下文清楚地顯示出段落或者某一標(biāo)簽在何處結(jié)尾,那么可以省略或者之類的結(jié)束標(biāo)簽,甚至一些標(biāo)簽本身就是半閉合式的標(biāo)簽。但在XML中,必須遵循嚴(yán)格的樹狀結(jié)構(gòu),絕對不能省略結(jié)束標(biāo)記。
(3)在XML中,擁有單個標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個“/”字符作為結(jié)尾。但HTML中這樣的做法并不必要,反而在某些情況下增加“/”字符會出現(xiàn)不可預(yù)知的錯誤。
(4)在XML中,其屬性值必須封裝在引號中,所有的屬性都必須帶有相應(yīng)的值,不能簡寫與略寫,而且有嚴(yán)格的書寫規(guī)范。但在HTML中,引號是可用可不用的,并且有些屬性名可以不包含任何的數(shù)值,這樣的寫法甚至可以自動生成相應(yīng)的數(shù)值。
(5)在XML中,空白的部分認(rèn)為是XML自身的一種內(nèi)容,所以不會被解析器自動刪除;但HTML中的空格是單個有效的,多余的空格將會被解析器過濾掉,成為無效標(biāo)記。
2、標(biāo)記不同
?。?)HTML使用已經(jīng)定義好的既有標(biāo)記,但XML的語法結(jié)構(gòu)是可以擴(kuò)展的,所以并沒有固有的標(biāo)記。
(2)HTML標(biāo)簽是預(yù)定義的,對于任意的標(biāo)簽都是存在含義和使用規(guī)范的,包括自定義的標(biāo)簽也應(yīng)該提前解析;但XML的所有標(biāo)簽都是可以進(jìn)行自定義、可擴(kuò)展的,其屬性也是擴(kuò)展的一部分。
3、作用不同
?。?)HTML是用來顯示數(shù)據(jù)的;XML是用來描述數(shù)據(jù)、存放數(shù)據(jù)的,所以可以作為持久化的介質(zhì)。HTML將數(shù)據(jù)和顯示結(jié)合在一起,在頁面中把數(shù)據(jù)顯示出來;XML則將數(shù)據(jù)和顯示分開。XML和HTML都是被設(shè)計用來描述數(shù)據(jù),XML的焦點(diǎn)是數(shù)據(jù)的內(nèi)容,而HTML的焦點(diǎn)是數(shù)據(jù)的外觀。
?。?)XML中的標(biāo)簽和屬性是不具有任何的效果和操作的,更傾向于一種數(shù)據(jù)的表達(dá)形式和存儲形式。而HTML更加傾向的是一種數(shù)據(jù)的顯示形式和展示形式,所以這兩種技術(shù)各有所長。
通過HTML(XML)與CSS文件的結(jié)合,可以構(gòu)造出任意一種樣式的網(wǎng)頁和排版模式,比如對于微信小程序本身,就使用類似于HTML(XML)的一套標(biāo)簽語言,所以通過微信小程序的WXSS和WXML的結(jié)合也可以構(gòu)造出豐富的頁面。