總覽前端發展史
- 前言
- 瀏覽器的發展史
- 走進前端
- HTML
- CSS
- javaScript
- 小前端時代
- 大前端時代
- 寫在最后
前言
目前在IT公司中前端的崗位越來越成為不可或缺的,前端的地位也愈見明顯,很多學校已經體系的傳授前端課程,眾多培訓機構也將前端知識作為了主流課程,也有越來越多的同學加入到前端學習的行列中,作為前端工程師或者前端的學習者我們有必要去了解前端的發展史。那么首先讓我們來了解一下瀏覽器的發展歷程。
瀏覽器的發展史
在中享思途的行業資訊中看到了他對瀏覽器的發展史總結如下:
1、1991年,WorldWideWeb瀏覽器發布,這款可以說是祖父級別的,它是全球用戶最早注冊的WEB瀏覽器,WorldWideWeb開發始于20世紀80年代末,之后10年間經過MTV的宣傳以及Commodore 64的完善,終于在1991年這個有跨時代意義的Web瀏覽器發布了。WorldWideWeb原理很簡單,可以顯示基本的樣式表。
2、1992年,Erwise發布,他被稱為世界上第一個圖形網頁瀏覽器,它是由赫爾辛基科技大學的4個芬蘭學生開發,主要是針對在Unix上運行 XWindows的需要。ViolaWWW,它是最高老的瀏覽器之一,在1992年5月份發布,它的開發者是美國加州大學的學生Pei-Yuan Wei,他的目的和Erwise一樣是針對在Unix上運行 X Windows的需要。MidasWWW也是1992年發表的,它是由托尼約翰遜在斯坦福線型加速器中心研發的。Lynx首發也是在1992年,它提供了一個語音轉換接口為視覺和聽覺障礙的人群提供了很好的功能。
3、1993年,Mosaic1.0發布,Mosaic可以說在一定程度上升華了Erwise的圖形化,并且將圖形化瀏覽器推向了萬維網的主流。Arena瀏覽器是第一個支持背景圖片,表格、文字繞流圖片和內嵌數學表達式的瀏覽器,支持背景圖片,表格等。
4、1994年,Cello發布,他支持的就比較多了,WorldWideWeb、Gopher、FTP、CSO/ph/qi、Usenet News retrieval以及其他的一些協議,他當時成為了Windows平臺上第一款瀏覽器。IBM WebExplorer也在同年發布,IBM推出自己的操作系統,WebExplorer也是強行捆綁在了他的系統系統上。Netscape Navigator它是一款獨立的瀏覽器,而其在當時他的市場份額遠遠超過了微軟的Internet Explorer。
5、1995年,IE發布,瀏覽器之戰也就此爆發。微軟的Internet Explorer在此年首次推出,為了打造最好的瀏覽器,微軟的源代碼從Mosaic上獲益匪淺,學習并迅速開始調整自己的瀏覽器,IE早期并沒有捆綁在Window95上,而是作為Window95插件包的一部分進行捆綁,當時他只有1M大小。IE2在同年晚些時間發布,微軟當時聲稱這是一個跨平臺的瀏覽器,支持Window和Mac,IE2也加入了支持JavaScript的潮流中,它支持安全套接字層(SSL),Cookie和包括英語在內的12種語言。IE3正式捆綁在了Windows 95OSR2中,它是第一個支持CSS的主流瀏覽器,IE3擺脫了Spyglass源代碼的局限,開始支持ActiveX控件,Java小程序,和Internet郵件。
6、1996年,Opera發布,Telenor是挪威最大的通訊公司,他們推出了Opera,并在兩年后進軍移動市場,推出了Opera的移動版。
7、1997年,IE4伴隨著Windows 98操作系統一起發布。在發布Window Xp之前發布了IE6,并且新系統中包括了瀏覽器的最新升級補丁。隨后IE逐漸占據了市場絕大部分份額。其他瀏覽器敗下陣來。
8、1998年,Netscape瀏覽器走向開源,和IE之爭最后以失敗告終。
9、2003年,蘋果Safari瀏覽器發布,蘋果進入瀏覽器市場推出了自己的Webkit引擎,該引擎非常優秀,后來被Google,Nokia之類的廠商用于手機瀏覽器。
10、2004年,Firefox引發了第二場瀏覽器之爭。
11、2006年,IE7發布,IE6發布的第六年,迫于Firefox的壓力,微軟匆匆推出IE7應戰,吸取了Firefox的一些設計思想。
12、2008年,Google的Chrome參戰,Google發布了他們自己的瀏覽器,以輕量級,快,異常的穩固讓這款瀏覽器成為了一個不可輕視的對手。
以上就是瀏覽器的一個大致發展歷程了。接下來看看HTML的一個發展史。
走進前端
首先前端是什么呢?這個好像大家沒有對他一個最完美的詮釋,記得在上家公司,有一天與我們公司老板做了同一趟電梯,老板問道你是做什么的,我回答在咱們公司做前端開發,能不能跟我說一下什么是前端開發?老板隨和的問道,毫無準備的我腦海中飄出很多詞匯!你能看到的所有東西都是我們前端來做的。。。后端為我們提供邏輯、數據我們來給用戶做展示,老板說能不能用一個詞來涵蓋,嗯。。。。數據可視化
。老板說好,我明白了。其實我也不知道這樣表述是否準確,但是在我的理解中是沒有問題的哈,94將數據展示出來嘛哈哈!看到一篇文章中他是這樣解釋的:
前端指的就是瀏覽器端,后端指的就是為瀏覽器提供服務和數據的服務器端。這是比較準確的描述,如果往大了講,你所有看到的一切,網頁、移動端網頁、小程序、甚至某些APP,都是屬于前端的范疇。
下面博主就帶領大家見證前端是如何發展到今天的!
上個世紀90 年代初,第一個網站便誕生,當時的網頁完完全全是由文本所構成,除了一些小圖片就是毫無布局可言的標題與段落。但是發展到今天來看我們各種用戶操作邏輯的變更,我們各種炫酷樣式的迭代,以及各種用戶行為的理想化其實這些界面的變革都是我們前端的進步!
下面介紹的三位就是我們前端重中之重,最重要的三門技術,如果我們把前端比喻成一部手機,那么HTML可以說成是我們手機的硬件、CSS他就是我們手機的外觀色彩、javaScript則是我們手機的功能!即使前端出現更多的高級框架,其實也都是在不同程度的去封裝我們這三門基礎語言。
HTML
HTML(超文本標記語言——HyperText Markup Language)是構成 Web
世界的基石。HTML是一種基礎技術,常與CSS、JavaScript一起被眾多網站用于設計令人賞心悅目的網頁、網頁應用程序以及移動應用程序的用戶界面。
1、HTML 1.0 超文本標記語言(第一版) – 在1993年6月發為互聯網工程工作小組(IETF)工作草案發布(并非標準)
2、HTML 2.0 – 1995年11月作為RFC 1866發布,在RFC 2854于2000年6月發布之后被宣布已經過時
3、HTML 3.2 – 1996年1月14日,W3C推薦標準
4、HTML 4.0 – 1997年12月18日,W3C推薦標準
5、HTML 4.0(微小改進) – 1999年12月24日,W3C推薦標準
6、XHTML 1.0 – 發布于2000年1月26日,是W3C推薦標準,后來經過修訂于2002年8月1日重新發布
7、XHTML 1.1 – 于2001年5月31日發布
8、HTML5.0 2014年10月28日,萬維網聯盟宣布,經過接近8年的艱苦努力,該標準規范終于制定完成
CSS
層疊樣式表(英文全稱:Cascading StyleSheets)是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化。
1994 年,Hkon Wium Lie 最初提出了 CSS 的想法,聯合當時正在設計 Argo 的瀏覽器的Bert Bos,他們決定一起合作設計 CSS,于是創造了 CSS 的最初版本。
緊接著,他們在芝加哥的Mosaic and the Web 大會上第一次正式提出了 CSS 的建議,1995 年他們一起再次展示了這個建議。當時 W3C 剛剛建立,W3C 對 CSS 很感興趣,為此專門組織了一次討論會。
1996 年 12 月,W3C 推出了 CSS 規范的第一版本。
1997 年,W3C 頒布 CSS1.0 版本 ,CSS1.0 較全面地規定了文檔的顯示樣式,可分為選擇器、樣式屬性、偽類 / 對象幾個部分。
這一規范立即引起了各方的關注,隨即微軟和網景公司的瀏覽器均能支持 CSS1.0,這為 CSS 的發展奠定了基礎。
1998 年,W3C 發布了 CSS 的第二個版本,目前的主流瀏覽器都采用這標準。
CSS2 的規范是基于 CSS1 設計的,包含了 CSS1 所有的功能,并擴充和改進了很多更加強大的屬性。包括選擇器、位置模型、布局、表格樣式、媒體類型、偽類、光標樣式。
2005 年 12 月,W3C 開始 CSS3 標準的制定
javaScript
JavaScript作為賦予網頁生命的前端基礎技術,它可以實現相應的效果和交互,是前端開發不可或缺的基本配置之一。因此,今天小編就來帶家了解一下JavaScript的前世今生,具體內容包括JavaScript 的誕生、語言版本的更迭以及應用領域等等。讓大家在入門開始學習JavaScript之前,對JavaScript的發展歷史有一個大致的了解。
JavaScript誕生于1995年,當時,它的主要目的是處理以前由服務器端需要負責的一些沒有輸入驗證操作。在JavaScript問世之前,必須把表單數據發送到服務器端才能確定用戶是否沒有填寫某個必填域,是否輸入了無效的值。Netscape Navigator希望通過JavaScript來解決這個問題。在人們普遍使用電話撥號上網的時代,能夠在客戶端完成一些基本的驗證任務絕對是令人興奮的。畢竟,撥號上網速度之慢,導致了與服務器的每一次數據交換事實上都成了對人們耐心的一次考驗。由此誕生了JavaScript!
年份 | 版本 | 更新內容 |
---|---|---|
1997 | ECMAScript1 | 第一版本 |
1998 | ECMAScript2 | 版本變更 |
1999 | ECMAScript3 | 添加正則表達式 try/catch |
1997 | ECMAScript4 | 沒有正式發布 |
2009 | ECMAScript5 | 添加‘strict mode‘ 嚴格添加 JSON支持 |
2011 | ECMAScript5.1 | 版本變更 |
2015 | ECMAScript6 | 添加類和模塊 |
2016 | ECMAScript7 | 添加指數運算符(**)Array.prototype.includes |
2018 | ECMAScript8 | 添加rest/spread屬性、異步迭代、promise.finally()、RegExp |
小前端時代
其實在小前端時代之前還有更加慘淡的階段,甚至都么有前端的概念哈,這里呢就不來給大家大篇幅的來說了,不是因為不想說而是因為博主不太專業哈,就是我們的PHP嵌套前端代碼以及JSP搭建網站等等;
1995年,這是個好年份,又是這個搞事的網景公司,拜托一位叫布蘭登-艾奇的大佬,希望開發出一個類似 Java 的腳本語言,用來提升瀏覽器的展示效果,增強動態交互能力。結果大佬喝著啤酒抽著煙,十來天就把這個腳本語言寫出來了,功能很強大,就是語法一點都不像Javao 這樣就漸漸形成了前端的雛形:HTML為骨架,CSS 為外貌,JavaScript 為交互。
同時期微軟等一些公司也針對自家瀏覽器開發出了自己的腳本語言。瀏覽器五花八門,雖然有了比較統一的 ECMA 標準,但是瀏覽器先于標準在市場上流行開來,成為了事實標準。導致,現在前端工程師還要在做一些政府古老項目的時候,還要去處理瀏覽器兼容(萬惡的IE系列)哈哈 不過現在距離IE還有半個月就退出舞臺啦,前端人的噩夢結束了
。
隨著時代的不斷進步,接下來就出現了表格布局,隨后是 Flash,最后是基于 css的網頁設計。簡單來說,前端頁面重構技術經歷著這樣的一個過程:table布局頁面DIV+CSS =》HTML5+CSS3, 并且面對眾多的瀏覽器與平合,web 前端己不再是以前那樣簡單的重復性工作。
不管怎么說,前端開發也算是能寫點邏輯代碼了,不再是只能畫畫頁面的低端開發了。隨著1998年 ajax 的出現,前端開發從 web1.0邁向了web2.0,甚至目前漸漸轉向了web3.0
;前端從純內容的靜態展示,發展到了動態網頁,富交互,前端數據處理的新時期。這一時期,比較知名的兩個富交互動態的瀏覽器產品是:
? Gmail (2004年)
? Google 地圖 (2005年)
由于動態交互、數據異步 請求的需求增多,還衍生出了jQuery (2006) 這樣優秀的跨瀏覽器的 js 工具庫,主要用于 DOM操作,數據交互。有些古老的項目現在還在使用 jQuery。
大前端時代
前端開發的前身是 “網頁制作”,隨著移動端的興起和4G、5G技術的普及,互聯網產品業務越來越復雜,在 2011年前后,逐步脫變為前端開發;
在2011之前,前端后端是不分家的,2011后智能手機普及了,場景也越來越豐富復雜了,不得不把前端獨立出來,也是目前主流的前后端分離開發模式。2016年前后,前端開發突然迎來了技術井噴期,開發形式突然發生了翻天覆地的變化。
nodejs 突然火了,2009年誕生,2015到2016左右在中國就火起來了,node火了之后帶來了連鎖反應
2016年前后,以 webpack為代表的 Node.js 工作流工具使前端開發的開發形式產生了翻天覆地的變化,并且,隨著 Vue / React 的誕生,使前端開發進入了框架時代,工程化時代;甚至具備了微前端的概念。
寫在最后
其實今天跟大家聊的并不是很多,而是大概的來梳理了一下前端發展大的節點,等后面博主會出一期更加細致的前端發展的歷程,利用語言出現的使命環環相扣!以及我們的開發模式的MVC、MVP、MVVM的變革我們放到后期來說;
其實我們回首 web 前端開發的過去和現在,對于我們崗位的稱呼也相應地不斷發生著改變:頁面小工、切圖小工、美工、頁面制作,再到現在的“前端開發”,由于 html 與css入門起點較低,小公司里的“美工們”也許至今還干著這樣的工作:出圖 (Photoshop/Firework)切圖(HTML/CSS),現在而言前端開發并非如此了,隨著越來越多的前端框架的興起,我們如今的前端PC、APP、H5、xiao cheng xu、公眾號、百度、支付寶小程序等多端應用一名前端開發工程師足以,利用不同的技術框架更加專業的編寫出不同應用端的代碼,以及前端甚至可以利用node脫離后端,我們一些框架甚至直接可以基于云進行開發,在當前云原生火爆之時,云函數、云存儲甚至不用任何后端語言皆可進行開發!總結一下就是:Web 前端開發其實是很牛的職位!
很多前端伙伴問題有沒有體系的面試題?
今天為大家推薦一款刷題神奇哦 點擊鏈接訪問牛客網
各大互聯網大廠面試真題。從基礎到入階乃至原理刨析類面試題 應有盡有,趕快來裝備自己吧!助你面試穩操勝券,solo全場面試官
本期圖書鑒賞
(1)零基礎也能快速入門。本書從最基礎的高等數學基礎講起,由淺入深,層層遞進,在鞏固固有知識的同時深入講解人工智能的算法原理,無論讀者是否從事計算機相關行業,是否接觸過人工智能,都能通過本書實現快速入門。
(2)全新視角介紹數學知識。采用計算機程序模擬數學推論的介紹方法,使數學知識更為清晰易懂,更容易讓初學者深入理解數學定理、公式的意義,從而激發起讀者的學習興趣。
(3)理論和實踐相結合。每章最后提供根據所在章的理論知識點精心設計的“綜合性實例”,讀者可以通過綜合案例進行實踐操作,為以后的算法學習奠定基礎。
(4)大量范例源碼+習題答案,為學習排憂解難。本書所有示例都有清晰完整的源碼,每章之后設有習題并配套題目答案,講解清晰,解決讀者在學習中的所有困惑。
本書以零基礎講解為宗旨,面向學習數據科學與人工智能的讀者,通俗地講解每一個知識點,旨在幫助讀者快速打下數學基礎。
全書分為 4 篇,共 17 章。其中第 1 篇為數學知識基礎篇,主要講述了高等數學基礎、微積分、泰勒公式與拉格朗日乘子法;第 2 篇為數學知識核心篇,主要講述了線性代數基礎、特征值與矩陣分解、概率論基礎、隨機變量與概率估計;第 3 篇為數學知識提高篇,主要講述了數據科學的幾種分布、核函數變換、熵與激活函數;第 4 篇為數學知識應用篇,主要講述了回歸分析、假設檢驗、相關分析、方差分析、聚類分析、貝葉斯分析等內容。