版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2.3動態(tài)頁面表達(dá)及其技術(shù)2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ) 2.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù) 2.3.3客戶端腳本體系結(jié)構(gòu)及其技術(shù) 2.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù) 交互功能? Page12.3動態(tài)頁面表達(dá)及其技術(shù)2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ) 交2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ)這里的“動態(tài)”重點(diǎn)不在于如何獲得數(shù)據(jù)(屬數(shù)據(jù)層技術(shù))、更不在于如何構(gòu)建復(fù)雜的業(yè)務(wù)邏輯,而是實(shí)現(xiàn)用戶與應(yīng)用程序的通信,以及如何將所獲得的數(shù)據(jù)顯示在網(wǎng)頁中,主要目標(biāo)仍然在網(wǎng)頁上,在信息的表達(dá)上,特別信息的雙向交互上。這種技術(shù)上的區(qū)別,也正反映的電子商務(wù)網(wǎng)站和電子商務(wù)系統(tǒng)在系統(tǒng)建設(shè)上設(shè)計(jì)思路與技術(shù)基礎(chǔ)的不同。CGI:通過用編程語言例如C、Perl甚至是VisualBasic開發(fā)的應(yīng)用程序來產(chǎn)生,這對于訪問數(shù)據(jù)庫或服務(wù)器上其他的大型或不同的信息資源是非常適用的。Script:腳本(嵌入HTML語句中的程序語言)首次引人到Web瀏覽器時(shí),使用的是Netscape2.0。該腳本語言是由Java的語法派生而來的,故被稱作JavaScript。Microsoft為了增強(qiáng)客戶端腳本的能力,其開發(fā)了基于VisualBasic的Script語言,即VBscript。后來,兼容,微軟又開發(fā)了類似JavaScript的語言,叫做JScript。服務(wù)器端腳本:服務(wù)器端執(zhí)行的腳本程序。 Page22.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ)這里的“動態(tài)”重點(diǎn)不在于如何獲得腳本與服務(wù)器端腳本服務(wù)器端腳本程序來說,解釋的工作是由服務(wù)器在將頁面發(fā)出到瀏覽器之前完成的。<HTML><HEAD><TITLE>Today'sDate</TITLE></HEAD><BODY><P>Today'sDateis<?phpecho(date("l,FdSY."));?></BODY></HTML><HTML><HEAD><TITLE>Today'sDate</TITLE></HEAD><BODY><P>Today'sDateisWednesday,June7th2000.</BODY></HTML> Page3腳本與服務(wù)器端腳本服務(wù)器端腳本程序來說,解釋的工作是由服務(wù)器腳本比較腳本:使一個(gè)站點(diǎn)中的網(wǎng)頁對終端的用戶響應(yīng)性更好,來執(zhí)行基本的邏輯操作和編程。更多的簡單操作,例如驗(yàn)證用戶在一個(gè)字端中輸入數(shù)據(jù),或者是瀏覽器端的其他一些交互式的操作,通過服務(wù)器的程序來判斷并不是一種好的解決方案。服務(wù)器端:不存在瀏覽器兼容的問題??梢栽L問服務(wù)器端的資源。簡化了客戶端的裝載。 Page4腳本比較腳本: Page42.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù)客戶端應(yīng)用體系結(jié)構(gòu)客戶端應(yīng)用程序JavaAppletsActiveX Page52.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù)客戶端應(yīng)用體系結(jié)構(gòu)客戶端應(yīng)用體系結(jié)構(gòu)客戶機(jī)(瀏覽器)用戶開始應(yīng)用程序控制邏輯通信邏輯內(nèi)容構(gòu)建邏輯Applet應(yīng)用服務(wù)器下載+版本控制通信邏輯商業(yè)邏輯下載請求傳輸必要的網(wǎng)絡(luò)數(shù)據(jù),而不需要傳輸HTML數(shù)據(jù)內(nèi)容。 Page6客戶端應(yīng)用體系結(jié)構(gòu)客戶機(jī)(瀏覽器)控制邏輯Applet應(yīng)用客戶端應(yīng)用程序Java應(yīng)用程序是運(yùn)行在客戶端系統(tǒng)上的獨(dú)立應(yīng)用程序,這種客戶端系統(tǒng)與瀏覽器無關(guān)。每次站點(diǎn)訪問的下載或者將這個(gè)應(yīng)用程序放在用戶的高速緩存中. Page7客戶端應(yīng)用程序Java應(yīng)用程序是運(yùn)行在客戶端系統(tǒng)上的獨(dú)立應(yīng)用JavaAppletsJavaApplet是由Java語言編寫的包含在網(wǎng)頁里的“小應(yīng)用程序”,它不能獨(dú)立運(yùn)行,而必須嵌入一個(gè)HTML文件之中,由瀏覽器解釋之后作為網(wǎng)頁的一部分來執(zhí)行。請求響應(yīng)HTML
Socket連接圖1-9客戶端執(zhí)行邏輯示意圖Client(瀏覽器)WebServerHTML頁面Applet后臺數(shù)據(jù)源 Page8JavaAppletsJavaApplet是由JavActiveXMicrosoft將ActiveX定義為一組綜合技術(shù),這些技術(shù)使得用任何語言寫的軟件構(gòu)件在網(wǎng)絡(luò)環(huán)境中都能相互操作。在這些技術(shù)當(dāng)中,ActiveX控件與Web設(shè)計(jì)的關(guān)系最密切?;旧希粋€(gè)ActiveX控件是一個(gè)下載到IE,唯一支持這種技術(shù)的瀏覽器,并在客戶端執(zhí)行的功能完全的程序。ActiveX與Microsoft’sWindows操作系統(tǒng)一起工作,這可以提供比Javaapplet更強(qiáng)大的功能,但它只能在Windows環(huán)境下工作。不像獨(dú)立于平臺的Java語言,ActiveX控件以二進(jìn)制代碼發(fā)放,并且必須針對目標(biāo)機(jī)器的操作系統(tǒng)分別編譯。 Page9ActiveXMicrosoft將ActiveX定義為一組綜小結(jié)WEB應(yīng)用特征并不明顯用戶響應(yīng)快對客戶斷要求多Applet應(yīng)用廣泛鍵盤、鼠標(biāo)響應(yīng)聲音播放及圖像顯示動畫制作讀取文件 Page10小結(jié)WEB應(yīng)用特征并不明顯 Page2.3.2客戶端腳本體系結(jié)構(gòu)及其技術(shù)客戶端腳本體系結(jié)構(gòu)JavaScriptJscriptECMAScriptVBScript Page112.3.2客戶端腳本體系結(jié)構(gòu)及其技術(shù)客戶端腳本體系結(jié)構(gòu)客戶端腳本體系結(jié)構(gòu)客戶機(jī)瀏覽器用戶請求頁面切換產(chǎn)生頁面/簡單控制邏輯內(nèi)容修改服務(wù)器切換/復(fù)雜控制邏輯商業(yè)邏輯內(nèi)容構(gòu)建+邏輯嵌入響應(yīng) Page12客戶端腳本體系結(jié)構(gòu)客戶機(jī)服務(wù)器響應(yīng) P瀏覽器支持在這種結(jié)構(gòu)中,程序在瀏覽器上執(zhí)行,WEB服務(wù)器必須把程序代碼傳下來給瀏覽器,而瀏覽器也要能夠執(zhí)行服務(wù)器所傳下來的程序代碼。程序 IE可否執(zhí)行 NC可否執(zhí)行Java √ √JavaScript √ √VBScript √ ╳ActiveX控件 √ ╳ Page13瀏覽器支持在這種結(jié)構(gòu)中,程序在瀏覽器上執(zhí)行,WEB服務(wù)器必須分析這種體系結(jié)構(gòu)的好處是:服務(wù)器與用戶的通信比較少,需要的服務(wù)器資源比較少(由于在客戶端執(zhí)行一些業(yè)務(wù)邏輯),可以對用戶動作作更多的響應(yīng)(如鼠標(biāo)移動)。支持這種體系結(jié)構(gòu)的技術(shù)包括:ECMAScript/JavaScript/Jscript、VBScript和DHTML等。 Page14分析這種體系結(jié)構(gòu)的好處是:服務(wù)器與用戶的通信比較少,需要的服ECMAScriptECMASCript是一種腳本語言,已經(jīng)由ECMA(歐洲計(jì)算機(jī)制造商協(xié)會)標(biāo)準(zhǔn)化,并以ECMA-262語言規(guī)范的形式發(fā)布。這種語言是由BrendanEich在網(wǎng)景公司發(fā)明的,并在Navigator2.0瀏覽器中首次出現(xiàn)?,F(xiàn)在,它已經(jīng)被Netscape和IE3.0以后的瀏覽器所支持。ECMAScript有許多面向?qū)ο缶幊陶Z言的特點(diǎn),用來在主機(jī)環(huán)境內(nèi)執(zhí)行計(jì)算并操縱計(jì)算對象。ECMAScript最初是作為Web腳本語言而設(shè)計(jì)的。作為基于Web的客戶/服務(wù)器結(jié)構(gòu)的一部分,它提供了一種機(jī)制用來豐富瀏覽器中的Web頁面和執(zhí)行服務(wù)器端的計(jì)算。到目前為止,ECMAScript規(guī)范沒有被完整地實(shí)現(xiàn)。Netscape和Microsoft在開發(fā)自己的實(shí)現(xiàn)時(shí),都對其作了擴(kuò)充和限制。 Page15ECMAScriptECMASCript是一種腳本語言,已經(jīng)JavaScript透過它可以做到回應(yīng)使用者的需求事件(如:form的輸入)而不用任何的網(wǎng)路來回傳輸資料,所以當(dāng)一位使用者輸入一項(xiàng)資料時(shí),它不用經(jīng)過傳給服務(wù)器(server)處理,再傳回來的過程,而直接可以被客戶端(client)的應(yīng)用程式所處理。也可以想像成有一個(gè)可執(zhí)行程式在自己的客端上執(zhí)行一樣,它是Java與HTML折衷的選擇??梢郧度際TML頁的基于對象的解釋性腳本語言 Page16JavaScript透過它可以做到回應(yīng)使用者的需求事件(如:Javascript在網(wǎng)頁的用法Javascript加入網(wǎng)頁有兩種方法:直接加入HTML文檔:引用方式:如果已經(jīng)存在一個(gè)Javascript源文件(以js為擴(kuò)展名),則可以采用這種引用的方式,以提高程序代碼的利用率。<scriptsrc="Script.js"language="Javascript"></script>。<scriptlanguage="Javascript"><!--document.writeln("這是Javascript!采用直接插入的方法!");//-Javascript結(jié)束--></script> Page17Javascript在網(wǎng)頁的用法Javascript加入網(wǎng)頁JavaScript的基本語法
JavaScript代碼由<ScriptLanguage=”JavaScript”>……</Script>說明,在標(biāo)識之間就可加入JavaScript腳本。通過<!……//一>標(biāo)識說明:若不認(rèn)識JavaScript代碼的瀏覽器,則所有在其中的標(biāo)識均被忽略;若認(rèn)識,則執(zhí)行其結(jié)果。JavaScript腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型、表達(dá)式和算術(shù)運(yùn)算符以及程序的基本框架結(jié)構(gòu)。JavaScript腳本語言的基本構(gòu)成是由控制語句、函數(shù)、對象、方法和屬性等來實(shí)現(xiàn)編程的。 Page18JavaScript的基本語法JavaScript代碼由<JavaScript基本特點(diǎn)是一種腳本語言,它采用小程序段的方式實(shí)現(xiàn)編程?;趯ο蟮恼Z言。簡單性,主要體現(xiàn)在:首先它是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計(jì),從而對于學(xué)習(xí)Java是一種非常好的過渡。其次它的變量類型是采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型。安全性,它不允許訪問本地的硬盤,并不能將數(shù)據(jù)存入到服務(wù)器上,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過創(chuàng)覽器實(shí)現(xiàn)信息測覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失。動態(tài)性,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的反映響應(yīng),是采用以事件驅(qū)動的方式進(jìn)行的??缙脚_性。 Page19JavaScript基本特點(diǎn)是一種腳本語言,它采用小程序段的JavaScript與JAVA的比較是兩個(gè)公司開發(fā)的不同的兩個(gè)產(chǎn)品。基于對象和面向?qū)ο蠼忉尯途幾g。強(qiáng)變量和弱變量。代碼格式不一樣。嵌入方式不一樣。靜態(tài)聯(lián)編和動態(tài)聯(lián)編。Integerx;Stringy;x=1234;y=4321;x=1234;y="4321"; Page20JavaScript與JAVA的比較是兩個(gè)公司開發(fā)的不同的兩示例<html><head><ScriptLanguage="JavaScript">//JavaScriptAppearshere.alert("這是第一個(gè)JavaScript例子!");alert("歡迎你進(jìn)入JavaScript世界!");alert("今后我們將共同學(xué)習(xí)JavaScript知識!");</Script></Head></Html> Page21示例<html> Page21JscriptJscript是Microsoft對ECMAScript語言規(guī)范的實(shí)現(xiàn)。據(jù)Microsoft講,“它是一種完全的實(shí)現(xiàn),并增加了一些可以利用微軟IE優(yōu)點(diǎn)的功能”。到現(xiàn)在為止,它的版本是5.0。Jscript只有在MicrosoftIE或MicrosoftIIS的解釋器下才能運(yùn)行。Jscript和Javascript在某種程度上很相似,因?yàn)閮烧叨加泻虴CMAScript語言規(guī)范相同的部分。另一方面,它們也有一些重要的差異,這使得開發(fā)跨平臺的應(yīng)用相當(dāng)困難。這些差異體現(xiàn)在:各自附加對象的差異,例如與ActiveX控件的交互或者對客戶文件系統(tǒng)的訪問;在COM層次結(jié)構(gòu)中的對象訪問路徑的差異:對象屬性的差異。 Page22JscriptJscript是Microsoft對ECMASVBScriptVBScript(MicrosoftVisualBasicScriptingEdition)是MicrosoftVisualBasic家族的新成員。VBScript為IE帶來了“動態(tài)腳本”,它同樣也被Windows腳本主機(jī)和MicrosoftIIS所支持。在基于瀏覽器技術(shù)的Web開發(fā)環(huán)境中,VBScript與JScript的特征非常的相似(包括與ActiveX的緊密集成),但是它有自己的來自VisualBasic的語法。因此,VBScript除了IE以外不被其他公司的瀏覽器支持。 Page23VBScriptVBScript(MicrosoftVis2.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù)服務(wù)器端邏輯體系結(jié)構(gòu)服務(wù)器端技術(shù)基礎(chǔ)概述 Page242.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù)服務(wù)器端邏輯體系結(jié)構(gòu)1、服務(wù)器端邏輯體系結(jié)構(gòu)這個(gè)體系結(jié)構(gòu)完全依靠服務(wù)器來提供用戶界面內(nèi)容,它的構(gòu)造邏輯以及與用戶的相互作用如圖2-4所示。瀏覽器控制邏輯業(yè)務(wù)邏輯內(nèi)容構(gòu)建用戶動作內(nèi)容和控制的產(chǎn)生請求響應(yīng) Page251、服務(wù)器端邏輯體系結(jié)構(gòu)這個(gè)體系結(jié)構(gòu)完全依靠服務(wù)器來提供用戶服務(wù)器端的操作控制邏輯:服務(wù)器收到客戶端的請求,取出傳遞的參數(shù)并確定相應(yīng)的“業(yè)務(wù)對象”,并進(jìn)行適當(dāng)?shù)摹皹I(yè)務(wù)動作”。業(yè)務(wù)邏輯:業(yè)務(wù)邏輯屬于應(yīng)用邏輯的一個(gè)部分(對各種特定應(yīng)用處理的總和),它處理特定業(yè)務(wù)知識,并且與幾乎所有的相關(guān)技術(shù)代碼相分離,這些技術(shù)代碼包括分析和生成數(shù)據(jù)格式,數(shù)據(jù)庫和I/O處理,或內(nèi)存和進(jìn)程處理。內(nèi)容構(gòu)建:執(zhí)行業(yè)務(wù)邏輯之后的結(jié)果會被格式化,并且可以輔之于布局和其他一些客戶端顯示所需要的信息。這種體系結(jié)構(gòu)的好處是:所需的客戶端資源很少,應(yīng)用邏輯不用裝入,啟動用戶交互所需的網(wǎng)絡(luò)通信量很少,動態(tài)內(nèi)容完全由服務(wù)器端的可執(zhí)行代碼完成,僅僅將HTML頁面返回客戶端,這樣服務(wù)器端的應(yīng)用程序就不必考慮瀏覽器和客戶平臺的差異。支持這種體系結(jié)構(gòu)的技術(shù)很多,包括:ASP、JSP、PHP等。 Page26服務(wù)器端的操作控制邏輯:服務(wù)器收到客戶端的請求,取出傳遞的參2、服務(wù)器端表達(dá)技術(shù)基礎(chǔ)概述服務(wù)器端的技術(shù)從商務(wù)表達(dá)層的需要來看,就是如何接收用戶的輸入,并構(gòu)造傳遞給客戶端的頁面代碼。構(gòu)造過程本身,包括了數(shù)據(jù)接收、業(yè)務(wù)處理和信息返回,與傳統(tǒng)客戶/服務(wù)器開發(fā)不同的是,這里不能只返回結(jié)果數(shù)據(jù),而必須返回一個(gè)能夠反映結(jié)果的頁面。也就是說,服務(wù)器端需要完成數(shù)據(jù)描述的構(gòu)造工作。在應(yīng)用開發(fā)中,會涉及到程序設(shè)計(jì)的各類語言和方法。因此,從物理上說,這部分的工作在后臺服務(wù)器上完成,但從邏輯上講,它仍舊服務(wù)于前臺表示。在不同的書里,對這部分的技術(shù)講述有不同的視角,有些在前端的網(wǎng)頁制作中講述,有些在后臺的邏輯處理中進(jìn)行分析,各自都有其合理性,因?yàn)橄驛SP這種應(yīng)用程序中,它本身在一個(gè)程序中就包括了前臺表達(dá)、后臺邏輯處理、以及后端的數(shù)據(jù)庫訪問所有功能。對于簡單的應(yīng)用,比如電子商務(wù)網(wǎng)站,在技術(shù)上進(jìn)行細(xì)致的層次劃分是沒有多少意義的,但從發(fā)展的角度看,隨著應(yīng)用系統(tǒng)復(fù)雜性的增強(qiáng),即使是同一個(gè)程序語言,為了不同的邏輯層次的需要,其技術(shù)也有一些不同的增長點(diǎn),比如前臺更豐富的表現(xiàn)力,后臺邏輯處理的復(fù)雜性和靈活性處理、異種平臺的互聯(lián)與訪問。本書也以此作為技術(shù)講解中的層次劃分標(biāo)準(zhǔn),比如在對程序語言,如ASP、JAVA的講解中,在表示層主要描述如何構(gòu)建HTML頁面,如何完成與用戶的交互;在商務(wù)邏輯層介紹如何利用組件技術(shù)(微軟的ActiveX和SUN的Servlets和EJB)設(shè)計(jì)擴(kuò)展的分布式應(yīng)用系統(tǒng),完成商務(wù)邏輯處理;而在后端數(shù)據(jù)層,則主要分析不同的數(shù)據(jù)庫訪問機(jī)制和技術(shù)。 Page272、服務(wù)器端表達(dá)技術(shù)基礎(chǔ)概述服務(wù)器端的技術(shù)從商務(wù)表達(dá)層的需要6、服務(wù)器端邏輯的深化隨著商務(wù)邏輯的復(fù)雜,以及三層體系結(jié)構(gòu)的出現(xiàn),服務(wù)器端的處理邏輯進(jìn)一步豐富和細(xì)化,更多的商業(yè)邏輯獨(dú)立于表示邏輯,由應(yīng)用服務(wù)器上的應(yīng)用程序執(zhí)行,并將結(jié)果返回WEB服務(wù)器,組裝成最終的顯示頁面返回客戶機(jī)。基于JAVA技術(shù)的服務(wù)器端執(zhí)行邏輯如圖所示。請求響應(yīng)HTML
可執(zhí)行代碼(如Servlet)Client(瀏覽器)WebServerPlug-In后臺數(shù)據(jù)源AppServer Page286、服務(wù)器端邏輯的深化隨著商務(wù)邏輯的復(fù)雜,以及三層體系結(jié)構(gòu)的小結(jié)服務(wù)器端腳本程序與HTML標(biāo)記混編。引擎解釋程序語句,直接插入HTML文本中。通過一些對象完成通訊:接收請求,發(fā)送響應(yīng)。 Page29小結(jié)服務(wù)器端腳本 Page292.4用戶界面體系結(jié)構(gòu)的分析2.4.1商務(wù)表達(dá)平臺體系結(jié)構(gòu)的比較結(jié)構(gòu):客戶端應(yīng)用、客戶端腳本、服務(wù)器端腳本指標(biāo):易用性、性能、安全性、平臺兼容性2.4.2商務(wù)表達(dá)平臺體系結(jié)構(gòu)的綜合比較2.4.3跨平臺策略 Internet平臺差異性處理不兼容性測試方法 Page302.4用戶界面體系結(jié)構(gòu)的分析2.4.1商務(wù)表達(dá)平臺體系結(jié)易用性不需要任何方面的訓(xùn)練就可以使用這些程序。在Internet環(huán)境下:隱語的使用、清晰、統(tǒng)一、定位和導(dǎo)航功能。服務(wù)器端邏輯體系結(jié)構(gòu):很簡單的用戶界面——超鏈接或表單,而且,每一次與用戶的交互都需要與服務(wù)器進(jìn)行交互,另一方面,僅僅通過靜態(tài)的表現(xiàn),如圖標(biāo),而沒有相關(guān)行為的描述是很難創(chuàng)造出直覺上的隱語??蛻舳四_本體系結(jié)構(gòu):提供更加復(fù)雜的導(dǎo)航和定位幫助,然而,提供精巧界面單元的腳本語言工具顯得有一點(diǎn)點(diǎn)簡陋,客戶端應(yīng)用體系結(jié)構(gòu):更復(fù)雜的語言元素和標(biāo)準(zhǔn)庫使得客戶端應(yīng)用比腳本支持更復(fù)雜的邏輯行為,然而,需要在界面設(shè)計(jì)方面有相當(dāng)豐富的經(jīng)驗(yàn),僅僅使用大量的GUI控件本身會隱藏著危險(xiǎn)。多媒體內(nèi)容:真正的多媒體應(yīng)用是在提供隱語、導(dǎo)航及定位方面達(dá)到最高境界。 Page31易用性不需要任何方面的訓(xùn)練就可以使用這些程序。 性能-1分布在客戶端和服務(wù)器端的計(jì)算及相互間的通信都會對性能產(chǎn)生至關(guān)重要的影響。性能瓶頸包括:初始化時(shí)間,直到第一個(gè)用戶交互可以完成(下載時(shí)間);客戶端處理一個(gè)用戶交互所需的時(shí)間(客戶裝入);需要與服務(wù)器交互的次數(shù)(服務(wù)器依賴度);從客戶端向服務(wù)器傳輸消息及反饋結(jié)果所需的時(shí)間(網(wǎng)絡(luò)傳輸時(shí)間);服務(wù)器處理用戶交互所璧氖奔洌ǚ衿髯叭耄服務(wù)器處理用戶交互所需的時(shí)間(服務(wù)器裝入服務(wù)器端邏輯體系結(jié)構(gòu):非常短的初始化下載時(shí)間。而且因?yàn)榭蛻舨怀袚?dān)任何的計(jì)算,所以只需要很少的用戶資源。所以這對服務(wù)器的依賴程度相當(dāng)高。導(dǎo)致客戶同服務(wù)器之間的大量信息的傳輸。最后,服務(wù)器不得不自己實(shí)現(xiàn)所有的計(jì)算(服務(wù)器裝入)。導(dǎo)致了大量的響應(yīng)時(shí)間,一般用于用戶交互需要較少的應(yīng)用中。 Page32性能-1分布在客戶端和服務(wù)器端的計(jì)算及相互間的通信都會對性能性能-2(2)客戶端腳本體系結(jié)構(gòu)通過腳本,用戶事件可以獲得較快的時(shí)間回應(yīng),與服務(wù)器之間的交互也只要較少的時(shí)間。服務(wù)器調(diào)用只是在不大的程度上得以提高。大量的腳本需要一個(gè)相當(dāng)可觀的下載時(shí)間一個(gè)缺點(diǎn)是對用戶資源,例如主存,的需求更大了。(3)客戶端應(yīng)用體系結(jié)構(gòu)提供了最好的響應(yīng)效果。與服務(wù)器的交流也就更少了(適度的服務(wù)器依賴)僅僅網(wǎng)絡(luò)數(shù)據(jù)(無需布局信息)需要在服務(wù)器和客戶之間進(jìn)行傳送。主要缺點(diǎn)是在在第一次交互前需要比較長的下載時(shí)間。比前一個(gè)方法需要更多的客戶機(jī)資源。(4)多媒體內(nèi)容但卻需要一個(gè)很大的下載時(shí)間和一些安裝程序,對于音頻、視頻等多媒體內(nèi)容,都需要非常巨大的網(wǎng)絡(luò)帶寬 Page33性能-2(2)客戶端腳本體系結(jié)構(gòu) Pa安全性包括多個(gè)層次的安全問題,下面主要從客戶端的安全性來比較:一旦動態(tài)內(nèi)容進(jìn)入,客戶端的完整性可能會遭到惡意服務(wù)器的破壞,服務(wù)器端邏輯體系結(jié)構(gòu):幾乎沒有什么安全漏洞??蛻舳四_本體系結(jié)構(gòu):主要是JavaScript(JScript)的安全性 Page34安全性包括多個(gè)層次的安全問題,下面主要從客戶端的安全性來比較平臺兼容性要支持各種不同的瀏覽器和操作系統(tǒng)平臺。(1)服務(wù)器端邏輯體系結(jié)構(gòu):這種體系結(jié)構(gòu)能生產(chǎn)出可預(yù)見的內(nèi)容和行為,平臺差異和bug總是存在的,但它們對應(yīng)用功能影響是很小的。(2)客戶端腳本體系結(jié)構(gòu):使用客戶端腳本體系結(jié)構(gòu),將有許多不兼容問題出現(xiàn)。(3)客戶端應(yīng)用體系結(jié)構(gòu):JAVA的兼容性比較好。(4)多媒體內(nèi)容:用戶需要安裝額外的插件,因此,并沒有客戶端軟件限制問題,因?yàn)椴还茉鯓佑脩舳嫉蒙壸约旱南到y(tǒng)。 Page35平臺兼容性要支持各種不同的瀏覽器和操作系統(tǒng)平臺。 綜合比較特性 客戶端應(yīng)用 客戶端腳本 服務(wù)器端邏輯導(dǎo)航、定位 效果好 比較強(qiáng),稍顯簡陋 能力差客戶端資源 大 較多 少服務(wù)器資源 少(適度依賴)較高 高響應(yīng)時(shí)間快 第一次下載量大較快、下載時(shí)間長 長信息傳輸少 無布局信息 較少 大量安全性 少量控制 較安全兼容性 少量問題 許多問題 最好應(yīng)用特點(diǎn) 用戶群穩(wěn)定 用戶范圍廣 界面業(yè)務(wù)復(fù)雜 交互少應(yīng)用舉例 企業(yè)內(nèi)部網(wǎng)應(yīng)用 掌上電腦 Page36綜合比較特性 客戶端應(yīng)用 客戶端腳本 服務(wù)器端邏輯Internet平臺差異性Internet應(yīng)用程序最明顯的特點(diǎn)是使用的普遍性,這些設(shè)備存在著巨大的差異,比如操作系統(tǒng)、瀏覽器軟件、運(yùn)行時(shí)的環(huán)境語言(如JVM或腳本引擎)、國家語言環(huán)境(如特殊的字庫)以及屏幕分辨率等。在Internet發(fā)展早期時(shí)大家已經(jīng)意識到這個(gè)問題,幾個(gè)組織和委員會建立了上網(wǎng)計(jì)算機(jī)之間的數(shù)據(jù)交換標(biāo)準(zhǔn)。標(biāo)準(zhǔn)并沒有規(guī)定每一樣?xùn)|西,如DOM,也并不能被所有人所完全地實(shí)現(xiàn),瀏覽器仍是堅(jiān)持一種操作系統(tǒng)的外觀每個(gè)瀏覽器提供商都有自己的增強(qiáng)部分,瀏覽器的最新消息可以在上查到。 Page37Internet平臺差異性Internet應(yīng)用程序最明顯的特處理不兼容性不同平臺上產(chǎn)生的兼容性有以下原因:瀏覽器版本的特殊功能,如CSS支持;操作系統(tǒng)特性、如字體映射;bug,如JavaScripteval()函數(shù)使16位windows上的Navigator崩潰;語言級的不兼容性,如在Navigator4.0和IE4.0之間不同的JavaScript事件處理模式;瀏覽器無法處理所選擇的技術(shù),如客戶方XML目前為止只被IE5.0支持。因此,在開始設(shè)計(jì)、開發(fā)一個(gè)Web用戶界面之前,一定要很好地確定目標(biāo)平臺,并采用一些處理不兼容性的策略。最少通用途徑特定平臺的用戶界面服務(wù)器端邏輯的兼容性特性測試:檢測平臺上是否有正要使用的特性失敗的優(yōu)雅性跨平臺框架 Page38處理不兼容性不同平臺上產(chǎn)生的兼容性有以下原因:瀏覽器版本的特測試方法每一個(gè)應(yīng)用程序的開發(fā),都需要進(jìn)行測試。一般來說,這種測試可以分成幾個(gè)階段:設(shè)計(jì)和指定測試樣本;擬定測試計(jì)劃;建立測試樣本;建立測試環(huán)境;進(jìn)行單元、集成、系統(tǒng)以及接受測試。針對Web用戶界面,下面給出各測試階段中應(yīng)注意的事項(xiàng)。(1)接受測試樣例的設(shè)計(jì):接受測試樣例依據(jù)項(xiàng)目主持者的構(gòu)思建立起來,其目的是就最終系統(tǒng)的驗(yàn)收達(dá)成一致。(2)集成和系統(tǒng)測試樣例的設(shè)計(jì)最好能確認(rèn)在集成測試階段或系統(tǒng)測試階段覆蓋所有主要的用戶操作系統(tǒng),甚至包括那些不是接受測試的部分,還要包括主流瀏覽器中一些不同的版本。 Page39測試方法每一個(gè)應(yīng)用程序的開發(fā),都需要進(jìn)行測試。一般來說,這種小結(jié)技術(shù)更多需要考慮的問題更多解決問題的能力更高 Page40小結(jié)技術(shù)更多 Page402.3動態(tài)頁面表達(dá)及其技術(shù)2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ) 2.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù) 2.3.3客戶端腳本體系結(jié)構(gòu)及其技術(shù) 2.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù) 交互功能? Page412.3動態(tài)頁面表達(dá)及其技術(shù)2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ) 交2.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ)這里的“動態(tài)”重點(diǎn)不在于如何獲得數(shù)據(jù)(屬數(shù)據(jù)層技術(shù))、更不在于如何構(gòu)建復(fù)雜的業(yè)務(wù)邏輯,而是實(shí)現(xiàn)用戶與應(yīng)用程序的通信,以及如何將所獲得的數(shù)據(jù)顯示在網(wǎng)頁中,主要目標(biāo)仍然在網(wǎng)頁上,在信息的表達(dá)上,特別信息的雙向交互上。這種技術(shù)上的區(qū)別,也正反映的電子商務(wù)網(wǎng)站和電子商務(wù)系統(tǒng)在系統(tǒng)建設(shè)上設(shè)計(jì)思路與技術(shù)基礎(chǔ)的不同。CGI:通過用編程語言例如C、Perl甚至是VisualBasic開發(fā)的應(yīng)用程序來產(chǎn)生,這對于訪問數(shù)據(jù)庫或服務(wù)器上其他的大型或不同的信息資源是非常適用的。Script:腳本(嵌入HTML語句中的程序語言)首次引人到Web瀏覽器時(shí),使用的是Netscape2.0。該腳本語言是由Java的語法派生而來的,故被稱作JavaScript。Microsoft為了增強(qiáng)客戶端腳本的能力,其開發(fā)了基于VisualBasic的Script語言,即VBscript。后來,兼容,微軟又開發(fā)了類似JavaScript的語言,叫做JScript。服務(wù)器端腳本:服務(wù)器端執(zhí)行的腳本程序。 Page422.3.1動態(tài)網(wǎng)頁技術(shù)基礎(chǔ)這里的“動態(tài)”重點(diǎn)不在于如何獲得腳本與服務(wù)器端腳本服務(wù)器端腳本程序來說,解釋的工作是由服務(wù)器在將頁面發(fā)出到瀏覽器之前完成的。<HTML><HEAD><TITLE>Today'sDate</TITLE></HEAD><BODY><P>Today'sDateis<?phpecho(date("l,FdSY."));?></BODY></HTML><HTML><HEAD><TITLE>Today'sDate</TITLE></HEAD><BODY><P>Today'sDateisWednesday,June7th2000.</BODY></HTML> Page43腳本與服務(wù)器端腳本服務(wù)器端腳本程序來說,解釋的工作是由服務(wù)器腳本比較腳本:使一個(gè)站點(diǎn)中的網(wǎng)頁對終端的用戶響應(yīng)性更好,來執(zhí)行基本的邏輯操作和編程。更多的簡單操作,例如驗(yàn)證用戶在一個(gè)字端中輸入數(shù)據(jù),或者是瀏覽器端的其他一些交互式的操作,通過服務(wù)器的程序來判斷并不是一種好的解決方案。服務(wù)器端:不存在瀏覽器兼容的問題。可以訪問服務(wù)器端的資源。簡化了客戶端的裝載。 Page44腳本比較腳本: Page42.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù)客戶端應(yīng)用體系結(jié)構(gòu)客戶端應(yīng)用程序JavaAppletsActiveX Page452.3.2客戶端應(yīng)用體系結(jié)構(gòu)及其技術(shù)客戶端應(yīng)用體系結(jié)構(gòu)客戶端應(yīng)用體系結(jié)構(gòu)客戶機(jī)(瀏覽器)用戶開始應(yīng)用程序控制邏輯通信邏輯內(nèi)容構(gòu)建邏輯Applet應(yīng)用服務(wù)器下載+版本控制通信邏輯商業(yè)邏輯下載請求傳輸必要的網(wǎng)絡(luò)數(shù)據(jù),而不需要傳輸HTML數(shù)據(jù)內(nèi)容。 Page46客戶端應(yīng)用體系結(jié)構(gòu)客戶機(jī)(瀏覽器)控制邏輯Applet應(yīng)用客戶端應(yīng)用程序Java應(yīng)用程序是運(yùn)行在客戶端系統(tǒng)上的獨(dú)立應(yīng)用程序,這種客戶端系統(tǒng)與瀏覽器無關(guān)。每次站點(diǎn)訪問的下載或者將這個(gè)應(yīng)用程序放在用戶的高速緩存中. Page47客戶端應(yīng)用程序Java應(yīng)用程序是運(yùn)行在客戶端系統(tǒng)上的獨(dú)立應(yīng)用JavaAppletsJavaApplet是由Java語言編寫的包含在網(wǎng)頁里的“小應(yīng)用程序”,它不能獨(dú)立運(yùn)行,而必須嵌入一個(gè)HTML文件之中,由瀏覽器解釋之后作為網(wǎng)頁的一部分來執(zhí)行。請求響應(yīng)HTML
Socket連接圖1-9客戶端執(zhí)行邏輯示意圖Client(瀏覽器)WebServerHTML頁面Applet后臺數(shù)據(jù)源 Page48JavaAppletsJavaApplet是由JavActiveXMicrosoft將ActiveX定義為一組綜合技術(shù),這些技術(shù)使得用任何語言寫的軟件構(gòu)件在網(wǎng)絡(luò)環(huán)境中都能相互操作。在這些技術(shù)當(dāng)中,ActiveX控件與Web設(shè)計(jì)的關(guān)系最密切?;旧?,一個(gè)ActiveX控件是一個(gè)下載到IE,唯一支持這種技術(shù)的瀏覽器,并在客戶端執(zhí)行的功能完全的程序。ActiveX與Microsoft’sWindows操作系統(tǒng)一起工作,這可以提供比Javaapplet更強(qiáng)大的功能,但它只能在Windows環(huán)境下工作。不像獨(dú)立于平臺的Java語言,ActiveX控件以二進(jìn)制代碼發(fā)放,并且必須針對目標(biāo)機(jī)器的操作系統(tǒng)分別編譯。 Page49ActiveXMicrosoft將ActiveX定義為一組綜小結(jié)WEB應(yīng)用特征并不明顯用戶響應(yīng)快對客戶斷要求多Applet應(yīng)用廣泛鍵盤、鼠標(biāo)響應(yīng)聲音播放及圖像顯示動畫制作讀取文件 Page50小結(jié)WEB應(yīng)用特征并不明顯 Page2.3.2客戶端腳本體系結(jié)構(gòu)及其技術(shù)客戶端腳本體系結(jié)構(gòu)JavaScriptJscriptECMAScriptVBScript Page512.3.2客戶端腳本體系結(jié)構(gòu)及其技術(shù)客戶端腳本體系結(jié)構(gòu)客戶端腳本體系結(jié)構(gòu)客戶機(jī)瀏覽器用戶請求頁面切換產(chǎn)生頁面/簡單控制邏輯內(nèi)容修改服務(wù)器切換/復(fù)雜控制邏輯商業(yè)邏輯內(nèi)容構(gòu)建+邏輯嵌入響應(yīng) Page52客戶端腳本體系結(jié)構(gòu)客戶機(jī)服務(wù)器響應(yīng) P瀏覽器支持在這種結(jié)構(gòu)中,程序在瀏覽器上執(zhí)行,WEB服務(wù)器必須把程序代碼傳下來給瀏覽器,而瀏覽器也要能夠執(zhí)行服務(wù)器所傳下來的程序代碼。程序 IE可否執(zhí)行 NC可否執(zhí)行Java √ √JavaScript √ √VBScript √ ╳ActiveX控件 √ ╳ Page53瀏覽器支持在這種結(jié)構(gòu)中,程序在瀏覽器上執(zhí)行,WEB服務(wù)器必須分析這種體系結(jié)構(gòu)的好處是:服務(wù)器與用戶的通信比較少,需要的服務(wù)器資源比較少(由于在客戶端執(zhí)行一些業(yè)務(wù)邏輯),可以對用戶動作作更多的響應(yīng)(如鼠標(biāo)移動)。支持這種體系結(jié)構(gòu)的技術(shù)包括:ECMAScript/JavaScript/Jscript、VBScript和DHTML等。 Page54分析這種體系結(jié)構(gòu)的好處是:服務(wù)器與用戶的通信比較少,需要的服ECMAScriptECMASCript是一種腳本語言,已經(jīng)由ECMA(歐洲計(jì)算機(jī)制造商協(xié)會)標(biāo)準(zhǔn)化,并以ECMA-262語言規(guī)范的形式發(fā)布。這種語言是由BrendanEich在網(wǎng)景公司發(fā)明的,并在Navigator2.0瀏覽器中首次出現(xiàn)?,F(xiàn)在,它已經(jīng)被Netscape和IE3.0以后的瀏覽器所支持。ECMAScript有許多面向?qū)ο缶幊陶Z言的特點(diǎn),用來在主機(jī)環(huán)境內(nèi)執(zhí)行計(jì)算并操縱計(jì)算對象。ECMAScript最初是作為Web腳本語言而設(shè)計(jì)的。作為基于Web的客戶/服務(wù)器結(jié)構(gòu)的一部分,它提供了一種機(jī)制用來豐富瀏覽器中的Web頁面和執(zhí)行服務(wù)器端的計(jì)算。到目前為止,ECMAScript規(guī)范沒有被完整地實(shí)現(xiàn)。Netscape和Microsoft在開發(fā)自己的實(shí)現(xiàn)時(shí),都對其作了擴(kuò)充和限制。 Page55ECMAScriptECMASCript是一種腳本語言,已經(jīng)JavaScript透過它可以做到回應(yīng)使用者的需求事件(如:form的輸入)而不用任何的網(wǎng)路來回傳輸資料,所以當(dāng)一位使用者輸入一項(xiàng)資料時(shí),它不用經(jīng)過傳給服務(wù)器(server)處理,再傳回來的過程,而直接可以被客戶端(client)的應(yīng)用程式所處理。也可以想像成有一個(gè)可執(zhí)行程式在自己的客端上執(zhí)行一樣,它是Java與HTML折衷的選擇??梢郧度際TML頁的基于對象的解釋性腳本語言 Page56JavaScript透過它可以做到回應(yīng)使用者的需求事件(如:Javascript在網(wǎng)頁的用法Javascript加入網(wǎng)頁有兩種方法:直接加入HTML文檔:引用方式:如果已經(jīng)存在一個(gè)Javascript源文件(以js為擴(kuò)展名),則可以采用這種引用的方式,以提高程序代碼的利用率。<scriptsrc="Script.js"language="Javascript"></script>。<scriptlanguage="Javascript"><!--document.writeln("這是Javascript!采用直接插入的方法!");//-Javascript結(jié)束--></script> Page57Javascript在網(wǎng)頁的用法Javascript加入網(wǎng)頁JavaScript的基本語法
JavaScript代碼由<ScriptLanguage=”JavaScript”>……</Script>說明,在標(biāo)識之間就可加入JavaScript腳本。通過<!……//一>標(biāo)識說明:若不認(rèn)識JavaScript代碼的瀏覽器,則所有在其中的標(biāo)識均被忽略;若認(rèn)識,則執(zhí)行其結(jié)果。JavaScript腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型、表達(dá)式和算術(shù)運(yùn)算符以及程序的基本框架結(jié)構(gòu)。JavaScript腳本語言的基本構(gòu)成是由控制語句、函數(shù)、對象、方法和屬性等來實(shí)現(xiàn)編程的。 Page58JavaScript的基本語法JavaScript代碼由<JavaScript基本特點(diǎn)是一種腳本語言,它采用小程序段的方式實(shí)現(xiàn)編程?;趯ο蟮恼Z言。簡單性,主要體現(xiàn)在:首先它是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計(jì),從而對于學(xué)習(xí)Java是一種非常好的過渡。其次它的變量類型是采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型。安全性,它不允許訪問本地的硬盤,并不能將數(shù)據(jù)存入到服務(wù)器上,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過創(chuàng)覽器實(shí)現(xiàn)信息測覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失。動態(tài)性,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的反映響應(yīng),是采用以事件驅(qū)動的方式進(jìn)行的。跨平臺性。 Page59JavaScript基本特點(diǎn)是一種腳本語言,它采用小程序段的JavaScript與JAVA的比較是兩個(gè)公司開發(fā)的不同的兩個(gè)產(chǎn)品?;趯ο蠛兔嫦?qū)ο蠼忉尯途幾g。強(qiáng)變量和弱變量。代碼格式不一樣。嵌入方式不一樣。靜態(tài)聯(lián)編和動態(tài)聯(lián)編。Integerx;Stringy;x=1234;y=4321;x=1234;y="4321"; Page60JavaScript與JAVA的比較是兩個(gè)公司開發(fā)的不同的兩示例<html><head><ScriptLanguage="JavaScript">//JavaScriptAppearshere.alert("這是第一個(gè)JavaScript例子!");alert("歡迎你進(jìn)入JavaScript世界!");alert("今后我們將共同學(xué)習(xí)JavaScript知識!");</Script></Head></Html> Page61示例<html> Page21JscriptJscript是Microsoft對ECMAScript語言規(guī)范的實(shí)現(xiàn)。據(jù)Microsoft講,“它是一種完全的實(shí)現(xiàn),并增加了一些可以利用微軟IE優(yōu)點(diǎn)的功能”。到現(xiàn)在為止,它的版本是5.0。Jscript只有在MicrosoftIE或MicrosoftIIS的解釋器下才能運(yùn)行。Jscript和Javascript在某種程度上很相似,因?yàn)閮烧叨加泻虴CMAScript語言規(guī)范相同的部分。另一方面,它們也有一些重要的差異,這使得開發(fā)跨平臺的應(yīng)用相當(dāng)困難。這些差異體現(xiàn)在:各自附加對象的差異,例如與ActiveX控件的交互或者對客戶文件系統(tǒng)的訪問;在COM層次結(jié)構(gòu)中的對象訪問路徑的差異:對象屬性的差異。 Page62JscriptJscript是Microsoft對ECMASVBScriptVBScript(MicrosoftVisualBasicScriptingEdition)是MicrosoftVisualBasic家族的新成員。VBScript為IE帶來了“動態(tài)腳本”,它同樣也被Windows腳本主機(jī)和MicrosoftIIS所支持。在基于瀏覽器技術(shù)的Web開發(fā)環(huán)境中,VBScript與JScript的特征非常的相似(包括與ActiveX的緊密集成),但是它有自己的來自VisualBasic的語法。因此,VBScript除了IE以外不被其他公司的瀏覽器支持。 Page63VBScriptVBScript(MicrosoftVis2.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù)服務(wù)器端邏輯體系結(jié)構(gòu)服務(wù)器端技術(shù)基礎(chǔ)概述 Page642.3.4服務(wù)器端邏輯體系結(jié)構(gòu)及其技術(shù)服務(wù)器端邏輯體系結(jié)構(gòu)1、服務(wù)器端邏輯體系結(jié)構(gòu)這個(gè)體系結(jié)構(gòu)完全依靠服務(wù)器來提供用戶界面內(nèi)容,它的構(gòu)造邏輯以及與用戶的相互作用如圖2-4所示。瀏覽器控制邏輯業(yè)務(wù)邏輯內(nèi)容構(gòu)建用戶動作內(nèi)容和控制的產(chǎn)生請求響應(yīng) Page651、服務(wù)器端邏輯體系結(jié)構(gòu)這個(gè)體系結(jié)構(gòu)完全依靠服務(wù)器來提供用戶服務(wù)器端的操作控制邏輯:服務(wù)器收到客戶端的請求,取出傳遞的參數(shù)并確定相應(yīng)的“業(yè)務(wù)對象”,并進(jìn)行適當(dāng)?shù)摹皹I(yè)務(wù)動作”。業(yè)務(wù)邏輯:業(yè)務(wù)邏輯屬于應(yīng)用邏輯的一個(gè)部分(對各種特定應(yīng)用處理的總和),它處理特定業(yè)務(wù)知識,并且與幾乎所有的相關(guān)技術(shù)代碼相分離,這些技術(shù)代碼包括分析和生成數(shù)據(jù)格式,數(shù)據(jù)庫和I/O處理,或內(nèi)存和進(jìn)程處理。內(nèi)容構(gòu)建:執(zhí)行業(yè)務(wù)邏輯之后的結(jié)果會被格式化,并且可以輔之于布局和其他一些客戶端顯示所需要的信息。這種體系結(jié)構(gòu)的好處是:所需的客戶端資源很少,應(yīng)用邏輯不用裝入,啟動用戶交互所需的網(wǎng)絡(luò)通信量很少,動態(tài)內(nèi)容完全由服務(wù)器端的可執(zhí)行代碼完成,僅僅將HTML頁面返回客戶端,這樣服務(wù)器端的應(yīng)用程序就不必考慮瀏覽器和客戶平臺的差異。支持這種體系結(jié)構(gòu)的技術(shù)很多,包括:ASP、JSP、PHP等。 Page66服務(wù)器端的操作控制邏輯:服務(wù)器收到客戶端的請求,取出傳遞的參2、服務(wù)器端表達(dá)技術(shù)基礎(chǔ)概述服務(wù)器端的技術(shù)從商務(wù)表達(dá)層的需要來看,就是如何接收用戶的輸入,并構(gòu)造傳遞給客戶端的頁面代碼。構(gòu)造過程本身,包括了數(shù)據(jù)接收、業(yè)務(wù)處理和信息返回,與傳統(tǒng)客戶/服務(wù)器開發(fā)不同的是,這里不能只返回結(jié)果數(shù)據(jù),而必須返回一個(gè)能夠反映結(jié)果的頁面。也就是說,服務(wù)器端需要完成數(shù)據(jù)描述的構(gòu)造工作。在應(yīng)用開發(fā)中,會涉及到程序設(shè)計(jì)的各類語言和方法。因此,從物理上說,這部分的工作在后臺服務(wù)器上完成,但從邏輯上講,它仍舊服務(wù)于前臺表示。在不同的書里,對這部分的技術(shù)講述有不同的視角,有些在前端的網(wǎng)頁制作中講述,有些在后臺的邏輯處理中進(jìn)行分析,各自都有其合理性,因?yàn)橄驛SP這種應(yīng)用程序中,它本身在一個(gè)程序中就包括了前臺表達(dá)、后臺邏輯處理、以及后端的數(shù)據(jù)庫訪問所有功能。對于簡單的應(yīng)用,比如電子商務(wù)網(wǎng)站,在技術(shù)上進(jìn)行細(xì)致的層次劃分是沒有多少意義的,但從發(fā)展的角度看,隨著應(yīng)用系統(tǒng)復(fù)雜性的增強(qiáng),即使是同一個(gè)程序語言,為了不同的邏輯層次的需要,其技術(shù)也有一些不同的增長點(diǎn),比如前臺更豐富的表現(xiàn)力,后臺邏輯處理的復(fù)雜性和靈活性處理、異種平臺的互聯(lián)與訪問。本書也以此作為技術(shù)講解中的層次劃分標(biāo)準(zhǔn),比如在對程序語言,如ASP、JAVA的講解中,在表示層主要描述如何構(gòu)建HTML頁面,如何完成與用戶的交互;在商務(wù)邏輯層介紹如何利用組件技術(shù)(微軟的ActiveX和SUN的Servlets和EJB)設(shè)計(jì)擴(kuò)展的分布式應(yīng)用系統(tǒng),完成商務(wù)邏輯處理;而在后端數(shù)據(jù)層,則主要分析不同的數(shù)據(jù)庫訪問機(jī)制和技術(shù)。 Page672、服務(wù)器端表達(dá)技術(shù)基礎(chǔ)概述服務(wù)器端的技術(shù)從商務(wù)表達(dá)層的需要6、服務(wù)器端邏輯的深化隨著商務(wù)邏輯的復(fù)雜,以及三層體系結(jié)構(gòu)的出現(xiàn),服務(wù)器端的處理邏輯進(jìn)一步豐富和細(xì)化,更多的商業(yè)邏輯獨(dú)立于表示邏輯,由應(yīng)用服務(wù)器上的應(yīng)用程序執(zhí)行,并將結(jié)果返回WEB服務(wù)器,組裝成最終的顯示頁面返回客戶機(jī)。基于JAVA技術(shù)的服務(wù)器端執(zhí)行邏輯如圖所示。請求響應(yīng)HTML
可執(zhí)行代碼(如Servlet)Client(瀏覽器)WebServerPlug-In后臺數(shù)據(jù)源AppServer Page686、服務(wù)器端邏輯的深化隨著商務(wù)邏輯的復(fù)雜,以及三層體系結(jié)構(gòu)的小結(jié)服務(wù)器端腳本程序與HTML標(biāo)記混編。引擎解釋程序語句,直接插入HTML文本中。通過一些對象完成通訊:接收請求,發(fā)送響應(yīng)。 Page69小結(jié)服務(wù)器端腳本 Page292.4用戶界面體系結(jié)構(gòu)的分析2.4.1商務(wù)表達(dá)平臺體系結(jié)構(gòu)的比較結(jié)構(gòu):客戶端應(yīng)用、客戶端腳本、服務(wù)器端腳本指標(biāo):易用性、性能、安全性、平臺兼容性2.4.2商務(wù)表達(dá)平臺體系結(jié)構(gòu)的綜合比較2.4.3跨平臺策略 Internet平臺差異性處理不兼容性測試方法 Page702.4用戶界面體系結(jié)構(gòu)的分析2.4.1商務(wù)表達(dá)平臺體系結(jié)易用性不需要任何方面的訓(xùn)練就可以使用這些程序。在Internet環(huán)境下:隱語的使用、清晰、統(tǒng)一、定位和導(dǎo)航功能。服務(wù)器端邏輯體系結(jié)構(gòu):很簡單的用戶界面——超鏈接或表單,而且,每一次與用戶的交互都需要與服務(wù)器進(jìn)行交互,另一方面,僅僅通過靜態(tài)的表現(xiàn),如圖標(biāo),而沒有相關(guān)行為的描述是很難創(chuàng)造出直覺上的隱語??蛻舳四_本體系結(jié)構(gòu):提供更加復(fù)雜的導(dǎo)航和定位幫助,然而,提供精巧界面單元的腳本語言工具顯得有一點(diǎn)點(diǎn)簡陋,客戶端應(yīng)用體系結(jié)構(gòu):更復(fù)雜的語言元素和標(biāo)準(zhǔn)庫使得客戶端應(yīng)用比腳本支持更復(fù)雜的邏輯行為,然而,需要在界面設(shè)計(jì)方面有相當(dāng)豐富的經(jīng)驗(yàn),僅僅使用大量的GUI控件本身會隱藏著危險(xiǎn)。多媒體內(nèi)容:真正的多媒體應(yīng)用是在提供隱語、導(dǎo)航及定位方面達(dá)到最高境界。 Page71易用性不需要任何方面的訓(xùn)練就可以使用這些程序。 性能-1分布在客戶端和服務(wù)器端的計(jì)算及相互間的通信都會對性能產(chǎn)生至關(guān)重要的影響。性能瓶頸包括:初始化時(shí)間,直到第一個(gè)用戶交互可以完成(下載時(shí)間);客戶端處理一個(gè)用戶交互所需的時(shí)間(客戶裝入);需要與服務(wù)器交互的次數(shù)(服務(wù)器依賴度);從客戶端向服務(wù)器傳輸消息及反饋結(jié)果所需的時(shí)間(網(wǎng)絡(luò)傳輸時(shí)間);服務(wù)器處理用戶交互所璧氖奔洌ǚ衿髯叭耄服務(wù)器處理用戶交互所需的時(shí)間(服務(wù)器裝入服務(wù)器端邏輯體系結(jié)構(gòu):非常短的初始化下載時(shí)間。而且因?yàn)榭蛻舨怀袚?dān)任何的計(jì)算,所以只需要很少的用戶資源。所以這對服務(wù)器的依賴程度相當(dāng)高。導(dǎo)致客戶同服務(wù)器之間的大量信息的傳輸。最后,服務(wù)器不得不自己實(shí)現(xiàn)所有的計(jì)算(服務(wù)器裝入)。導(dǎo)致了大量的響應(yīng)時(shí)間,一般用于用戶交互需要較少的應(yīng)用中。 Page72性能-1分布在客戶端和服務(wù)器端的計(jì)算及相互間的通信都會對性能性能-2(2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智慧城市建設(shè)擔(dān)保協(xié)議3篇
- 運(yùn)動隊(duì)訓(xùn)練中的科技裝備與智能化管理
- 2025版商業(yè)綜合體物業(yè)商鋪裝修管理及維護(hù)服務(wù)協(xié)議書3篇
- 網(wǎng)絡(luò)信息搜索與評價(jià)能力的培養(yǎng)方案設(shè)計(jì)
- 小學(xué)數(shù)學(xué)課堂的科學(xué)實(shí)驗(yàn)教學(xué)探討
- 2025年粵教新版選修6歷史下冊階段測試試卷含答案
- 二零二五年度離婚協(xié)議中夫妻共同財(cái)產(chǎn)分割及子女撫養(yǎng)協(xié)議范本6篇
- 2025年蘇人新版必修1歷史下冊月考試卷含答案
- 2025版無息醫(yī)療健康貸款合同書示例3篇
- 2025年浙教版選擇性必修三語文下冊階段測試試卷
- 2024年內(nèi)蒙古自治區(qū)專業(yè)技術(shù)人員繼續(xù)教育公需課考試答案
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺手術(shù)送手術(shù)時(shí)間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語四年級上冊譯林版三起含答案
- 清華大學(xué)考博英語歷年真題詳解
- 人教版三年級上冊口算題(全冊完整20份 )
- 屋面及防水工程施工(第二版)PPT完整全套教學(xué)課件
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點(diǎn)含答案
- 新生入學(xué)登記表
評論
0/150
提交評論