中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

69前端技術

發布時間:2020-08-05 19:17:36 來源:網絡 閱讀:303 作者:chaijowin 欄目:編程語言

?

?

目錄

前端技術:... 1

HTML... 1

瀏覽器:... 1

瀏覽器技術:... 2

CSS... 2

動態網頁技術:... 3

網頁布局:... 3

同步&異步:... 4

同步:... 4

異步:... 4

前端開發:... 5

硬件發展:... 5

?

?

?

前端技術:

?

HTML

HyperText Markup Language,超文本標記語言,它不同于編程語言;

超文本就是超出純文本的范疇,如描述文本的顏色、大小、字體等信息,或使用圖片、音頻、視頻等非文本內容;

?

HTML由一個個標簽組成,這些標簽各司其職,有的提供網頁信息,有的負責圖片,有的負責網頁布局;

?

超文本需要顯示,就得有軟件能夠呈現超文本定義的排版格式,如顯示圖片、表格,顯示字體的大小、顏色,這個軟件就是browser

?

超文本需要共享,產生了HTTP協議;

?

?

瀏覽器:

1980年,Tim Berners-LeeCERN(歐洲核子研究中心,當時歐洲最大的互聯網節點)設計基于超文本思想的ENQUIRE項目,以促進科研人員之間的信息共享和更新。

1989年,他編寫了《信息化管理:建議》,并構建基于internethypertext系統,并在CERN開發了world wide web項目,打造了世界上第一個網站,于1991-8-6正式上線;

?

Tim Berners-Lee1990年發明了第一個瀏覽器,還發明了HTTP協議;

?

1994年,在MIT他創建了W3C(萬維網聯盟),負責萬維網持續發展,他提出W3C的標準應該基于無專利權、無版稅;

?

Marc Andreessen1993年發明了Mosaic瀏覽器,他看到了這個技術的前景,不久后成立自己的公司——netscape

1994年,發布了Netscape Navigator瀏覽器,席卷全球;

?

1995年,MS發布了IE,開啟第一次瀏覽器大戰,最終IE后來居上;

?

Netscape公司成立了Mozilla組織,使用Gecko引擎基于開源技術開發了新的瀏覽器,最終這個瀏覽器更名為firefox,發布于2004年;

?

AppleSafari2003年發布第一個測試版;

?

2008googlechrome瀏覽器帶著v8引擎橫空出世;

?

?

瀏覽器技術:

browser是一種特殊的客戶端,能夠基于http(s)ftp等協議和web服務器進行交互,呈現網頁內容的軟件;

?

可簡單的認為browser分為2部分:

外殼,外殼提供用戶交互的界面;

內核,提供html、圖像的渲染引擎、提供DOM編程接口、提供javascript引擎、提供瀏覽器內建對象;

?

排版引擎

瀏覽器

說明

Trident

IE

早期未按照W3C標準實現,兼容性較差,IE9之后內核升級已符合標準

Gecko

firefox

C++開發,可支持復雜的網頁效果,提供強大的瀏覽器擴展接口

WebKit

SafariChrome

基于KHTML;網頁瀏覽速度較快,但網頁容錯性不高

Presto

Opera

目前公認的網頁瀏覽速度最快的內核,但犧牲一部分兼容性

?

國內browser,一般都采用了以上的一個或兩個內核加上外殼實現;

?

js引擎,不同瀏覽器內核中用了不同的js引擎;

常見的js引擎有JScriptTraceMonkey(firefox)V8等,這些引擎差異不小,實現ECMA標準不同,甚至有不按照標準實現的;

?

?

CSS

cascading style sheets,層疊樣式表;

HTML本身為了格式化顯示文本,但當網頁呈現在大家面前時,更多需求讓HTML提供更多樣式能力,使得HTML變得越來越臃腫,促使了CSS的誕生;

?

1994年,W3C成立,CSS設計小組成員加入W3C,并努力研發CSS的標準,MS最終加入;

1996-12,發布CSS1.0

1998-5,發布CSS2.0

?

CSS3采用了模塊化思想,每個模塊都在CSS2基礎上分別增強功能,所以這些模塊是陸續發布的;

?

不同廠家的browser使用的引擎,對CSS的支持不一樣,導致網頁布局、樣式在不同browser上不一樣,因此,想要保證不同用戶使用不同browser看到的網頁效果一樣,變得非常困難;

?

?

動態網頁技術:

js的引入使得browser可顯示動態的效果,但這不是動態網頁;

?

發明web技術的初衷是為了分享文檔,這些內容是靜態的(寫好的不變的文件),通過url定位到這些文檔,將內容下載到browser上,由browser呈現;

?

互聯網的發展,網民的需求增加,大家希望提供交互式訪問,用戶提交需求,服務端找到需求匹配的資源并發回瀏覽器端顯示,這就是動態網頁;

?

動態網頁,指網頁的內容是動態的,url不變,里面的內容變化,如訪問一個查詢頁面,提交的關鍵字不同,提交到后臺查詢并展示;

?

動態網頁,表現的是browser端內容的變化,而本質上它是一種服務端動態網頁技術server-side dynamic web page

?

最早誕生的動態網頁技術有:ASPJSPPHP等,后來幾乎所有流行的高級語言都提供了開發動態網頁的能力;

?

?

網頁布局:

早期的網頁只需要標題,使用<P>標簽分段;

?

來有人大量使用表格標簽,可做好很好的內容布局,也出現結構化的布局方案,但隨著頁面內容的堆積,出現了成百上千個表格嵌套的情況,browser繪制很慢;

