| christmaszzp |
2006-04-14 23:46 |
ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,利用它可以產(chǎn)生和執(zhí)行動(dòng)態(tài)的、互動(dòng)的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VBScript(Java script)作為自己的開(kāi)發(fā)語(yǔ)言。 PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)產(chǎn)生頁(yè)面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)(http: //www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。 JSP是Sun公司推出的新一代網(wǎng)站開(kāi)發(fā)語(yǔ)言,Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和Java Applet之外,又有新的碩果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。 三者都提供在 HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。在ASP 、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的 HTML頁(yè)面只依賴于Web服務(wù)器,而ASP 、PHP、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP 、PHP、JSP三者都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。 技術(shù)特點(diǎn): ASP: 1. 使用VBScript 、 JScript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。 2. 無(wú)須compile編譯,容易編寫(xiě),可在服務(wù)器端直接執(zhí)行。 3. 使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。 4. 與瀏覽器無(wú)關(guān)(Browser Independence), 客戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)容。Active ServerPages 所使用的腳本語(yǔ)言(VBScript 、 Jscript)均在WEB服務(wù)器端執(zhí)行,客戶端的瀏覽器不需要能夠執(zhí)行這些腳本語(yǔ)言。 5.Active Server Pages能與任何ActiveX scripting語(yǔ)言兼容。除了可使用VB Script或JScript語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其它腳本語(yǔ)言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對(duì)象。 6. 可使用服務(wù)器端的腳本來(lái)產(chǎn)生客戶端的腳本。 7. ActiveX Server Components(ActiveX 服務(wù)器組件 )具有無(wú)限可擴(kuò)充性??梢允褂肰isual Basic 、Java 、Visual C++ 、COBOL等程序設(shè)計(jì)語(yǔ)言來(lái)編寫(xiě)你所需要的ActiveX Server Component 。 PHP: 1 數(shù)據(jù)庫(kù)連接 PHP可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的群組合。你還可以自己編寫(xiě)外圍的函數(shù)去間接存取數(shù)據(jù)庫(kù)。通過(guò)這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松地修改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫(kù)。但PHP提供的數(shù)據(jù)庫(kù)接口支持彼此不統(tǒng)一,比如對(duì)Oracle, MySQL,Sybase的接口,彼此都不一樣。這也是PHP的一個(gè)弱點(diǎn)。 JSP: 1.將內(nèi)容的產(chǎn)生和顯示進(jìn)行分離 使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)產(chǎn)生頁(yè)面上的動(dòng)態(tài)內(nèi)容。產(chǎn)生內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans群組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端執(zhí)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其它人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的產(chǎn)生。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí),產(chǎn)生所請(qǐng)求的內(nèi)容(例如,通過(guò)存取JavaBeans群組件,使用JDBC技術(shù)存取數(shù)據(jù)庫(kù)),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。 2.強(qiáng)調(diào)可重用的群組件 絕大多數(shù)JSP頁(yè)面依賴于可重用且跨平臺(tái)的組件(如:JavaBeans或者Enterprise JavaBeans)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團(tuán)體所使用?;诮M件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種群組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。 3.采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā) Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的程序設(shè)計(jì)人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容產(chǎn)生所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠存取和實(shí)例化JavaBeans組件,設(shè)定或者檢索群組件屬性,下載Applet,以及執(zhí)行用其它方法更難于編碼和耗時(shí)的功能。通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其它人員可以為常用功能建立自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。 JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2EE的一個(gè)成員,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java程序設(shè)計(jì)語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java程序設(shè)計(jì)語(yǔ)言“一次編寫(xiě),各處執(zhí)行”的特點(diǎn)。隨著越來(lái)越多的供貨商將JSP支持加入到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,修改工具或服務(wù)器并不影響目前的應(yīng)用。 應(yīng)用范圍: ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng),只能執(zhí)行于微軟的服務(wù)器產(chǎn)品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的組件來(lái)支持ASP,但是ASP本身的功能有限,必須通過(guò)ASP+COM的群組合來(lái)擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來(lái)非常困難。 結(jié)論:ASP簡(jiǎn)單而易于維護(hù),是小型網(wǎng)站應(yīng)用的最佳選擇,通過(guò)DCOM和MTS技術(shù),ASP甚至還可以完成中等規(guī)模的企業(yè)應(yīng)用。 PHP可在Windows,Unix,Linux的Web服務(wù)器上正常執(zhí)行,還支持IIS,Apache等一般的Web服務(wù)器,用戶更換平臺(tái)時(shí),無(wú)需變換PHP代碼,可即拿即用。 結(jié)論:PHP因?yàn)榻Y(jié)構(gòu)上的缺陷,使的其只適合編寫(xiě)小型的網(wǎng)站系統(tǒng)。 JSP同PHP類似,幾乎可以執(zhí)行于所有平臺(tái)。如Win NT,Linux,Unix。在NT下IIS通過(guò)一個(gè)外加服務(wù)器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的執(zhí)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。 結(jié)論:對(duì)于腳本語(yǔ)言來(lái)講,JSP還是擁有相當(dāng)大的優(yōu)勢(shì)的,雖然其配置和部署相對(duì)其他腳本語(yǔ)言來(lái)說(shuō)要復(fù)雜一些,但對(duì)于跨平臺(tái)的中大型網(wǎng)站系統(tǒng)來(lái)講,基于JAVA技術(shù)的JSP(結(jié)合JavaBean和EJB)幾乎成為唯一的選擇。 性能比較: 有人做過(guò)試驗(yàn),對(duì)這三種語(yǔ)言分別做回圈性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)。 數(shù)據(jù)庫(kù)測(cè)試中,三者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。 前景分析: 目前在國(guó)內(nèi)PHP與ASP應(yīng)用最為廣泛。而JSP由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。但在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類的網(wǎng)站,多采用JSP。采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國(guó)人(Chinaren)等,但由于PHP本身存在的一些缺點(diǎn),使得它不適合應(yīng)用于大型電子商務(wù)站點(diǎn),而更適合一些小型的商業(yè)站點(diǎn)。首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對(duì)于大負(fù)荷站點(diǎn),解決方法只有一個(gè):分布計(jì)算。數(shù)據(jù)庫(kù)、應(yīng)用邏輯層、表示邏輯層彼此分開(kāi),而且同層也可以根據(jù)流量分開(kāi),群組成二維數(shù)組。而PHP則缺乏這種支持。還有上面提到過(guò)的一點(diǎn),PHP提供的數(shù)據(jù)庫(kù)接口支持不統(tǒng)一,這就使得它不適合運(yùn)用在電子商務(wù)中。 ASP和JSP則沒(méi)有以上缺陷,ASP可以通過(guò)Microsoft Windowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過(guò)DCOM和Transcation Server獲得結(jié)構(gòu)支持;JSP可以通過(guò)SUN Java的Java Class和EJB獲得規(guī)模支持,通過(guò)EJB/CORBA以及眾多廠商的Application Server獲得結(jié)構(gòu)支持。三者中,JSP應(yīng)該是未來(lái)發(fā)展的趨勢(shì)。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。它們都是通過(guò)CGI來(lái)提供支持的。但去年10月后它推出了Enfinity,一個(gè)采用JSP/Servlet的電子商務(wù)Application Server,而且聲言不再開(kāi)發(fā)傳統(tǒng)軟件。 Perl
Perl(Practical Extraction and Report Language)是一種很古老的腳本語(yǔ)言。最初的Web應(yīng)用大多是用Perl編寫(xiě)的,Perl很像C語(yǔ)言,使用非常靈活,對(duì)于文件操作和處理具有和C語(yǔ)言一樣的方便快捷。
也正是因?yàn)镻erl的靈活性和“過(guò)度”的冗余語(yǔ)法,也因此導(dǎo)致許多Perl程序的代碼令人難以閱讀和維護(hù),因此使用的人在逐漸減少,并且目前有被Python替代的可能。
另外Perl對(duì)于CPU的消耗似乎較高,效率似乎有一些不足。
Perl開(kāi)發(fā)的成功案例:
Movable Type — 世界上使用最多的Blog系統(tǒng)之一,功能強(qiáng)大的足以和一個(gè)CMS系統(tǒng)相比擬。
Awstats — 非常經(jīng)典的日志系統(tǒng),速度極快,功能也非常強(qiáng)大。
結(jié)論:Perl在部分應(yīng)用中能發(fā)揮很大優(yōu)勢(shì),但其維護(hù)性差使得其普及變得很困難。
.NET
.NET的優(yōu)勢(shì):企業(yè)信息系統(tǒng)部門可自行編程 .NET是Microsoft貼在現(xiàn)有產(chǎn)品和未來(lái)產(chǎn)品上的一個(gè)新式行銷標(biāo)簽。在Microsoft服務(wù)器端產(chǎn)品中,如基于Windows DNA 2000技術(shù)的izTalk Server 2000和Application Center 2000,.NET標(biāo)簽將隨處可見(jiàn)。然 而,.NET最令人感興趣的特色卻在于它的開(kāi)發(fā)平臺(tái)、語(yǔ)言和協(xié)議。
通過(guò).NET,Microsoft為我們提供了一種全新的開(kāi)發(fā)平臺(tái),這個(gè)平臺(tái)將推動(dòng)以新體系為基礎(chǔ)的協(xié)同Web應(yīng)用開(kāi)發(fā)。根據(jù)Microsoft的說(shuō)法,.NET至少將成為一種“對(duì)Web編程”的方法。當(dāng)前,第一版Visual Studio .NET已經(jīng)出現(xiàn),由此出發(fā),我們或許可以比較精確地勾畫(huà)出.NET平臺(tái)最終的全貌。 :.NET開(kāi)發(fā)工具--Visual Studo.NET的易用性使得它在Java很難實(shí)現(xiàn)的“用戶企業(yè)(信息系統(tǒng)部門)也可編程的系統(tǒng)”上超人一頭。筆者認(rèn)為可能還存在其他這樣的領(lǐng)域。當(dāng)然,盡管.NET的標(biāo)準(zhǔn)語(yǔ)言VB.NET和C#都與Java一樣復(fù)雜,但是Visual Studo.NET卻很好地消除了這種復(fù)雜性。 比如,日本蘭碧兒(NOEVIR)只靠自己的信息系統(tǒng)部門就完成了Web代理店支援系統(tǒng)的從企劃到編程的全部工作。日本一家系統(tǒng)集成商曾表示,此前導(dǎo)入Java系統(tǒng)的用戶企業(yè)中“選用.NET的信息系統(tǒng)部門就有望自行開(kāi)發(fā)或?qū)ο到y(tǒng)進(jìn)行修改”。 筆者認(rèn)為,由于Java本身較為復(fù)雜,且不易學(xué)習(xí)掌握,因此“用戶企業(yè)只負(fù)責(zé)企劃,而將編程工作完全委托給集成商的現(xiàn)象非常普遍”。 在COBOL和VB(客戶商/服務(wù)器)的全盛時(shí)期,信息系統(tǒng)部門自己編程、對(duì)系統(tǒng)進(jìn)行部分修改和功能追加是很正常的事情。如果連細(xì)小的系統(tǒng)修改都要外包,那么系統(tǒng)的維護(hù)成本自然會(huì)很高,因此就將失去靈活性。甚至于還有可能削弱信息系統(tǒng)部門的業(yè)務(wù)能力。說(shuō)到企劃,聽(tīng)起來(lái)好聽(tīng),但如果連大體的情況也不了解,恐怕與開(kāi)發(fā)商交涉都很困難。這也許就是Java的一個(gè)“弊端”吧。 此外,“成本比UNIX低”以及“可以充分利用Windows技術(shù)資源”等原因也在加速.NET Framework的普及。作為客戶端/服務(wù)器系統(tǒng)的開(kāi)發(fā)環(huán)境,VB的后續(xù)語(yǔ)言--.NET中的“Windows Form”最具競(jìng)爭(zhēng)力。越來(lái)越多的系統(tǒng)集成商開(kāi)始選擇這一工具構(gòu)筑系統(tǒng)。 .NET的劣勢(shì):應(yīng)用成果少、開(kāi)放性差 反過(guò)來(lái)說(shuō),.NET的劣勢(shì)則在于在大型系統(tǒng)中的應(yīng)用成果少、缺乏“開(kāi)放性”。 對(duì)于應(yīng)用成果來(lái)說(shuō),今后其數(shù)量將會(huì)不斷增加。據(jù)悉,日本Kabu.com證券將在2003年度內(nèi)利用.NET Framework全面重新構(gòu)筑該公司目前利用ASP構(gòu)筑的系統(tǒng)。 在“開(kāi)放性”方面又將會(huì)如何呢?Java普及的主要因素很多,但筆者認(rèn)為其中最關(guān)鍵的在于“開(kāi)放性”。由于可各種OS上運(yùn)行,而且很多開(kāi)發(fā)商還提供了Web應(yīng)用服務(wù)器和開(kāi)發(fā)工具,因此用戶可以隨意選擇。而開(kāi)發(fā)商則通過(guò)在功能和性能方面相互競(jìng)爭(zhēng)來(lái)不斷提高產(chǎn)品水平。 而.NET Framework怎么樣呢?只要想應(yīng)用于業(yè)務(wù)系統(tǒng)中,其OS實(shí)際上則只能限于Windows。盡管微軟已經(jīng)提供了FreeBSD版.NET Framework,但其目的僅限于學(xué)術(shù)研究。 今后人們所能期待的是Mono Project。Mono Project是指完全獨(dú)立于微軟、正在開(kāi)發(fā)開(kāi)放源碼版.NET Framework的計(jì)劃。主導(dǎo)該計(jì)劃的是一家名為Ximian的Linux企業(yè),這家公司成功地開(kāi)發(fā)了Linux標(biāo)準(zhǔn)桌面環(huán)境GNOME,目前已受到業(yè)界的廣泛關(guān)注。 2003年1月該計(jì)劃還發(fā)布了運(yùn)行Web應(yīng)用程序ASP.NET的Web服務(wù)軟件XSP。盡管很多功能仍在開(kāi)發(fā)之中,但目前開(kāi)發(fā)工作進(jìn)展順利。目前正面向Linux和Windows進(jìn)行開(kāi)發(fā)。據(jù)Mono Project稱,由于該軟件依賴于Linux的部分不多,因此能夠輕松地向其他UNIX OS移植。 能否形成像Mono一樣的開(kāi)放環(huán)境將是.NET普及的關(guān)鍵所在。微軟目前已經(jīng)向業(yè)界標(biāo)準(zhǔn)化機(jī)構(gòu)ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))提交了.NET標(biāo)準(zhǔn),此舉表明微軟將采用開(kāi)放標(biāo)準(zhǔn)。但目前尚不清楚此舉只是單純的一種姿態(tài),還是真的要開(kāi)放.NET。這就要看微軟今后是否能夠繼續(xù)公開(kāi)足夠的相關(guān)標(biāo)準(zhǔn)和信息了。 可以說(shuō),無(wú)論是在技術(shù)上還是在戰(zhàn)略上,Microsoft都對(duì).NET寄予了厚望。當(dāng)前的DNA 2000技術(shù)并未包含新的.NET平臺(tái);相反,.NET將是一種全新的技術(shù),有望揉合許多根本性的、深層次的創(chuàng)意。
作為一種全新的平臺(tái)和技術(shù),.NET帶來(lái)了許多新的產(chǎn)品,但這些產(chǎn)品和現(xiàn)有技術(shù)的兼容性未能獲得百分之百的保證。.NET支持27種編程語(yǔ)言,它們將共享一組提供基本服務(wù)的類。.NET應(yīng)用不再直接在裸機(jī)上運(yùn)行,由于看好一種運(yùn)行在虛擬機(jī)CLR(Common Language Runtime)上的稱為MSIL的中間語(yǔ)言,Microsoft放棄了Intel x86代碼。 .net就遠(yuǎn)來(lái)說(shuō)可能更有前途,畢竟是microsoft統(tǒng)治時(shí)期 就JAVA來(lái)說(shuō),最近比較熱,J2EE等都是市場(chǎng)比較搶手的。
XML Extensible Markup Language,可擴(kuò)展標(biāo)識(shí)語(yǔ)言。它是一種由W3C發(fā)展,可由網(wǎng)頁(yè)設(shè)計(jì)者自行定義標(biāo)簽(TAG)HTML延伸規(guī)格,主要目的是讓使用者能夠設(shè)計(jì)結(jié)構(gòu)性資料及文件格式,并對(duì)資料如何存儲(chǔ),接受與應(yīng)用提供標(biāo)準(zhǔn)描述方法。簡(jiǎn)單地說(shuō),XML就是一種用來(lái)在互聯(lián)網(wǎng)上創(chuàng)建電子文檔的標(biāo)準(zhǔn)。
CGI Common Gateway Interface,公共網(wǎng)關(guān)接口。網(wǎng)頁(yè)服務(wù)器與應(yīng)用程序之間傳遞資料的接口規(guī)范,CGI程序客用冷和程序語(yǔ)言產(chǎn)生,通常為Perl,使用CGI程序可以讀取使用者的輸入并產(chǎn)生動(dòng)態(tài)的HTML網(wǎng)頁(yè)。CGI每次響應(yīng)一個(gè)請(qǐng)求都會(huì)建立一個(gè)進(jìn)程(Process),對(duì)于服務(wù)器來(lái)說(shuō)是一個(gè)不校的負(fù)擔(dān)哦。不過(guò),現(xiàn)在的Fast-cgi以及對(duì)此有很大的改善,所以就不用怕使用CGI編的論壇會(huì)占有你過(guò)多的系統(tǒng)資源了. DELPHI Delphi是著名的Borland(現(xiàn)在已和Inprise合并)公司開(kāi)發(fā)的可視化軟件開(kāi)發(fā)工具。“真正的程序員用c,聰明的程序員用Delphi”,這句話是對(duì)Delphi最經(jīng)典、最實(shí)在的描述。Delphi被稱為第四代編程語(yǔ)言,它具有簡(jiǎn)單、高效、功能強(qiáng)大的特點(diǎn)。和VC相比,Delphi更簡(jiǎn)單、更易于掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強(qiáng)大、更實(shí)用??梢哉f(shuō)Delphi同時(shí)兼?zhèn)淞薞C功能強(qiáng)大和VB簡(jiǎn)單易學(xué)的特點(diǎn)。它一直是程序員至愛(ài)的編程工具。 Delphi具有以下的特性:基于窗體和面向?qū)ο蟮姆椒ǎ咚俚木幾g器,強(qiáng)大的數(shù)據(jù)庫(kù)支持,與Windows編程緊密結(jié)合,強(qiáng)大而成熟的組件技術(shù)。但最重要的還是Object Pascal語(yǔ)言,它才是一切的根本。 Object Pascal語(yǔ)言是在Pascal語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,簡(jiǎn)單易學(xué)。 Delphi提供了各種開(kāi)發(fā)工具,包括集成環(huán)境、圖像編輯(Image Editor),以及各種開(kāi)發(fā)數(shù)據(jù)庫(kù)的應(yīng)用程序,如DesktopDataBase Expert等。除此之外,還允許用戶掛接其它的應(yīng)用程序開(kāi)發(fā)工具,如Borland公司的資源編輯器(Resourse Workshop)。 在Delphi眾多的優(yōu)勢(shì)當(dāng)中,它在數(shù)據(jù)庫(kù)方面的特長(zhǎng)顯得尤為突出:適應(yīng)于多種數(shù)據(jù)庫(kù)結(jié)構(gòu),從客戶機(jī)/服務(wù)機(jī)模式到多層數(shù)據(jù)結(jié)構(gòu)模式;高效率的數(shù)據(jù)庫(kù)管理系統(tǒng)和新一代更先進(jìn)的數(shù)據(jù)庫(kù)引擎;最新的數(shù)據(jù)分析手段和提供大量的企業(yè)組件。 Delphi發(fā)展至今,從Delphi1、Delphi2到現(xiàn)在的Delphi5,不斷添加和改進(jìn)各種特性,功能越來(lái)越強(qiáng)大。Delphi5添加了對(duì)IDE(集成開(kāi)發(fā)環(huán)境)的很多改進(jìn)新特性,擴(kuò)展了數(shù)據(jù)庫(kù)支持(ADO和InterBase數(shù)據(jù)庫(kù)),帶有Internet支持的MIDAS改進(jìn)版,TeamSouse版本控制工具,轉(zhuǎn)換功能,框架概念以及很多的新組件與新特性。 JavaScript+Html JavaScript 是一種描述語(yǔ)言,此一語(yǔ)言可以被箝入 HTML 的文件之中。 透過(guò) JavaScript 可以做到回應(yīng)使用者的需求事件 (如: form 的輸入) 而不用任何的網(wǎng)路 來(lái)回傳輸資料,所以當(dāng)一位使用者輸入一項(xiàng)資料時(shí),它不用經(jīng)過(guò)傳給伺服端 (server) 處理,再傳回來(lái)的過(guò)程,而直接可以被客戶端 (client) 的應(yīng)用程式所處理。你也可 以想像成有一個(gè)可執(zhí)行程式在你的客端上執(zhí)行一樣!目前已有一些寫(xiě)好的程式在 Internet 上你可以連過(guò)去看看,以下有一些計(jì)算器的例子,在 Nescape 上。
JavaScript 和 Java 很類似,但到底并不一樣! Java 是一種比 JavaScript 更復(fù)雜 許多的程式語(yǔ)言,而 JavaScript 則是相當(dāng)容易了解的語(yǔ)言。JavaScript 創(chuàng)作者 可以不那么注重程式技巧,所以許多 Java 的特性在 Java Script 中并不支援 Javascript的語(yǔ)法基本上與Java一致,但是由于Javascript是一個(gè)弱類型的腳本語(yǔ)言,在程序編寫(xiě)的過(guò)程中會(huì)有一些不同。同時(shí)由于Javascript是基于對(duì)象的語(yǔ)言,注意不是面向?qū)ο蟮恼Z(yǔ)言,所以它在對(duì)對(duì)象的支持上有一定缺陷,大家所熟悉的諸如對(duì)象繼承,多態(tài)等面向?qū)ο笳Z(yǔ)言所具有的基本特性在Javascript中只能通過(guò)一些變通手段來(lái)實(shí)現(xiàn)(通常比較復(fù)雜)。然而,弱類型語(yǔ)言也有其優(yōu)點(diǎn),那就是簡(jiǎn)單性,Javascript中類型轉(zhuǎn)化是非常方便的(弱類型語(yǔ)言在代碼中基本上表現(xiàn)為無(wú)類型),一個(gè)String通過(guò)一個(gè)簡(jiǎn)單的加減操作就可以轉(zhuǎn)化為Int(相當(dāng)于調(diào)用了Integer.ParseInt(String)),而且不會(huì)拋異常。Javascript作為一種解釋性語(yǔ)言,還能使用在編譯性語(yǔ)言C/C++、JAVA難以支持的eval語(yǔ)句。由于運(yùn)行在沙箱中,Javascript運(yùn)行時(shí)有很多的安全性限制。它不允許訪問(wèn)本地的硬盤,并不能將數(shù)據(jù)存入到服務(wù)器上,不允許對(duì)網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過(guò)瀏覽器實(shí)現(xiàn)信息瀏覽或動(dòng)態(tài)交互,從而有效地防止數(shù)據(jù)的丟失。
Ajax是Asynchronous JavaScript and XML的簡(jiǎn)稱,它表現(xiàn)出一個(gè)Web開(kāi)發(fā)上的根本轉(zhuǎn)變,那就是,Web上可能做些什么. Ajax的定義 Ajax不是一個(gè)技術(shù),它實(shí)際上是幾種技術(shù),每種技術(shù)都有其獨(dú)特這處,合在一起就成了一個(gè)功能強(qiáng)大的新技術(shù)。Ajax包括: XHTML和CSS 使用文檔對(duì)象模型(Document Object Model)作動(dòng)態(tài)顯示和交互 使用XML和XSLT做數(shù)據(jù)交互和操作 使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)接收 使用JavaScript將它們綁定在一起 Ajax理念的出現(xiàn),揭開(kāi)了無(wú)刷新更新頁(yè)面時(shí)代的序幕,并有代替?zhèn)鹘y(tǒng)web開(kāi)發(fā)中采用form(表單)遞交方式更新web頁(yè)面的趨勢(shì),可以算是一個(gè)里程碑。但Ajax都不是適用于所有地方的,它的適用范圍是由它的特性所決定的。它的特性主要有: 1、按需取數(shù)據(jù)。頁(yè)面不讀取無(wú)用的冗余數(shù)據(jù),而是在用戶操作過(guò)程中的某項(xiàng)交互需要某部分?jǐn)?shù)據(jù)時(shí)才會(huì)向服務(wù)器發(fā)送請(qǐng)求。 2、無(wú)刷新更新頁(yè)面??蛻舳死肵MLHTTP發(fā)送請(qǐng)求得到服務(wù)端應(yīng)答數(shù)據(jù),在不重新載入整個(gè)頁(yè)面的情況下用JavaScript操作DOM最終更新頁(yè)面。 3、預(yù)讀功能也可以通過(guò)Ajax實(shí)現(xiàn),但并不是Ajax的優(yōu)勢(shì)所在,它的主要優(yōu)勢(shì)還是在交互方面。
Ajax帶來(lái)的正面效果: 1、減輕服務(wù)器的負(fù)擔(dān)。因?yàn)锳jax的根本理念是“按需取數(shù)據(jù)”,所以最大可能在減少了冗余請(qǐng)求和響影對(duì)服務(wù)器造成的負(fù)擔(dān)。 2、減少用戶實(shí)際和心理等待時(shí)間。 傳統(tǒng)的web應(yīng)用模型工作起來(lái)就象這樣:大部分界面上的用戶動(dòng)作觸發(fā)一個(gè)連接到Web服務(wù)器的HTTP請(qǐng)求。服務(wù)器完成一些處理---接收數(shù)據(jù),處理計(jì)算,再訪問(wèn)其它的數(shù)據(jù)庫(kù)系統(tǒng),最后返回一個(gè)HTML頁(yè)面到客戶端。這是一個(gè)老套的模式,自采用超文本作為web使用以來(lái),一直都這樣用, 但看過(guò)《The Elements of User Experience》的讀者一定知道,是什么限制了Web界面沒(méi)有桌面軟件那么好用。 這種舊的途徑讓我們認(rèn)識(shí)到了許多技術(shù),但它不會(huì)產(chǎn)生很好的用戶體驗(yàn)。當(dāng)服務(wù)器正在處理自己的事情的時(shí)候,用戶在做什么?沒(méi)錯(cuò),等待。每一個(gè)動(dòng)作,用戶都要等待。
很明顯,如果我們按桌面程序的思維設(shè)計(jì)Web應(yīng)用,我們不愿意讓用戶總是等待。當(dāng)界面加載后,為什么還要讓用戶每次再花一半的時(shí)間從服務(wù)取數(shù)據(jù)?實(shí)際上,為什么老是讓用戶看到程序去服務(wù)器取數(shù)據(jù)呢?
Ajax如何不同凡響 通過(guò)在用戶和服務(wù)器之間引入一個(gè)Ajax引擎,可以消除Web的開(kāi)始-停止-開(kāi)始-停止這樣的交互過(guò)程. 它就像增加了一層機(jī)制到程序中,使它響應(yīng)更靈敏,而它的確做到了這一點(diǎn)。
不像加載一個(gè)頁(yè)面一樣,在會(huì)話的開(kāi)始,瀏覽器加載了一個(gè)Ajax引擎---采用JavaScript編寫(xiě)并且通常在一個(gè)隱藏frame中。這個(gè)引擎負(fù)責(zé)繪制用戶界面以及與服務(wù)器端通訊。Ajax引擎允許用異步的方式實(shí)現(xiàn)用戶與程序的交互--不用等待服務(wù)器的通訊。所以用戶再不不用打開(kāi)一個(gè)空白窗口,看到等待光標(biāo)不斷的轉(zhuǎn),等待服務(wù)器完成后再響應(yīng)。 通常要產(chǎn)生一個(gè)HTTP請(qǐng)求的用戶動(dòng)作現(xiàn)在通過(guò)JavaScript調(diào)用Ajax引擎來(lái)代替. 任何用戶動(dòng)作的響應(yīng)不再要求直接傳到服務(wù)器---例如簡(jiǎn)單的數(shù)據(jù)校驗(yàn),內(nèi)存中的數(shù)據(jù)編輯,甚至一些頁(yè)面導(dǎo)航---引擎自己就可以處理它. 如果引擎需要從服務(wù)器取數(shù)據(jù)來(lái)響應(yīng)用戶動(dòng)作---假設(shè)它提交需要處理的數(shù)據(jù),載入另外的界面代碼,或者接收新的數(shù)據(jù)---引擎讓這些工作異步進(jìn)行,通常使用XML, 不用再擔(dān)誤用戶界面的交互。
誰(shuí)在使用Ajax 在采用Ajax的開(kāi)發(fā)上面,Google做了巨大的投資。去年Google所有主要的產(chǎn)品都用了這項(xiàng)技術(shù)---Orkut, Gmail, 以及最近的beta版的Google Groups, Google Suggest和Google Maps---它們?nèi)茿jax的應(yīng)用。(要想了解更多這些Ajax實(shí)際的技術(shù)細(xì)節(jié),請(qǐng)看它們的分析文章:Gmail, Google Suggest, Google Maps). 其它的像:Flickr, 采用許多人們喜歡的Ajax特性, 還有Amazon的A9.com搜索引擎也采用類似的技術(shù)。
這些項(xiàng)目證明了Ajax不只是學(xué)術(shù)上的,也有許多真實(shí)世界成功應(yīng)用。這不是什么實(shí)驗(yàn)室里的技術(shù)。Ajax的應(yīng)用可大可小,從非常簡(jiǎn)單的,像單一功能的Google Suggest到非常復(fù)雜的Google Maps。
[christmaszzp] 清清嗓子唱起歌來(lái):東方紅,太陽(yáng)升

|
|
|