Web開發是比較費神的,須要掌握不少不少的東西,特別是從事前端開發的朋友,須要通十行才行。今天,本文向初學者介紹一些Web開發中的基本概念和用到的技術,從A到Z總共26項,每項對應一個概念或者技術。javascript
A — AJAXphp
AJAX 全稱爲「Asynchronous JavaScript and XML」(異步JavaScript和XML),是一種建立交互式網頁應用的網頁開發技術。根據Ajax提出者Jesse James Garrett建議,AJAX:css
- 使用XHTML+CSS來表示信息;
- 使用JavaScript操做DOM(Document Object Model)進行動態顯示及交互;
- 使用XML和XSLT進行數據交換及相關操做;
- 使用XMLHttpRequest對象與Web服務器進行異步數據交換;
- 使用JavaScript將全部的東西綁定在一塊兒。
相似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如AFLAX。html
B — Browser
網頁瀏覽器 是個顯示網頁服務器或文件系統內的文件,並讓用戶與此些文件交互的一種軟件。它用來顯示在萬維網或局域網等內的文字、圖像及其餘信息。這些文字或圖像,能夠是鏈接其餘網址的超連結,用戶可迅速及輕易地瀏覽各類信息。大部分網頁爲HTML格式,有些網頁需特定瀏覽器才能正確顯示。我的電腦上常見的網頁瀏覽器按照2010年1月的市場佔有率依次是微軟的Internet Explorer、Mozilla的Firefox、Google的Google Chrome、蘋果公司的Safari和Opera軟件公司的Opera。瀏覽器是最常用到的客戶端程序。Web開發人員應該確保其程序在各個主流瀏覽器中都能正常工做。前端
C — CSS
層疊樣式表,又稱:串樣式列表,英文:Cascading Style Sheets,簡寫爲CSS,由W3C定義和維護的標準,一種用來爲結構化文檔(如HTML文檔或XML應用)添加樣式(字體、間距和顏色等)的計算機語言。目前最新版本是CSS 2.1,爲W3C的候選推薦標準。下一版本CSS 3仍然在開發過程當中。java
D — DOM
文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展置標語言的標準編程接口。Document Object Model的歷史能夠追溯至1990年代後期微軟與Netscape的「瀏覽器大戰」(browser wars),雙方爲了在JavaScript與JScript一決生死,因而大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了很多專屬事物,計有VBScript、ActiveX、以及微軟自家的DHTML格式等,使很多網頁使用非微軟平臺及瀏覽器沒法正常顯示。DOM便是當時蘊釀出來的傑做。node
E — Events
事件 是能夠被控件識別的操做,如按下肯定按鈕,選擇某個單選按鈕或者複選框。每一種控件有本身能夠識別的事件,如窗體的加載、單擊、雙擊等事件,編輯框(文本框)的文本改變事,等等,現代的Web應用程序很大程度上依靠事件驅動。程序員
事件有系統事件和用戶事件。系統事件由系統激發,如時間每隔24小時,銀行儲戶的存款日期增長一天。用戶事件由用戶激發,如用戶點擊按鈕,在文本框中顯示特定的文本。事件驅動控件執行某項功能。觸發事件的對象稱爲事件發送者;接收事件的對象稱爲事件接收者。web
使用事件機制能夠實現:當類對象的某個狀態發生變化時,系統將會經過某種途徑調用類中的有關處理這個事件的方法或者觸發控件事件的對象就會調用該控件全部已註冊的事件處理程序等。正則表達式
F — Firebug
Firebug 是網頁瀏覽器 Mozilla Firefox 的一個擴展,是一個除錯工具。用戶能夠利用它除錯、編輯、甚至刪改任何網站的 CSS、HTML、DOM、與 JavaScript 代碼。Firebug 也有提供其餘網頁開發工具,例如 Yahoo! 的網頁速度優化建議工具YSlow。Firebug是哈維(Joe Hewitt)撰寫的。他是最初Firefox創始者之一。
G — Grid
網格,也稱柵格,不過從定義上說,柵格更爲準確些。網上找個一個對網頁柵格系統比較恰當的定義:以規則的網格陣列來指導和規範網頁中的版面佈局以及信息分佈。網頁柵格系統是從平面柵格系統中發展而來。對於網頁設計來講,柵格系統的使用,不只可讓網頁的信息呈現更加美觀易讀,更具可用性。並且,對於前端開發來講,網頁將更加的靈活與規範。若是有不少CSS框架支持柵格功能,可參考文章《介紹27款經典的CSS框架》。
H — HTML
超文本置標語言(英文:HyperText Markup Language,HTML)是爲「網頁建立和其它可在網頁瀏覽器中看到的信息」設計的一種置標語言。HTML被用來結構化信息——例如標題、段落和列表等等,也可用來在必定程度上描述文檔的外觀和語義。由蒂姆·伯納斯-李給出原始定義,由IETF用簡化的SGML(標準通用置標語言)語法進行進一步發展的HTML,後來成爲國際標準,由萬維網聯盟(W3C)維護。
最新版本是HTML5它是HTML下一個的主要修訂版本,如今仍處於發展階段。目標是取代1999年所定訂的HTML 4.01和XHTML 1.0 標準,以期能在互聯網應用迅速發展的時候,使網絡標準達到符合當代的網絡需求。廣義論及HTML5時,實際指的是包括HTML、CSS和JavaScript在內的一套技術組合。
I — IE
Windows Internet Explorer(舊稱Microsoft Internet Explorer,簡稱Internet Explorer,縮寫IE),是微軟公司推出的一款網頁瀏覽器。截至2010年9月止,統計的數據顯示Internet Explorer的市場佔有率高達59.65%。雖然它依然是使用最普遍的網頁瀏覽器,但與2003年最高峯時相比,市場佔有率相差超過30%。
Internet Explorer對一些標準化技術都有必定程度上的支持,但亦有不少運行上的差距和兼容性的故障 ,這致使技術開發者的批評日益增長。批評增長的狀況,在很大程度上是歸因於Internet Explorer的競爭對手相對地已提供徹底的技術支持,標準規格(Standards-compliant)的應用亦愈來愈普遍起來。由於Internet Explorer在全球廣爲應用,網絡開發者們在尋求跨平臺的代碼時經常會發現Internet Explorer的漏洞、私有的功能集合和對標準支持的不完善。
2011年3月14日發佈的Internet Explorer 9瀏覽器大幅提升對CSS3和HTML5等W3C規範的支持程度,這個版本也是Internet Explorer瀏覽器第一個採用GPU加速的版本,正式版於Acid3測試中得到95/100分,相比以往版本有很大進步。能夠認爲,從Internet Explorer 9開始,Internet Explorer瀏覽器對W3C規範的支持將再也不是問題。
J — JavaScript
JavaScript 是一種普遍用於客戶端Web開發的腳本語言,經常使用來給HTML網頁添加動態功能,好比響應用戶的各類操做。它最初由網景公司的Brendan Eich設計,是一種動態、弱類型、基於原型的語言,內置支持類。JavaScript是Sun公司的註冊商標。Ecma國際以JavaScript爲基礎制定了ECMAScript標準。JavaScript也能夠用於其餘場合,如服務器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,字節順序記號。
Netscape公司在最初將其腳本語言命名爲LiveScript來Netscape在與Sun合做以後將其更名爲JavaScript。JavaScript最初受Java啓發而開始設計的,目的之一就是「看上去像Java」,所以語法上有相似之處,一些名稱和命名規範也借自Java。但JavaScript的主要設計原則源自Self和Scheme.JavaScript與Java名稱上的近似,是當時網景爲了營銷考慮與Sun公司達成協議的結果。爲了取得技術優點,微軟推出了JScript來迎戰JavaScript的腳本語言。爲了互用性,Ecma國際(前身爲歐洲計算機制造商協會)建立了ECMA-262標準(ECMAScript)。如今二者都屬於ECMAScript的實現。儘管JavaScript做爲給非程序人員的腳本語言,而非做爲給程序人員的編程語言來推廣和宣傳,可是JavaScript具備很是豐富的特性。
K — Keyword Optimization
關鍵詞優化,也叫搜索引擎優化(Search Engine Optimization,簡稱SEO)是一種利用搜索引擎的搜索規則來提升目的網站在有關搜索引擎內的排名的方式。因爲很多研究發現,搜索引擎的用戶每每只會留意搜索結果最前面的幾個條目,因此很多網站都但願經過各類形式來影響搜索引擎的排序。當中尤以各類依靠廣告維生的網站爲甚。
所謂「針對搜索引擎做優化的處理」,是指爲了要讓網站更容易被搜索引擎接受。搜索引擎會將網站彼此間的內容作一些相關性的數據比對,而後再由瀏覽器將這些內容以最快速且接近最完整的方式,體現給搜索者。
搜索引擎優化對於任何一家網站來講,要想在網站推廣中取得成功,搜索引擎優化都是至爲關鍵的一項任務。同時,隨着搜索引擎不斷變換它們的排名算法規則,每次算法上的改變都會讓一些排名很好的網站在一晚上之間名落孫山,而失去排名的直接後果就是失去了網站固有的可觀訪問量。因此每次搜索引擎算法的改變都會在網站之中引發不小的騷動和焦慮。能夠說,搜索引擎優化是一個越來越複雜的任務。
L — Less
Less 最先是一個ruby的gem,讓CSS具備動態語言的特性,這些特性包括變量,操做符,嵌套規則。其實Less真正的做用是將使用高級特性的CSS轉換成標準的CSS。這些都是在Web客戶端發起請求時經過Http Handler來完成的。也能夠是編輯時就完成的。此外,Less能夠配置成自動最小化所生成的CSS文件,不只節省了帶寬,而且使最終用戶體驗更上一層。另外有.Net版本的Less。
M — MVC
MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。MVC模式最先由Trygve Reenskaug在1974年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代爲程序語言Smalltalk發明的一種軟件設計模式。MVC模式的目的是實現一種動態的程序設計,使後續對程序的修改和擴展簡化,而且使程序某一部分的重複利用成爲可能。除此以外,此模式經過對複雜度的簡化,使程序結構更加直觀。軟件系統經過對自身基本部份分離的同時也賦予了各個基本部分應有的功能。
N — Node.JS
Node 是一個Javascript運行環境(runtime),實際上它是對Google V8引擎(應用於Google Chrome瀏覽器)進行了封裝。V8引 擎執行Javascript的速度很是快,性能很是好。Node對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下運行得更好。例 如,在服務器環境中,處理二進制數據一般是必不可少的,但Javascript對此支持不足,所以,V8.Node增長了Buffer類,方便而且高效地 處理二進制數據。所以,Node不只僅簡單的使用了V8,還對其進行了優化,使其在各環境下更加給力。Node.js一應俱全,但最主要的一點是,它提供了一種在Web瀏覽器以外運行Javascript的途徑。Javascript普遍應用於網站的前端開發。Node使得這種流行的編程語言可以在更多環境下運行,甚至是網站的服務器端。
O — Object
對象(object),是面向對象(Object Oriented) 中的術語,既表示客觀世界問題空間(Namespace)中的某個具體的事物,又表示軟件系統解空間中的基本元素。在軟件系統中,對象具備惟一的標識符,對象包括屬性(Properties)和方法(Methods),屬性就是須要記憶的信息,方法就是對象可以提供的服務。在面向對象(Object Oriented) 的軟件中,對象(Object)是某一個類(Class)的實例(Instance)。
P — PHP
PHP(Hypertext Preprocessor)是一種在電腦上運行的腳本語言,主要用途是在於處理動態網頁,也包含了命令行運行接口(command line interface),或者產生圖形用戶界面(GUI)程序。PHP最先由Rasmus Lerdorf在1995年發明,而如今PHP的標準由PHP Group和開放源代碼社區維護。PHP以PHP License做爲許可協議,不過由於這個協議限制了PHP名稱的使用,因此和開放源代碼許可協議GPL不兼容。
PHP的應用範圍至關普遍,尤爲是在網頁程序的開發上。通常來講PHP大多運行在網頁服務器上,經過運行PHP代碼來產生用戶瀏覽的網頁。PHP能夠在多數的服務器和操做系統上運行,並且使用PHP徹底是免費的。根據2007年4月的統計數據,PHP已經被安裝在超過2000萬個網站和100萬臺服務器上。
Q — Query
查詢,有不少種意思。例如查詢語言用來和存儲數據的擴展系統交互,一個很好的例子就是SQL用來操做關係數據庫。另外一種意思是,一個查詢字符串,做爲URL的一部分用於Web應用程序中傳遞數據,查詢字符串的格式通常是鍵值對形式。
R — Regular Expressions
正則表達式(英語:Regular Expression、regex或regexp,縮寫爲RE),也譯爲正規表示法、常規表示法,在計算機科學中,是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在不少文本編輯器或其餘工具裏,正則表達式一般被用來檢索和/或替換那些符合某個模式的文本內容。許多程序設計語言都支持利用正則表達式進行字符串操做。例如,在Perl中就內建了一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。
S — Source Control
源代碼管理,也稱版本控制,是一種軟件工程技巧,藉此能在軟件開發的過程當中,確保由不一樣人所編輯的同一程式檔案都獲得同步。軟件設計師常會利用版本控制來追蹤、維護源碼、文件以及設定檔等等的更動,而且提供控制這些更動控制權的程序。在最簡單的狀況下,軟件設計師能夠本身保留一個程式的許多不一樣版本,而且爲它們作適當的編號。這種簡單的方法已被用在不少大型的軟件專案中。這是一個能夠達到目的的方法,但不夠有效率。除了得同時維護不少幾乎同樣的程式碼備份外;並且極度依賴軟件設計師的自我修養與開發紀律,但這卻常是致使錯誤發生的緣由。
有時候,一個程式同時存有兩個以上的版本也有其必要性,例如:在一個爲了部署的版本中程式錯誤已經被修正、但沒有加入新功能;在另外一個開發版本則有新的功能正在開發、也有新的錯誤待解決,這使得同時間須要不一樣的版本並修改。此外,爲了找出只存在於某一特定版本中的程式錯誤、或找出程式錯誤出現的版本,軟件除錯者也必須藉由比對不一樣版本的程式碼以找出問題的位置。
T — TDD
測試驅動開發(Test-driven development)是現代計算機軟件開發方法的一種。利用測試來驅動軟件程序的設計和實現。測試驅動開始流行於20世紀90年代。測試驅動開發是極限編程中倡導的程序開發方法,方法主要是先寫測試程序,而後再編碼使其經過測試。測試驅動開發的目的是取得快速反饋並使用「illustrate the main line」方法來構建程序。
測試驅動開發的比喻。開發能夠從兩個方面去看待:實現的功能和質量。測試驅動開發更像兩頂帽子思考法的開發方式,先戴上實現功能的帽子,在測試的輔助下,快速實現正確的功能;再戴上重構的帽子,在測試的保護下,經過去除冗餘和重複的代碼,提升代碼重用性,實現對質量的改進。可見測試在測試驅動開發中確實屬於核心地位,貫穿了開發的始終。
U — Unit Testing
單元測試(又稱爲模塊測試)是針對程序模塊(軟件設計的最小單位)來進行正確性檢驗的測試工做。程序單元是應用的最小可測試部件。在過程化編程中,一個單元就是單個程序、函數、過程等;對於面向對象編程,最小單元就是方法,包括基類(超類)、抽象類、或者派生類(子類)中的方法。
一般來講,程序員每修改一次程序就會進行最少一次單元測試,在編寫程序的過程當中先後極可能要進行屢次單元測試,以證明程序達到軟件規格書(en:Specification)要求的工做目標,沒有臭蟲;雖然單元測試不是什麼必須的,但也不壞,這牽涉到項目管理的政策決定。
V — VIM
Vim 是從vi發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用。和Emacs並列成爲類Unix系統用戶最喜歡的編輯器。Vim的第一個版本由Bram Moolenaar在1991年發佈。最初的簡稱是Vi IMitation,隨着功能的不斷增長,正式名稱改爲了Vi IMproved。如今是在開放源代碼方式下發行的自由軟件。
W — WordPress
WordPress 是一種使用PHP語言開發的博客平臺,用戶能夠在支持PHP和MySQL 數據庫的服務器上架設本身的網誌。也能夠把 WordPress 看成一個內容管理系統(CMS)來使用。WordPress 是一個免費的開源項目,在GNU通用公共許可證下受權發佈。目前最新版本爲2011年2月24日發佈的3.0.5官方簡體中文版,另外還有包括英文在內的多種語言可選。
X — XSS
跨網站指令碼(Cross-site scripting,一般簡稱爲XSS)是一種網站應用程式的安全漏洞攻擊,容許惡意使用者將程式碼注入到網頁上,其餘使用者在觀看網頁時就會受到影響。這類攻擊一般包含了HTML以及使用者端腳本語言。
Y — YUI
Yahoo! UI Library (YUI) 是一個開放源代碼的 JavaScript 函數庫,爲了能創建一個高互動的網頁,它採用了AJAX,DHTML 和 DOM 等程式碼技術。它也包含了許多 CSS 資源。
Z — Z index
Z-Index 是CSS屬性,設置元素的堆疊順序。擁有更高堆疊順序的元素老是會處於堆疊順序較低的元素的前面。該屬性設置一個定位元素沿 z 軸的位置,z 軸定義爲垂直延伸到顯示區的軸。若是爲正數,則離用戶更近,爲負數則表示離用戶更遠。