?

后來出現了div+css布局風格,舍棄了表格,加上js,使得前后端開發分離,而且可做到很好的自適應布局,如流式瀑布一樣布局(https://www.guokr.com/scientific/);

?

?

同步&異步:

同步:

早期,網頁就是一頁頁的文本,沒什么圖片、樣式;

后來,互聯網時代到來,網頁的內容越來越大;

?

瀏覽器渲染HTML,需要先下載CSS并加載,為的是好渲染網頁,之后,下載網頁內容,并逐步渲染,構建DOM樹,加載js腳本并執行,js可能需要修改DOM網頁就要重新渲染;

如果js放在網頁head中,還需要等待js下載并加載;

圖片使用<img>標簽,是發起新的請求的,如果圖片返回,需要重新繪制網頁;

?

好不容易,一張網頁繪制完畢,用戶提交了請求,就是想看到查詢的結果,服務器響應到來后是一個全新的頁面內容,哪怕url不變,整個網頁都需要重新渲染,如用戶填寫注冊信息,只是2次密碼不一致,提交后,整個注冊頁面重新刷新,所有填寫項目重新填寫(有辦法讓用戶減少重填),這種交互非常不友好;

從代價的角度看,就是為了注冊的一點點信息,結果返回了整個網頁內容,不但浪費了帶寬,還需要瀏覽器重新渲染網頁,太浪費資源了;

?

上面這些請求的過程,就是同步過程,用戶發起請求,頁面整個刷新,直至服務器端響應的數據到來并重新渲染;

?

異步:

1996年,MS實現了iframe標簽,可在一個網頁使用iframe標簽,局部異步加載內容;

1999年,MS推出異步數據傳輸的ActiveX插件技術,太笨重了,但也火了很多年,有一個組件XMLHttpRequest被大多數瀏覽器支持;

?

AJAXasynchronous javascript and xml,異步javascriptxml,使用XMLHttpRequest組件,結合js,數據格式采用xml,將這三者結合,實現網頁的異步請求;

ajax是一種技術的組合,技術的重新發現,而不是發明,但是它深遠地影響了整個web開發;

?

2005年,googleGmail和地圖中應用,使它大受歡迎并推廣開來;

?

有了異步請求,就可動態的從瀏覽器發起請求到服務器端,服務器端返回響應的數據封裝成XMLjson)返回給瀏覽器,瀏覽器只需要使用js把內容加入到DOM中,局部渲染就可以了,這個過程中,整個網頁不用重新刷新,只需要局部動態改變即可;

?

?

前端開發:

早期前端開發使用網頁三劍客:dreamweaverfireworkflash

MS的有frontpage

?

不管使用什么工具,都不能改變js兼容、css兼容、瀏覽器版本兼容的問題,非常頭疼;

?

2006jQuery庫出現,有了JS框架,抹平了平臺差異,基于它產生眾多的插件,前端開發終于輕松了些;

2008年,V8引擎伴隨著chrome瀏覽器發布;

2009年,ES5標準發布;

2009年,Nodejs發布,服務器端也可以使用JavaScriptb ;

2009年,AngularJS誕生,之后被google收購;

2010年,Backbone.js誕生;

2011年,Reactember誕生,React20135月開源;

2014年,國人尤雨溪的Vue.js誕生;

2014年,HTML5標準發布;

?

前端工具和框架越來越多,前端開發已經不是隨便使用一個什么文本編輯器就可完成的了,如果使用框架,需要很多工具的配合,配置好一個開發環境非常重要;

?

注:

AngularJsReactVue.js這三個前端框架類似pyweb框架DjangoFlaskTornado

?

?

硬件發展:

最初,網頁就是簡單的文本,計算機輕松勝任;

后來,網頁對多媒體的支持、動態效果的支持,都需要使用大量的cpu、內存資源,甚至是顯卡的渲染能力;

所以,個人pc需要不斷升級,否則瀏覽網頁很困難;

?

移動互聯網到來的早期,手機看的網頁,都需要單獨處理;

手機屏幕小、cpu弱、內存小,能看的網頁純文本加小圖,這樣產生的流量小,2G時代談不上網速;

?

2007年,第一代iphone誕生,2008年安卓手機誕生,3G的移動互聯網時代到來了;

手機硬件水平不斷提升,手機的開發平臺可以讓眾多開發者開發app,用戶可下載安裝使用這些app

對于開發者來說,開發就是個問題了,是不是需要開發一套iphone版本、再開發一套安卓、再開發一套網頁的版本?

?

2013年,中國進入4G時代,手機硬件水平也得到了很大的提升;

眾多平臺思考的是,能夠有一套架構,解決所有前端問題,還是最通用的網頁+js

?

如今的前端開發,已不是以前的幾個js文件、幾百行代碼了,為了適應需求,新框架、新編程模式不斷涌現,這些工具都大大方便了協作開發,同時解決平臺兼容性問題;

?

?

?

?

?


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿图什市| 吴桥县| 南安市| 彭泽县| 乐陵市| 富锦市| 东乌| 宁远县| 孙吴县| 永仁县| 石渠县| 维西| 永登县| 仪征市| 新郑市| 刚察县| 新民市| 武宁县| 从化市| 中牟县| 金门县| 射阳县| 通化市| 大庆市| 四平市| 寻乌县| 巴林右旗| 江阴市| 张家港市| 米易县| 北碚区| 福鼎市| 教育| 墨江| 东安县| 介休市| 定日县| 靖江市| 中西区| 怀宁县| 凌云县|