【正文】
件了。(另一方面這樣也很安全,因為它不會在你的本地機(jī)上執(zhí)行可能包含bug或病毒程序。HTML包括了基本的數(shù)據(jù)采集功能:輸入框,復(fù)選框,單選按鈕,列表,下拉式列表,以及只能用于清除表單或是把表單數(shù)據(jù)“提交”給服務(wù)器的按扭。很多大型網(wǎng)站都是完全建立在CGI之上的,而且實際上你能用CGI來做幾乎任何事情。這樣做不但慢,而且蠢。插件在客戶端編程方面最重要的步驟之一就是開發(fā)插件。腳本語言插件導(dǎo)致了腳本語言的泛濫。最常被提及的瀏覽器用的腳本語言有JavaScript(跟Java沒什么關(guān)系;它取這個名字只是想搭Java的順風(fēng)車),VBScript(看上去像Visual BASIC),以及Tcl/Tk,這是一種很流行的跨平臺的創(chuàng)建GUI的語言。(處理這些Web的問題就已經(jīng)夠你忙的了。然而不幸的是這兩個瀏覽器所支持的JavaScript在風(fēng)格上有很大的不同(Mozilla支持的ECMAScript或許有一天能成為普遍支持的標(biāo)準(zhǔn)。總之,由于你沒法用腳本語言做非常復(fù)雜的東西,所以它的難度不會太大?!保ú寮恍柘螺d一次。客戶端編程所遇到的問題同通用編程的沒有什么本質(zhì)性的區(qū)別。)最初設(shè)計Web的人沒能預(yù)料到帶寬會消耗在這類應(yīng)用程序中。(如果按完Web頁面上的按扭之后,你仔細(xì)觀察瀏覽器頂部的地址條的話,有時你就會在那些不知所云的東西中看到“cgibin”。這被稱為客戶端編程。然而瀏覽器還是太原始了一些,而且也很快被加在它身上的任務(wù)給拖垮了。實際上還差一點,因為所有的服務(wù)器和客戶機(jī)是共存在同一個網(wǎng)絡(luò)上的。(中間件也被用來增進(jìn)系統(tǒng)的可維護(hù)性。但是,當(dāng)你試圖用孤零零的一個服務(wù)器來為很多客戶服務(wù)的時候,問題就來了。但是這么做,先得理解客戶/服務(wù)器系統(tǒng)。 it’s named that way just to grab some of Java’s marketing momentum), VBScript (which looks like Visual BASIC), and Tcl/Tk, which es from the popular crossplatform GUIbuilding language. There are others out there, and no doubt more in development.JavaScript is probably the most monly supported. It es built into both Netscape Navigator and the Microsoft Internet Explorer (IE). Unfortunately, the flavor of JavaScript on the two browsers can vary widely (the Mozilla browser, freely downloadable from , supports the ECMAScript standard, which may one day bee universally supported). In addition, there are probably more JavaScript books available than there are for the other browser languages, and some tools automatically create pages using JavaScript. However, if you’re already fluent in Visual BASIC or Tcl/Tk, you’ll be more productive using those scripting languages rather than learning a new one. (You’ll have your hands full dealing with the Web issues already.) the server starts a CGI program that discovers an error, formats an HTML page informing you of the error, and then sends the page back to you。盡管在解決傳統(tǒng)的,孤立的編程問題方面,Java也是很能干的,但是真正讓它脫穎而出的,是因為它能解決在萬維網(wǎng)上編程的問題。存儲在遠(yuǎn)程機(jī)器上的軟件會同這個服務(wù)器通訊,提取信息,處理信息,并且在過程機(jī)器上顯示結(jié)果。而且如果要支持多種機(jī)器或操作系統(tǒng)的話,事情會更麻煩。這種項目開發(fā)起來難,用戶用起來也不方便,它們必須適應(yīng)新的界面。他們需要完整的客戶/服務(wù)器功能,所以客戶也能向服務(wù)器發(fā)送信息了,比如查詢服務(wù)器端的數(shù)據(jù)庫,向服務(wù)器添加新的信息,或者下單(這項任務(wù)所要求的安全性比系統(tǒng)原先能提供的要高得多)。)為了解決這個問題,人們用了很多辦法。提交上來的數(shù)據(jù)會交給Web服務(wù)器上的通用網(wǎng)關(guān)接口程序。但是建立在CGI之上的網(wǎng)站會很快變得過于復(fù)雜而難以維護(hù),此處還有一個相應(yīng)時間的問題。解決方案就是客戶端編程。這是程序員就為瀏覽器提供新功能的辦法。你可以用腳本語言把客戶端程序的源代碼直接嵌進(jìn)HTML頁面里去,HTML頁面顯示的時候,會自動激活這個插件去解釋這些程序的。此外還有一些,但是正在開發(fā)肯定還要多。)。Netscape Navigator同Microsoft Internet(IE)都內(nèi)置了這個語言。不過代價就是代碼只能給別人看了(或者說偷了)。插件告訴瀏覽器“從今往后,你可以進(jìn)行這些新的工作了??蛻舳司幊桃馕吨鳺eb瀏覽器能物盡其用,結(jié)果是用戶能更快同時也更互動地體驗?zāi)愕木W(wǎng)站。(而且CGI程序本身就啟動很慢。最常見的就是在服務(wù)器上運行一個程序,這個程序一般會放在“cgibin”目錄中。但是有些問題,只能通過讓客戶端的瀏覽器運行程序來解決了。Web瀏覽器是一項巨大的進(jìn)步:它的思想是要讓同樣的信息以通常的形式顯示在所有的機(jī)器上。把Web當(dāng)作巨型的服務(wù)器Web實際上就是一個巨型的客戶/服務(wù)器系統(tǒng)。為了把延時降到最低,程序員們盡量減輕服務(wù)的負(fù)載,通常會把這些處理任務(wù)挪到客戶端,不過有時也會移到所謂的中間件的服務(wù)器上。這么看來,客戶/服務(wù)器計算機(jī)的基本概念沒那么復(fù)雜。要把講Web講清楚,最好是退回來從頭開始。 a Web browser is like a limited operating system. In the end, you must still program, and this accounts for the dizzying array of problems and solutions produced by clientside programming. The rest of this section provides an overview of the issues and approaches in clientside programming.PluginsOne of the most significant steps forward in clientside programming is the development of the plugin. This is a way for a programmer to add new functionality to the browser by downloading a piece of code that plugs itself into the appr