web編程:建站的誘惑與陷阱
更多
舉報 回復 收藏 1樓 樓主:復朴 時間:2013-05-03 20:16:00 (二)網路編程 關於網路的電子書,裡邊的說道,瀰漫著一種氣氛,讓我不太感冒,但我對裡邊的做網站的網路技術感興趣,覺著是正道。 中國自古以來,有所謂藝高人膽大、藝多不壓身的說法,更有「縱有良田千畝、不如一技在身」之說,我深表認同,並認為,通過技術謀身,是芸芸眾身的常態和大道。我在讀過《中國社會各階層分析》一書之後,更認同作者其中的說法,那就是學一門技術可能不能讓人發什麼大財,但卻可以讓大眾、讓百姓都能正正堂堂地有口飯吃,因為那是誠實而辛勤的勞動,是有價值的有技術含量的含金量的技術。 正好,在「網賺」的書中,介絡了一個學習做網站的網站,這個網站上存放著最純粹的做網站的技術。說了這麼多,說白了,用四個時下早已流行的說法,那技術叫啥,叫「網路編程」。 舉報 回復 收藏 2樓 樓主:復朴 時間:2013-05-03 20:17:00 (三)HTML 我是有些電腦技術底子的。在我打開那個「網路編程」的網站之後,我從目錄的最開始看起,看了一樣技術,這個技術叫HTML。 HTML,就是超級文本標記語言。這不是一種編程語言,而只是一種標識語言。啥叫「標識語言」。打個比方,在你眼前放一西瓜,而你從未見過西瓜,為了讓你明白西瓜是個啥東西,於是,我在你眼前拿了個牌子,並在牌子上寫了兩個字——「西瓜」,當然也可能是「watermelon 」這個詞。總之,你看到西瓜或watermelon,你就知道了那個東西是個啥東西了,因為你是一個識字的人。西瓜或watermelon,什麼也沒做,就做了一件事,對西瓜這個東西進行「標識」。HTML,就是這樣一門網路語言。這樣一門簡單的語言,就可以做網站了,所以HTML非常簡單,做網路非常簡單,這就是那個「網路編程」網站試圖告訴我和我也順著這個邏輯這樣認為的,那就是——做網站很簡單。我並沒有一下子認識到「標識」語言和「編程」語言之間「標識」和「編程」之間的巨大鴻溝,我只認識到,做網站很簡單,因為HTML雖然看起來有很多「標籤」需要認識,但那也是一看就懂、一看就會的事情,更何況我大學時就會很了軟體,比如辦公軟體word、powerpoint、excel、wps等,簡單學過C語言、foxpro資料庫,學過或接觸過設計軟體photoshop、coreldraw、autherware、flash、freehand、3dsmax、autocad等。而且我本身就做過計算機老師。我還認識很多英文單詞,對於網路單詞往往一看便知、能很快記住。 舉報 回復 收藏 3樓 樓主:復朴 時間:2013-05-03 20:21:00 (四)CSS 當我學了HTML之後,人家很快就告訴我,把代碼和內容混在一塊,從設計上來說,就是不科學的,所以「代碼」和「內容」應當分開。而做為HTML,做為網頁的內容的標識和內容的表現形式,也應當分開。於是,有一樣專業的擔當網頁的表現形式的技術出現了,這就是CSS。 CSS,就是「層疊樣式表」的意思,也叫「級聯樣式表」,就是專門負責網頁形式表現的渲染設計的。精通CSS的人,往往叫「網頁設計師」,而精通「網路編程」的人,往往叫「網路工程師」,這是兩個不同的概念。一個注重代碼內在的邏輯和代碼邏輯基礎上建構出來的功能。而另一個,精通HTML+CSS的人,注意的是網頁的外觀,是設計,是美感,是形式結構,是形象的吸引力,是直接的觀感表現藝術。 CSS,毫無疑問,我也學了,裡邊是一堆選擇器,通過選擇器選擇網頁中的各式標籤,並在此基礎上修改其屬性,從而達到設定、控制網頁的表現形式。CSS把標籤的屬性設置一通,就相當於一個畫家在繪畫,畫一幢房子,窗戶,樓梯,水果,陽光七彩,一樓二樓,長短高寬。。。 樓房,就是網頁;一樓二樓,就是網頁布局;整齊劃一的陳列往往就是列表;堆放陳列各式物件的柜子就是表格;窗戶樓梯就是表單;長短高寬就是盒模型;陽光七彩就是顏色,就是濾鏡。。。你看到的層次和立體性就是z-index。。。還有風格和意境,就是設計者的靈魂。。。還有你之所以能看到,那是因為媒體的存在。。。 設計思想、思路加上具體的擺弄,一幢或精美或大氣的房子就立在了你的眼前,那是一個網頁,一而二,二而三,無窮無盡的網頁就誕生了。。。而且,它們很美,因為有專業的設計在裡邊,有CSS的存在,有美工,有設計師,有藝術的靈魂。。。它們合起來,成為一個水果,很有味道。。。瀏覽網頁的人們,都會品上一口。。。 舉報 回復 收藏 4樓 樓主:復朴 時間:2013-05-03 20:22:00 (五)安靜的CSS 然而,到此為止,網頁上還是一片寂靜,網頁再美,也不過像一個定格世界一角風景的照片。 比如一個綠色的、可愛的長方形,寬10cm,高6cm。 1)HTML是這樣做的:<div id="box1" class="cutebox" width_="10cm" height="6cm" bgcolor="forestgreen"></div> 2)而有了CSS後是這樣做的: <div id="box1" class="cutebox" style="width:10cm;height:6cm;background-color:forestgreen"></div> 這不是「江南style」的style,這是CSS的style。看到style就看到了CSS。然而無論如何將網頁的表現形式通過CSS,通過style的方式分離出來,做得再專業,網頁也只是做靜止的陳列式的表現,安靜地在那裡給人看——它幾乎一動不動(當然也不是完全不動,CSS是可以讓網頁適當動起來的)。 這是因為,表現,標識可以說幾乎只是起名、編號、歸類,而表現也無非是描述或描繪。 事實上,CSS有三種,我們上邊看到的只是行內樣式表。 CSS的三種形式是: 1)行內樣式表:如上。 2)內部樣式表: <style type="text/css"> #box1{ width:10cm; height:6cm; } .cutebox{ background-color:forestgreen; } </style> 3)外部樣式表:也無非是將第2種內部樣式表<style></style>之間的設計內容單獨剝離出來,另存為一個擴展名為.css的CSS文件而已。 所以,可以看到,無論是哪一種形式的CSS,本質都是一樣的,只是組合形式上可能在某種情境下設計起來更方便更人性化而已。 我們說,CSS或許確實可以讓網頁局部有一定的動感,但非常有限,所以HTML+CSS製作出來的網頁,再壯觀,那也是「風吹大漠」,沒有真正的生機,哪怕是「春風吹彩照」,那春風也是浮在彩照上邊、擦肩而過而已。HTML+CSS做出來的網頁/網站的局限性是顯而易見的。 (六)JavaScript 就在這個時候,JavaScript出來了,它簡稱JS,據說,它和Java語言沒有多少關係,只是當然Java正是流行之初,JavaScript的創始人趕個時髦,將其改名為了JavaScript。 我們知道script是注釋的意思,由於寫文章的時候,注釋往往放在頁底,所以叫「腳註」、「腳本注釋」。JavaScript就是一個「腳本」程序,同樣VBScript也是一門腳本程序。作為「腳本」的角色,JavaScript是附著在HTML等主體內容上的,在面向對象編程(OOP)的當今,我們稱之為「嵌入式」腳本編程。(JavaScript簡稱JS,) JavaScript是這樣一門技術,那就是將網頁中的各種內容作為「對象」進行操作,甚至是對整個瀏覽器窗口對象進行操作。window對象是js的頂級對象,其他的是它的子代,後代對象。比如document,我們看到的網頁文檔,就是window對象的一個最主要的子對象。 HTML、CSS所標識、表現的內容都不過是一個個網頁而已,即網頁文檔。 JS的操作對象就是包括HTML、CSS在內的整個瀏覽器窗口對象,JS是真正的編程語言,而不是標識語言,不過JS只是一門前台的腳本語言,它沒有伺服器後台腳本語言ASP、PHP、JSP、.NET那樣強大,更沒有JAVA這樣的編程語言那麼強大,它只是一個B/S架構體系中的位於前台瀏覽器的腳本編程語言,雖然相形見絀,但是作為一門編程語言,JS還是非常強大的,而且還以靈活著稱。 在JS的映射下,我們看到的網頁中的所有內容,都成為了它的操作對象,具有可操作性,所以,JS是典型的面向對象編程語言,而非面象過程性編程語言。在JS中,一切皆對象,new object()新建的對象肯定是對象,但字串,數字,數組,窗口,文檔,表格,一切的一切都是對象,包括瀏覽歷史history也不例外。 由於網頁中的一切都可以被JS操作,自然,讓網頁動起來,就不是什麼難事,能過JS操作CSS同樣可以設計網頁的種種表現,並嚴格控制,早年由flash所擔當的諸多動畫任務,都可以由js來完成。JS可以讓網頁動感十足,只要你願意。由於一切皆對象,JS還可以動態生成網頁文檔內容。JS也常常承當著表單前台驗證的任務。 HTML+CSS+JavaScript讓網頁真正動起來了,成為了DHTML「動感HTML技術」的三大支柱,而JS正是DHTML技術中的粘合劑和控制器。當然JS的強大功能遠不止於此,它可以說是當今實現當然RIA富客戶技術的前台核心。 舉報 回復 收藏 5樓 樓主:復朴 時間:2013-05-03 20:23:00 (七)伺服器端腳本語言之一:PHP HTML+CSS+JavaScript三大前台技術製作出來的網站雖然可以達到非常生動、美好、甚至動感十足,此時的網頁雖然實現了從靜止到動感,但其局限性依然是明顯的。 HTML+CSS+JS作出來的網頁,在所有的瀏覽客戶面前都是一樣的,即千篇一律,其千篇一律的深層次原因,是因為這三樣技術都基本不具備讓網站與客戶互動的能力(當然JS作為一門面向對象的語言,是可以讓網站具備一定的互動性的,但非常有限,這是因為出於安全性的考慮,JS被限制操作當地計算機硬碟上的內容)。 前台的所有技術合起來,都難以讓網頁與客戶互動,瀏覽客戶只是被動地看著網站作制者們擺放設計的東西,網站就像電視一樣,看客們只是看看而已,它們只能被動地接受信息,這自然是非常讓人沮喪的。 不能互動,即意味著各種互動性的強大功能的喪失或不具備。網站只是一本書或頂多是一台電視機,沒多大意思。 這個時候,伺服器端腳本的概念和程序出來了。伺服器腳本程序,可以讓網路客戶與網站實行互動,網民提一個問題,網路給予回答/答案,網民做出選擇,網站給出不一樣的結果,上網的過程就像一場遊戲的過程,就像在參與一檔節目,就你和一個大師交流,太有意思,太精彩了。 伺服器端的腳本程序有很多,ASP、PHP、JSP、.NET、Ruby都作為伺服器端的開發腳本,甚至其它一些語言如Perl、JAVA等語言也可以。 技術的先進性無論與否,但是其中有一樣,那就是開源與否,對於普通的老百姓來說,影響非常大,因為開源與否,意思著收費不收費的問題,涉及到了經濟層面。 所以,越來越多的人選擇了學習PHP,因為它開源,它免費,更重的是,它是點亮那盞燈(LAMP)的核心,而那盞燈基本都是免費的,Linux操作系統,Apache(阿帕奇)伺服器系統,MySQl資料庫,當然PHP也是免費的,因為它們都開源,只要你願意,你可以基本不花錢去學習它們,掌握這些系統的技術,製作出精彩絕倫、功能強大、互動性強的網站。 在後台打開網頁文檔,我們往往會發現,網頁文檔中不但會有HTML內容,還會有CSS代碼,會有JS嵌入式前台腳本,也會有PHP之類的後代嵌入腳本。這麼多不同的技術性代碼混合著呈現在我們面前,其實事情還遠沒有完,因為PHP之類的後台腳本語言的內容呈現在我們眼前的時候,我們會發現,它實際往往是在操作資料庫數據,那就是通過後台腳本代碼如PHP代碼對資料庫數據進行四大操作「增、刪、讀、寫」。資料庫是後面的冰山。伺服器腳本是後台的海面。這就是本質。 (八)MySQL資料庫 不是說離了資料庫就不能做具有互動性的網站,就不能在伺服器端存儲數據,當然能,但局限性也是顯然的。 所以,要做具備後台功能的,能互動的,功能相對強大的網站,缺了資料庫往往是不行的。 資料庫有很多,如Oracle、MSsql、DB2、Access、MySQL、Foxpro等等,一大堆,毫無疑問,在名門輩出的資料庫江湖之中,MySQL只是其中之一,而且好些資料庫據說性能、功能上遠比MySQL強大。但它們大部分都不是開源的,而是收費的。然後,MySQL不但開源,而且其功能性能在近幾年也大為躍升,與其它大型資料庫相比並遜色多少,而且MySQL也有自己的特色,其以速度聞名,尤其是這些年,更是日趨佳境,名振江湖。在國內,也已有大量的大型網站採用了MySQL資料庫。以鑒於此,對於普通的老百姓,如果要使用資料庫,MySQL但幾乎是不二之選,當然,我們也知道MySQL有兩個版本,有一個版本是收費的,MySQL資料庫的版本擁有者,其母公司為付費的MySQL提供強大的技術支持。但在全球MySQL母公司的員工其實也只有數百人而已,然而他們和MySQL的廣大客戶,一起撐起了MySQL的廣大天空。說白了,MySQL的流行,主要源於三大原因:第一,開源免費;第二,性能卓越,富有特色;第三,與PHP太搭了,PHP也是開源的。 由於技術本身的內在邏輯,MySQL資料庫與PHP、 Apache伺服器、Linux天然地搭。所以,學習PHP語言的人,往往也就學習MySQl資料庫。 網路後台技術的開源江湖之中,一半是海水,一半是火焰,那海水便是PHP,那火焰但是MySQL,二者是生死戀人。雖然JSP的身後是一個巨大的身影——JAVA,ASP、.Net的身後是另一個巨大的背景——微軟,但PHP也不懼它們,PHP和MySQL一同成長,其性能越來越卓越,目前甚至一些軍方的系統都是採用PHP構築,在Web方面,JSP傳統比PHP要優越得多,但市場的動態表現卻告訴人們,它們之間的差距,並沒有想像的那麼大,雖然當ASP近似老死,.Net又別出心裁、浮上水面、來勢洶洶,但PHP亦有與之三分天下的氣魄。 當面對後台,構築強大的功能的時候,說白了,功能所面對的,強大所實質體現的,就是巨大的市場和廣大的客戶,就是海量的數據,就是巨大並發數量。然後,再些洶湧的壓力之下,PHP和MySQ攜手同進,並肩戰鬥,扛住了壓力和挑戰,一路向前。雖然,PHP6將去除非PDO的操作,但二者的關係,仍將是同塹的戰友。 舉報 回復 收藏 6樓 樓主:復朴 時間:2013-05-03 20:23:00 (九)Dreamweaver 工欲善其事,必先利其器。當學了前台的技術(如超文本標識語言、前台腳本),又學了後台的技術(如後台腳本、資料庫)。是不是一切就完事了呢?當然沒有,我們還必須學會和熟練掌握操作這些語言或資料庫的幾款工具軟體。 對於後台的PHP編程,可用的編輯軟體很多,但對於前台,卻為數了了。其中最著名的,且是久負盛名不得不提的便是網頁三劍客的Dreamweaver(中文「織夢人」,簡稱DW),這是凡是學Web技術的人,都因當會使用的軟體。這是因為,DW不但操作前台性優異,而且其平台的集成性,讓其啟用(打開、關閉、使用)其它代碼編輯軟體非常方便,使整個操作一體化、渾然天成。 在DW中,無論是成生HTML代碼,還是CSS代碼,都只要動動滑鼠,其本就能完成。而且編寫後台代碼的軟體也可以添加進來,綁定使用。還值得一提的是,DW還集成了一些現成好用的前台JS代碼塊,讓一些對JS編程不太熟練的人,也能很好地在網頁中使用一些常用的JS代碼功能模塊。 (十)Ajax 當前台和後台的語言,都學了,編程工具軟體也會了的時候,事情似乎就要完結了。然而,事情正好相反,這一切都只是一個基礎。征途漫漫,一路艱辛,我們行至此處,其實只是剛剛看到巨人的身影。後面,我們才是真正目睹巨人之巨的時候。一切才剛剛開始。 首先,我們必須提及起的,就是Ajax技術。因為Ajax可以是說web1.0進代和web2.0時代相分,從web1.0 邁向2.0的最主要和重要的標誌之一。 Ajax是JS和XML一起構築的非同步通信技術。它讓客戶,在面對功能強大的網路的時候,真正開始有了親切、體貼而美好的面目。 Ajax全稱為Asynchronuous JavaScript and XML,中文譯作「非同步JavaScript和XML」。 這項技術主要脫胎於JS,或者說歸功於JS。它讓瀏覽網頁的客戶在上網互動的時候,有一種行雲流水般流暢的感覺。在Web2.0時候的今天,我們上網的時候,就像在和一個人聊天,我們聊天的那個對象,再也不會老是跟你說「你等我一下」,因為,這個傢伙過去,一直是這樣的,它和你聊天的時候,它一會對你說,「我要去上個廁所,你稍等」,一會又對你說,「我到裡邊去給你沏杯茶,你稍等「,一會又對你說,」你的問題太複雜,我得出去打個電話跟人諮詢一下,你稍等「。Ajax技術的出現,讓你等一下的情況,大量減少,因為這項技術,輕易實現了「頁面無刷新請求」,當你在網頁上提出請求時,在Ajax的幫助下,網頁一切都悄悄替你辦理好了,你再也不用老是在那兒焦急地乾等在那兒,而頁面一直在刷新過程之中,一片空白。 Ajax是web2.0的象徵和標誌之一,Ajax也是網頁遊戲時代得以開啟的基石,它讓遊戲在B/S布局下成為可能。C/S遊戲布局時代受到了前所未有的挑戰。 舉報 回復 收藏 7樓 樓主:復朴 時間:2013-05-03 20:24:00 (十一)XML和JSON Ajax非同步通信方式,告訴我們,除了JS之外,這個通信的本質,是伺服器後台的數據響應,伺服器響應之後,回傳的數據,多般是通過XML方式實現的。Asynchronuous JavaScript and XML (Ajax)中的除了非同步Asyn 的特性和JS技術之外,另一個關鍵詞,便是XML。我們在操作Ajax的過程中,往往首先會封裝一個xmlhttp對象,是的,它不是別的對象,它是xml+http所構成的對象。伺服器的響應數據形式中,在伺服器向瀏覽器的response里,xml是主要的信息形式之一。 XML是什麼,XML就是擴展的標記語言。 HTML是超文本標記語言,XHTML是擴展的HTML。而XML是擴展的標記語言。毫無疑問,三者都是標記語言。 但XML是HTML背後的那個真正的巨人。 對ML的擴展,是一片無限的天空,X可以等於一,X可以等於二,X幾乎可以等於你所能想像的標識語言中的一切。X=?,X當然可以等於HT啦,XML比之HTML,功能更為強大。 XML雖然在設計上不是用來取代HTML的,但XML的強大,讓可能性變得空前的無限大。這是因為如此,HTML的升級XHTML里,既有HTML的主體,也有X的特徵,說白了,XHTML就是向XML看齊、以XML為師的HTML,是HTML的升級,是HTML和XML的靠攏。XML是玉帝,XHTML是站在玉帝身邊的一員天神。 在非同步通信領域,XML是最主要的數據格式,但JSON對其發起了一定的挑戰,JSON是另一個輕易級的數據交換格式之一,JSON就是說JavaScript Object Notation,即「JavaScript對象符號」。JSON在數據交換方面,比之XML更為輕靈好用,但是,很顯然,JSON只能部分挑戰XML,這是因為其JSON「分界符」的選用或使用上,遠沒有XML嚴謹。 XML是網路通信世界中站在舞台背後的巨人。在前台的頁面中,我們往往只能窺其一袂。那就在很多的HTML網頁前台源碼中,我們都可以看到這樣一句<html xmlns=http://www.w3.org/1999/xhtml> ,是的這是超文本標識語言網頁的<html> 起始標籤,但裡邊有一個規指或解釋,那就是這個網頁使用的技術,與XHTML有關,為什麼呢?因為,xmlns就是"xml名稱空間"的意思,xmlns的前邊是指XML,xmlns的後邊ns,是namespace的縮寫,是指名稱空間,xmlns=http://www.w3.org/1999/xhtml ,顯然其本間為xmlns=...xhtml。 除了前台和後台通信,XML其實還常常用作配置文件。 XML是非常強大的,只是往往不為會所知,養在深閨人不識而已,但它有著大家閨秀之大與秀。 而JSON雖秀,卻大不起來。 (十二)jQuery 看起來簡單的網頁,做起來,有時卻非常地複雜。整個Web世界,是一潭很深的很深的水,它不僅水面十分地開闊。 學習Web技術的人,總覺著有學不完的東西。對於Web網路背後的技術世界,一腳踩進來,便讓人慾罷不能,這不僅是因為Web世界的炫爛多彩、十分精彩,能對人形成極大的吸引力,也是因為有關Web的技術知識體系十分地龐大,儘管你可能學了很多Web知識,但你的知識結構總是難成形成一種閉環的結構,從而形成似乎有效的知識體系,這讓人十分沮喪,逼得你不得不繼續學習。 當然,這種上賊船容易下賊船難的感覺,還來自於Web世界其技術與知識的日新月異,總是有很多新的技術在不斷產生,老的技術很快面臨淘汰,技術的快速革新,總是讓有把人逼到懸崖邊的感覺,沒有辦法,誰讓你登上了這個舞台呢,既然登台,就必須不斷接受新的挑戰。 從閉環和體系的角度講,你必須把系統鏈條上的主要知識和關鍵知識點都學到手 ;從升級更新角度講,你又不得不學習那些新的知識和掌握新的技術,以便不被淘汰,以便能趕上潮流、跟得上趟。尤其是後一點,雖說技術的產生,總帶著迎合人的惰性的意味,讓人便得更懶,新的技術的產生和使用推廣,總是為了方便我們的生活和工作,然而,為了一點方便,我們又不得不變得異常地勤奮,讓我們總是拼了命地、馬不停蹄的學習,學習更新東西、更卓越的技術、更上乘的本領,甚至換脫胎換骨,換腦筋,換思維方式,換設計思路,甚至一切歸零,所有的都有可能從頭再來,重新來過。 Web編程就是這麼回事,當前台後台兩頭的腳本編程技術都學了,我們卻很從會發現,裡邊存在著很大的問題。於是,我們試著去解決,因為我們必須要面對。 對於前台的技術,有一個問題,是所有的搞Web的人都要面對的問題,這個問題,就是瀏覽器異差性的兼容問題。這個差異性兼容問題,可以從經緯兩個方面來看。第一,就其經度來看,可以說這是一個瀏覽器的版本升級問題,同樣一個瀏覽器,版本也在不斷升級換代之中,這是時間的縱向帶來的問題。第二,就其緯度來看,可以說,讓人又喜又憂的是,在我們的這個世界,存在著好幾個品牌瀏覽器,它們從絕對數量來說,都覆蓋著相當大的市場,擁有為數眾多的用戶群體。更何況,我們的網路早已開始了從固定走向移動的征程。這兩個方面,說白了,都是兼容問題,無論使用hack技術,還是使用框架,我們必須努力去解決兼容問題,要不然,你弄出來的東西再好,也有好多人不方便看上一眼,或看上一眼,便沒了興趣,這當然讓人非常沮喪。 在解決Web編程適應不同瀏覽器和瀏覽器的不同版本的代際兼容問題上,擔當此重大歷史任務的,便是前台框架。當然,主要是指應用框架。框架很好地解決了瀏覽器的兼容問題,讓我們頭疼不已的問題,有所緩解,讓我們可以長長地舒一口氣。更何況,如果很一次任務、每一個工作、每一個項目,我們都得什麼都重頭再來,把代碼再寫一遍,多辦是費時費力,讓人心力交瘁的事情,因為工作量太大了,但何況這樣,我們還經常容易出錯,因此,使用框架技術,便不失為一個很好的出路。這也是internet免費精解和當今團隊合作精神的體現。 在JavaScript的世界裡,有很多優秀的框架值得學習和使用,著名的有Prototype、jQuery和 Extjs等,其中我學的是jQuery。 jQuery,同樣以輕靈易用著稱,那就是「寫更少的代碼,做更多的事情」,對於這個口號,jQuery堪負其名。 jQuery,以一個$符號包含一切,有著以「.」點號連寫的方便,使用jQuery,在世界上很諸多角落,人們共同努力著,貢獻著他們的優秀的成果,正因為如此,我們才有了那麼多炫爛多彩、方便好用的插件。jQuery的插件數量眾多,功能強大,尤其是UI界面插件,更是蔚為可觀。同樣,jQuery通過打包和插件的使用,讓我們的Ajax非同步通信技術,變得比過去要輕易容易上手得多。 JS框架 ,讓JS和我們的整個前台Web世界,擁有了新的高度,JS框架就是具有這樣高度的技術平台。 使用JS框架,使用JS編程變得較先前方便得多, 不過,也有兩個問題必須面對,一是你又得花時間學習大量的框架知識了;二是,框架也並非事事盡如人意,比如,在很多時候我們的網頁可能要比過去更臃腫一些,堆積著更多的代碼,從而影響下載loading的過程。 舉報 回復 收藏 8樓 樓主:復朴 時間:2013-05-03 20:25:00 (十三)Zend Framework Web編程領域的各種技術,總是讓人常常不禁感慨萬千。進這個門容易,要回頭就難了。說起前台腳本JS的框架,就不得不說說後台腳本的框架問題,而且,後台的框架有著更多的讓人說不完的話題。 前台主要是瀏覽器兼容問題,後台則主要是對資料庫的訪問操作的兼容問題。這兩個問題,本質其實都可以說是兼容問題。雖然,前面主要是由瀏覽器帶來的,而後台則主要是面對著資料庫的問題。為了解決資料庫訪問的兼容問題,後台腳本同樣是從框架的角度來解決的,不過框架的出現和它所擔當的歷史任務,遠沒有前台那麼簡單,而是要複雜得多,其中另一個非常重要的原因,那就是MVC的實現問題。這就是代碼的進化史,這是一個必然的進程。 在PHP的地盤上,如果JS前台腳本地盤上一樣,框架的江湖也是王候林立,遠看不到一統天下的氣象。不過,Zend Framework卻是其中最為優秀和富載盛譽的一個,而且也是最為複雜,學習曲線最為陡峭的一個。 本來,解決資料庫的訪問兼容性問題,對於PHP來說,通過PDO技術和使用採用PDO的類庫技術,我們就既能很好的訪問不同的資料庫,又能面向對象編我們的程序。不過,歷史總在進步之中,代碼也終究是要不斷進化的。 有類庫的出現,就必定會有框架的出現。框架就是一個龐大的、體系完備的類庫。Zend Framework正是如此。Zend Framework框架簡稱ZF,ZF框架的每一重體質或主要本質,就是它是一個類庫,不但如此,它應當說是一個極其龐大的類庫,你想乾的一切勾當,它幾乎都將為你提供方便,ZF是非常體貼你的,它早已為你想好了一切,方方面面,一應俱用地都考慮了進來,應為一個龐大的類庫,ZF其實就是一個工具箱,裡邊有著為你準備闖蕩江湖的十八般兵器和武林秘籍。不僅如此,框架也是設計思想的部分重用,ZF同樣如此,ZF不但是一個體系完備、系統龐大的類庫,而且自成結構,功能強大,非常地人性化地為你著想著,ZF的另一個突出表現,便是MVC的實現,它讓代碼和表現視圖得以分離,而且對模式、視圖兩頭都控制得很好。 無論作為類庫,還是作為MVC平台,本質上都是讓編程人員省心省力,減少了編程人員大量的工作量,讓煩瑣的編程過程變得容易多產生那麼一絲絲快樂和成功感。 框架就是框件,它不是單單的類庫和插件,從MVC就可以看出來,這個架子,很有那麼一種味道,因為,在大廈沒有建立落成之前,我們的設計和建設已經初具規模,而且效果圖也出來了。MVC是什麼,MVC就是M-模板(Model),V-視圖(View)和C-控制(Control)。從這三個字眼,我們首先看到的、感覺到的,是一種直通心靈的先進的設計理念,這才是MVC框架的靈魂和魅力所在。 PHP框架有很多,琳琅滿目,除了ZF之外,還有ThinkPHP、CakePHP、Yii、Seagull等等,它們既有國外的,也有國內貢獻的。不過,ZF無論如何都這其中最為驕傲的絞絞者,不過,如果要學習它,你得直面它龐大的知識體量,和入門的較高的難度系度。 舉報 回復 收藏 9樓 樓主:復朴 時間:2013-05-03 20:25:00 (十四)WordPress或者其它 人生也許很短,太陽從早晨出來,也許快要落山或早已落山。但我們要說的話,並沒有說完。 一方面,這是因為我們要走的路還沒有走完,另一方面,是我們需要面對和就要的誘域和陷阱還在等著我們。 也許,我們需要停下來,休息一會。但我們要走的路從根本上並沒有走完。 有關框架的話題也是如此,我們雖然在前面說起ZF還有其它一些PHP框架,但那些都是開發級別的PHP框架。使用開發框架,構建一個功能性網站,還有很多代碼編程工作要做,工作人員依然十分辛苦。 不過,對於框架來說,概念十分廣泛。與開發框架相對應的,還有另一個概念,我們不得不提及,那就是應用型框架。 對於很多做網站或做網路項目的人來說,應用框架的存在,是他們必須要感謝的一個對象。 這是因為,應用級別框架,幾乎就等同於網站本身,雖然這樣說是一種誤導,但我沒有別的意思,我所強調的,不過是指應用框架幾乎是傻瓜式的。就像用傻瓜照相機一樣,方便易用而簡單快捷,但這並不意味著應用框架做出來的東西功能簡單、界面粗糙而簡陋。事實並非如此,使用應用框架,不但幾乎可以幾分鐘建出一個網站,而且可以建立一個體量可觀、功能強大的網站,而且長得還不賴。 應用框架中,有一種就CMS,甚至可以說應用框架就是CMS,當然這樣說不夠嚴謹。 CMS就是「內容管理系統」,也有的說叫「文件管理系統」或「文件發布系統」,其實,CMS是比「文件管理系統」更為強大的一種存在,或者說,「文件管理系統」只是CMS中的一種。 應用框架或CMS,就像昆蟲世界裡的昆蟲母王,它們快速地、大量地繁衍著自己的後代。不過昆蟲的世界千奇百怪,就像其它的動物一樣,不同的動物,有著不同的地盤或傳統的棲身之所。 CMS也是如此,有的主要是做論壇性的網站,有的主要是做為新聞發布系統或文件管理系統,而有的就是典型的博客系統。 PHP的應用框架或CMS從來源上看,也存在國內或國外之別。 其中,Wordpress就是一款來自國外的博客CMS,它是全世界最負盛名的三款PHP框架之一。在使用PHP框架製作的博客中,Wordpress基本上佔據了半壁江山。所以,學習PHP的人,對於Wordpress應當有所了解。 對於國內的PHP的CMS,有很多,功能傾向性各異,其中著名的有DedeCMS、EmpireCMS和Discuz。Discuz就以論壇網站為主,DedeCMS以文件發布管理為主,帝國CMS當然也是名氣很大的,這些CMS都可以了解一下,因為,也許哪天你就離不開它們。 毫無疑問,以free免費為精神的PHP陣營,其框架也多般開源免費,這你大可放心,只要你願意和它們接觸,它們都是來者不拒的。 PHP的CMS既然如此歡迎來者,與人為善,那麼我們也應當前往探看,可別忘了,Wordpress當年就曾經讓多少人賺得盆滿缽滿。如此手到擒來的好東西,你為什麼要拒人於千里之外呢? 舉報 回復 收藏 10樓 樓主:復朴 時間:2013-05-03 20:25:00 (十五)Drupal 或許,有當PHP的話題,應當落下維幕了。 但我只能說,恐怕早了點。 對於PHP的應用級的框架,還有一款來自國外的,不得不提一下,那就是Drupal框架。 Drupal,一款來自國外的框架,對於中國的研究或需要使用PHP框架或CMS的人來說,或許面目沒有國內的CMS那麼友善,因為沒有可能那麼多的中文在裡邊。但這裡還是不得不提一下Drupal,因為它不但名氣很大,而且非常卓越,功能格外強大。 嚴格來說,應用框架並非就是CMS。Drupal就是這樣一樣東西,它既是CMS,也是真正意義上的框架。 正因為如此,Drupal不但可以讓你快速建站,建立滿足你慾望的功能眾多的網站,而且俱有發開的靈活性,如果你可以,你便可以使用Drupal讓你的網站足夠強大。 不過Drupal的學習難度係數也不低哦,一定要有心理準備才好,不過,我充分相信你。
推薦閱讀:
※Python自編寫help文檔以及文檔測試
※Leetcodes Solutions 9 Palindrome Number
※如何為列表裡的字典(元組)進行排序
※那些精貴的「機器視覺」學習資料總結
※Cant create handler inside thread that has not called Looper.prepare()