.前端
??? 前端是網(wǎng)站和用戶交互的主要接口棵癣。 開發(fā)語(yǔ)言為HTML、 CSS夺衍、JS.?
①HTML
??? 一種文本狈谊、圖片、鏈接等多元素編輯語(yǔ)言沟沙。通過(guò)這種語(yǔ)言以網(wǎng)站頁(yè)面為編輯區(qū)域河劝,任意指定頁(yè)面具有哪些元素,包括文字矛紫、圖片赎瞎、多媒體等。并任意指定不同元素在頁(yè)面的基本格式含衔。如文字字體煎娇、大小、位置贪染,圖片大小缓呛、位置、鏈接顏色杭隙、狀態(tài)變化等等哟绊。這種語(yǔ)言利用標(biāo)簽標(biāo)記,將多種不同類別的元素痰憎、甚至不同位置的文件關(guān)聯(lián)在一起票髓,因此叫做超文本標(biāo)記語(yǔ)言攀涵。并且通過(guò)定義元素的屬性,設(shè)置元素的格式洽沟,最終形成整體頁(yè)面效果以故,這種語(yǔ)言可以利用多種文本編輯工具編輯,例如記事本裆操。只需擴(kuò)展名修改為.html 或.htm 即可怒详。
??? HTML5就是 HTML 語(yǔ)言的最新標(biāo)準(zhǔn),這種標(biāo)準(zhǔn)制定使頁(yè)面可以表現(xiàn)的內(nèi)容更加強(qiáng)大踪区。
??? 隨著網(wǎng)站開發(fā)的發(fā)展昆烁,前端可以展現(xiàn)的元素格式越來(lái)越豐富,代碼也越
來(lái)越臃腫缎岗。因此逐漸形成了另一種新的語(yǔ)言 CSS静尼,將 HTML 語(yǔ)言中描述各元
素屬性的代碼從 HTML 文件中抽離出來(lái),使 HTML 專門描述前端頁(yè)面具有什
么內(nèi)容传泊, CSS 語(yǔ)言編寫的CSS 文件專門描述 HTML 中的每個(gè)元素以什么格式
在頁(yè)面展示鼠渺。
②css 層疊樣式表
??? CSS專門用于描述HTML 中各元素用什么樣式展示。HTML+CSS 組合完成頁(yè)面內(nèi)容和格式的設(shè)計(jì)或渤。
??? CSS主要實(shí)現(xiàn)了頁(yè)面內(nèi)容的靜態(tài)布局效果系冗。更復(fù)雜的動(dòng)態(tài)變化還是需要另一種專門的語(yǔ)言來(lái)實(shí)現(xiàn),這就是JS語(yǔ)言薪鹦。
③JavaScript腳本語(yǔ)言簡(jiǎn)稱JS
??? js語(yǔ)言當(dāng)前普遍被用于網(wǎng)站開發(fā)前端編程掌敬,在html提供的內(nèi)容和css提供的格式之外,由js提供更復(fù)雜的界面展示效果和邏輯處理池磁。在此存在很多可以直接使用的代碼庫(kù)奔害,如jQuery等。
??? js語(yǔ)言可以實(shí)現(xiàn)對(duì)頁(yè)面元素的復(fù)雜功能編程地熄,例如頁(yè)面的時(shí)鐘數(shù)字變化
效果华临,圖片的走馬燈輪換效果,粒子動(dòng)畫效果等端考。
??? 除了可以看到的動(dòng)態(tài)效果之外雅潭,js還可以實(shí)現(xiàn)用戶看不到頁(yè)面數(shù)據(jù)處理
工作。例如數(shù)據(jù)加解密却特、文字過(guò)濾分析等扶供。
④腳本語(yǔ)言
??? js是一種腳本語(yǔ)言。腳本語(yǔ)言是一種逐句執(zhí)行的直譯語(yǔ)言裂明,也就是這種語(yǔ)言不需要提前編譯椿浓,直接由終端(如瀏覽器)解釋運(yùn)行即可。
??? 腳本語(yǔ)言與其他編程語(yǔ)言的關(guān)鍵區(qū)別在于是否需要經(jīng)過(guò)編譯鏈接形成二進(jìn)制機(jī)器語(yǔ)言。
??? 要運(yùn)行該腳本文件扳碍,需要運(yùn)行環(huán)境中安裝js軟件提岔,通常瀏覽器中已經(jīng)集成了js解析標(biāo)準(zhǔn),直接可以解析js腳本文件笋敞,因此碱蒙,js腳本語(yǔ)言通常被用作前端頁(yè)面特殊效果的編程語(yǔ)言。但是夯巷,只要具有js的解釋環(huán)境(js軟件)就可以運(yùn)行js文件振亮,像node.js等運(yùn)行環(huán)境,js語(yǔ)言可以逐漸適用于服務(wù)器端鞭莽,客戶端等產(chǎn)品。同屬于腳本語(yǔ)言的有,PHP/ASP/JSP/python/ruby/VBScript/Perl等麸祷。
⑤瀏覽器
??? 瀏覽器就是對(duì)HTML+CSS+JS文件內(nèi)容進(jìn)行翻譯澎怒,并允許用戶通過(guò)頁(yè)面與網(wǎng)站進(jìn)行交互的一種軟件,不同的瀏覽器具有不同的內(nèi)核阶牍。
⑥AJAX(Asynchronous Javascript And XML)異步JavaScript和XML
??? 利用已有的js/css/xml等技術(shù)達(dá)到前端數(shù)據(jù)及時(shí)更新的效果喷面。其基本思路是前端js與后臺(tái)不斷通訊,及時(shí)獲取前端某部分?jǐn)?shù)據(jù)的變化信息,及時(shí)進(jìn)行自動(dòng)數(shù)據(jù)獲取更新,使用戶無(wú)需刷新網(wǎng)頁(yè)即可保持頁(yè)面數(shù)據(jù)最新的狀態(tài)。
⑦文檔對(duì)象模型(Document Object Model走孽,簡(jiǎn)稱DOM)
??? DOM是一種獨(dú)立的規(guī)范惧辈。
??? 瀏覽器作為前端的展示工具,按照DOM規(guī)范將頁(yè)面劃分為不同層次結(jié)構(gòu)磕瓷,
形成多個(gè)可操作的對(duì)象盒齿。例如,window對(duì)象、history對(duì)象困食、link對(duì)象等边翁。
??? window對(duì)象就是用戶看到的頁(yè)面、history對(duì)象就是瀏覽歷史硕盹、link對(duì)象就是鏈接等符匾,按照這種規(guī)范即可直接通過(guò)編程操作html頁(yè)面的各種元素,控制其顯示/隱藏等效果瘩例。js中也提供了符合該規(guī)范的API函數(shù)接口啊胶。通過(guò)js可以動(dòng)態(tài)操作頁(yè)面元素的狀態(tài)。
2.數(shù)據(jù)交換格式
[if !supportLists]①? [endif]json/xml格式
xml是可擴(kuò)展標(biāo)記語(yǔ)言通常用于傳輸和儲(chǔ)存數(shù)據(jù)垛贤,Json功能與之類似焰坪。
前端和服務(wù)器之間通常需要一種雙方都認(rèn)可的格式進(jìn)行數(shù)據(jù)的傳遞和存儲(chǔ)。xml/Json或其他格式指定了數(shù)據(jù)內(nèi)容的存儲(chǔ)格式南吮,使用該數(shù)據(jù)的雙方只需按照規(guī)定的格式寫入/讀出內(nèi)容即可完成數(shù)據(jù)的傳輸和存儲(chǔ)琳彩。
前端的一些配置信息,如用戶登錄名稱、性別露乏、網(wǎng)頁(yè)底色等信息都可以暫存在xml/Json文件中根據(jù)需要隨時(shí)讀取碧浊。
服務(wù)器后臺(tái)也可將前端需要的數(shù)據(jù)內(nèi)容,以xml/Json的格式發(fā)送給前端瘟仿,達(dá)到數(shù)據(jù)交互的目的箱锐。
②GeoJSON格式
GeoJSON是基于JavaScript對(duì)象表示法的地理空間信息數(shù)據(jù)交換格式。GeoJSON是一種對(duì)各種地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式劳较,GeoJSON對(duì)象可以表示幾何驹止、特征或者特征集合。GeoJSON支持下面幾何類型:點(diǎn)观蜗、線臊恋、面、多點(diǎn)墓捻、多線抖仅、多面和幾何集合,GeoJSON里的特征包含一個(gè)幾何對(duì)象和其他屬性砖第,特征集合表示一系列特征撤卢。
一個(gè)完整的GeoJSON數(shù)據(jù)結(jié)構(gòu)總是一個(gè)(JSON術(shù)語(yǔ)里的)對(duì)象。在GeoJSON里梧兼,對(duì)象由名/值對(duì)--也稱作成員的集合組成放吩。對(duì)每個(gè)成員來(lái)說(shuō),名字總是字符串羽杰。成員的值要么是字符串渡紫、數(shù)字、對(duì)象忽洛、數(shù)組腻惠,要么是下面文本常量中的一個(gè):“true”、“false”和“null”欲虚。數(shù)組由上面所說(shuō)的元素組成集灌。
Json與GeoJSON格式的關(guān)系
??? GeoJSON是一種對(duì)地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式。它只是一個(gè)采用上述JSON格式的用于描述地理信息的格式复哆。它的語(yǔ)法和JSON是一樣的欣喧,只是對(duì)各名稱做了規(guī)范。
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換語(yǔ)言梯找,以文字為基礎(chǔ)唆阿,且易于讓人閱讀。盡管JSON是Javascript的一個(gè)子集锈锤,但JSON是獨(dú)立于語(yǔ)言的文本格式驯鳖,并且采用了類似于C語(yǔ)言家族的一些習(xí)慣闲询。
②?Pbf格式簡(jiǎn)要介紹
Pbf全稱為Protocol Buffers,是一種以有效并可擴(kuò)展的格式編碼結(jié)構(gòu)化數(shù)據(jù)的方式浅辙,Google開發(fā)了Protocol
Buffers使用于內(nèi)部的服務(wù)扭弧。它是一種二進(jìn)制格式,允許你使用規(guī)范的語(yǔ)言定義一個(gè)模式,Pbf格式也是一種數(shù)據(jù)交換格式记舆,類似于Json和GeoJSON鸽捻,OSM數(shù)據(jù)對(duì)應(yīng)的pbf文件和MapBox對(duì)應(yīng)的矢量切片pbf文件是不一樣的,可以看下面一段話:
??? 大概意思就是說(shuō)泽腮,pbf格式和Json格式相似御蒲,它被用于對(duì)很多不同的數(shù)據(jù)進(jìn)行編碼,有很多格式的文件后綴都是用的pbf格式诊赊,就好像有很多Json文件用的json后綴一樣厚满,因此以pbf格式結(jié)尾的數(shù)據(jù)與osm數(shù)據(jù)沒(méi)有什么必然的聯(lián)系。