版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> Using the XMLHttpRequest Object</p><p> Now that we’ve discussed the history of dynamic Web applications and introduced Ajax, it’s time to cover the heart of the matter: how to use the XMLHttpReq
2、uest object. While Ajax is more of a technique than a technology, without widespread support for XMLHttpRequest, Google Suggest and Ta-da List wouldn’t exist as we currently know them. And you wouldn’t be reading this bo
3、ok! </p><p> XMLHttpRequest was originally implemented in Internet Explorer 5 as an ActiveX component. That it worked only in Internet Explorer kept most developers from using XMLHttpRequest until its recen
4、t adoption as a de facto standard in Mozilla 1.0 and Safari 1.2. It’s important to note that XMLHttpRequest is not a W3C standard, though much of the functionality is covered in a new proposal: the DOM Level 3 Load and S
5、ave Specification. Because it is not a standard, its behavior may differ slightly from </p><p> That said, if a significant number of your users still access your site or application with older browsers, yo
6、u will need to consider your options. As we discussed in Chapter 1, if you are going to use Ajax techniques, you need to either develop an alternative site or allow your application to degrade gracefully. With most usage
7、 statistics indicating that only a small fraction of browsers in use today lack XMLHttpRequest support, the chances of this being a problem are slim. However, you need to</p><p> Overview of the XMLHttpRequ
8、est Object </p><p> You must first create an XMLHttpRequest object using JavaScript before you can use the object to send requests and process responses. Since XMLHttpRequest is not a W3C standard, you can
9、use JavaScript in a couple of ways to create an instance of XMLHttpRequest. Internet Explorer implements XMLHttpRequest as an ActiveX object, and other browsers such as Firefox, Safari, and Opera implement it as a native
10、 JavaScript object. Because of these differences, the JavaScript code must contain logic to cr</p><p> The previous statement might send shivers down the spines of those who remember the days when the imple
11、mentation of JavaScript and the DOM varied widely among browsers. Fortunately, in this case you don’t need elaborate code to identify the browser type to know how to create an instance of the XMLHttpRequest object. All y
12、ou need to do is check the browser’s support of ActiveX objects. If the browser supports ActiveX objects, then you create the XMLHttpRequest object using ActiveX. Otherwise, you</p><p> If the call to windo
13、w.ActiveXObjectfails, then the JavaScript branches to the elsestatement, which determines whether the browser implements XMLHttpRequest as a native JavaScript object. If window.XMLHttpRequestexists, then an instance of X
14、MLHttpRequest is created. </p><p> Thanks to JavaScript’s dynamically typed nature and that XMLHttpRequest implementations are compatible across various browsers, you can access the properties and methods o
15、f an instance of XMLHttpRequest identically, regardless of the method used to create the instance. This greatly simplifies the development process and keeps the JavaScript free of browser-specific logic. </p><
16、p> Methods and Properties </p><p> Table 2-1 shows some typical methods on the XMLHttpRequest object. Don’t worry; we’ll talk about these methods in greater detail in a moment. </p><p> T
17、able 2-1. Standard XMLHttpRequest Operations</p><p> Let’s take a closer look at these methods. void open(string method, string url, boolean asynch, string username, string password): This method sets up yo
18、ur call to the server. This method is meant to be the script-only method of initializing a request. It has two required arguments and three optional arguments. You are required to supply the specific method you are invok
19、ing (GET, POST, or PUT) and the URL of the resource you are calling. You may optionally pass a Boolean indicating whether this </p><p> void send(content): This method actually makes the request to the serv
20、er. If the request was declared as asynchronous, this method returns immediately, otherwise it waits until the response is received. The optional argument can be an instance of a DOM object, an input stream, or a string.
21、 The content passed to this method is sent as part of the request body. </p><p> void setRequestHeader(string header, string value): This method sets a value for a given header value in the HTTP request. It
22、 takes a string representing the header to set and a string representing the value to place in the header. Note that it must be called after a call to open(). </p><p> Of all these methods, the two you will
23、 use the most are open() and send(). The XMLHttpRequest object has a number of properties that prove themselves quite useful while designing Ajax interactions. </p><p> void abort(): This method is really q
24、uite self-explanatory—it stops the request.</p><p> string getAllResponseHeaders(): The core functionality of this method should be familiar to Web application developers—it returns a string containing resp
25、onse headers from the HTTP request. Headers include Content-Length, Date, and URI.</p><p> string getResponseHeader(string header): This method is a companion to getAllResponseHeaders() except it takes an a
26、rgument representing the specific header value you want, returning this value as a string. </p><p> In addition to these standard methods, the XMLHttpRequest object exposes the properties listed in Table 2-
27、2. You’ll use these properties extensively when working with XMLHttpRequest. </p><p> Table 2-2. Standard XMLHttpRequest Properties </p><p> An Example Interaction </p><p> At th
28、is point, you might be wondering what a typical Ajax interaction looks like. Figure 2-1 </p><p> Figure 2-1. Standard Ajax interaction</p><p> Unlike the standard request/response approach fou
29、nd in a standard Web client, an Ajax application does things a little bit differently. </p><p> 1. A client-side event triggers an Ajax event. Any number of things can trigger this, from a simple onchange e
30、vent to some specific user action. You might have code like this: </p><p> <input type="text"d="email" name="email" onblur="validateEmail()";> </p><p
31、> 2. An instance of the XMLHttpRequest object is created. Using the open() method, the call is set up—the URL is set along with the desired HTTP method, typically GETor POST. The request is actually triggered via a c
32、all to the send() method. </p><p> 3. A request is made to the server. This might be a call to a servlet, a CGI script, or any server-side technique. </p><p> 4. The server can do anything you
33、 can think of, including accessing a data store or even another system. </p><p> 5. The request is returned to the browser. The Content-Typeis set to text/xml—the XMLHttpRequest object can process results o
34、nly of the text/html type. In more complex instances, the response might be quite involved and include JavaScript, DOM manipulation, or other related technologies. Note that you also need to set the headers so that the b
35、rowser will not cache the results locally. You do this with the following code: </p><p> response.setHeader("Cache-Control", "no-cache");</p><p> response.setHeader("P
36、ragma", "no-cache");</p><p> In general, the various frameworks and toolkits available on the Web take care of the basic wiring and the browser abstractions, and some add user interface compo
37、nents. Some are purely client based; others require work on the server. Many of these frameworks have just begun development or are in the early phases of release; the landscape is constantly changing, with new libraries
38、 and versions coming out regularly. As the field matures, the best ones will become apparent. Some of the more mature </p><p><b> Summary </b></p><p> While Ajaxesque techniques ha
39、ve been used for many years, the recent adoption of the XMLHttpRequest object by modern browsers has ushered in a new era of developing rich Web applications. In this chapter, we established the basics of working with th
40、e heart of Ajax, the XMLHttpRequest object. At this point, you know the methods and properties of the XMLHttpRequest object, and we’ve shown you some simple examples of their use. As you can see, the object is pretty str
41、aightforward and hides much of </p><p><b> 英文翻譯</b></p><p> 使用XMLHttpRequest對象</p><p> 我們已經(jīng)討論了動態(tài)Web應(yīng)用的發(fā)展歷史,并簡要介紹了Ajax,下面再來討論問題的關(guān)鍵:如何使用XMLHttpRequest對象。盡管與其說Ajax是一種技術(shù),
42、不如說是一種技巧,但如果沒有對XMLHttpRequest的廣泛支持,Google Suggest和Ta-da List可能不會像我們看到的有今天這樣的發(fā)展,而你可能也不會看到手上的這本書!</p><p> XMLHttpRequest最早是在IE 5中以ActiveX組件形式實(shí)現(xiàn)的。由于只能在IE中使用,所以大多數(shù)開發(fā)人員都沒有用XMLHttpRequest,直到最近,Mozilla 1.0和Safari
43、1.2把它采用為事實(shí)上的標(biāo)準(zhǔn),情況才有改觀。需要重點(diǎn)說明的是,XMLHttpRequest并不是一個W3C標(biāo)準(zhǔn),不過許多功能已經(jīng)涵蓋在一個新提案中:DOM Level 3加載和保存規(guī)約(DOM Level 3 Load and Save Specification)。因?yàn)樗皇菢?biāo)準(zhǔn),所以在不同瀏覽器上的表現(xiàn)也稍有區(qū)別,不過大多數(shù)方法和屬性都得到了廣泛的支持。當(dāng)前,F(xiàn)irefox、Safari、Opera、Konqueror和Intern
44、et Explorer都以類似的方式實(shí)現(xiàn)了XMLHttpRequest對象的行為。</p><p> 前面已經(jīng)說過,如果大量用戶還是在使用較舊的瀏覽器訪問網(wǎng)站或應(yīng)用,就要三思了。第1章討論過,在這種情況下,如果要使用Ajax技術(shù),要么需要開發(fā)一個候選網(wǎng)站,要么你的應(yīng)用應(yīng)當(dāng)能妥善地降級。大多數(shù)使用統(tǒng)計(jì)表明,在當(dāng)前使用的瀏覽器中只有極少數(shù)不支持XMLHttpRequest,所以一般情況下不會存在這個問題。不過,還是
45、應(yīng)該查看Web日志,確定你的用戶在使用什么樣的客戶端來訪問網(wǎng)站。 </p><p> XMLHttpRequest對象概述</p><p> 在使用XMLHttpRequest對象發(fā)送請求和處理響應(yīng)之前,必須先用JavaScript創(chuàng)建一個XMLHttpRequest對象。由于XMLHttpRequest不是一個W3C標(biāo)準(zhǔn),所以可以采用多種方法使用JavaScript來創(chuàng)建XMLHtt
46、pRequest的實(shí)例。Internet Explorer把XMLHttpRequest實(shí)現(xiàn)為一個ActiveX對象,其他瀏覽器(如Firefox、Safari和Opera)把它實(shí)現(xiàn)為一個本地JavaScript對象。由于存在這些差別,JavaScript代碼中必須包含有關(guān)的邏輯,從而使用ActiveX技術(shù)或者使用本地JavaScript對象技術(shù)來創(chuàng)建XMLHttpRequest的一個實(shí)例。</p><p>
47、很多人可能還記得從前的那段日子,那時不同瀏覽器上的JavaScript和DOM實(shí)現(xiàn)簡直千差萬別,聽了上面這段話之后,這些人可能又會不寒而栗。幸運(yùn)的是,在這里為了明確該如何創(chuàng)建XMLHttpRequest對象的實(shí)例,并不需要那么詳細(xì)地編寫代碼來區(qū)別瀏覽器類型。你要做的只是檢查瀏覽器是否提供對ActiveX對象的支持。如果瀏覽器支持ActiveX對象,就可以使用ActiveX來創(chuàng)建XMLHttpRequest對象。否則,就要使用本地Java
48、Script對象技術(shù)來創(chuàng)建。</p><p> 如果window.ActiveXObject調(diào)用失?。ǚ祷豱ull),JavaScript就會轉(zhuǎn)到else語句分支,確定瀏覽器是否把XMLHttpRequest實(shí)現(xiàn)為一個本地JavaScript對象。如果存在window. XMLHttpRequest,就會創(chuàng)建XMLHttpRequest的一個實(shí)例。</p><p> 由于JavaScr
49、ipt具有動態(tài)類型特性,而且XMLHttpRequest在不同瀏覽器上的實(shí)現(xiàn)是兼容的,所以可以用同樣的方式訪問XMLHttpRequest實(shí)例的屬性和方法,而不論這個實(shí)例創(chuàng)建的方法是什么。這就大大簡化了開發(fā)過程,而且在JavaScript中也不必編寫特定于瀏覽器的邏輯。</p><p><b> 方法和屬性</b></p><p> 表2-1顯示了XMLHttpR
50、equest對象的一些典型方法。不要擔(dān)心,稍后就會詳細(xì)介紹這些方法。</p><p> 表2-1 標(biāo)準(zhǔn)XMLHttpRequest操作</p><p> 下面來更詳細(xì)地討論這些方法。</p><p> void open(string method, string url, boolean asynch, string username, string pas
51、sword):這個方法會建立對服務(wù)器的調(diào)用。這是初始化一個請求的純腳本方法。它有兩個必要的參數(shù),還有3個可選參數(shù)。要提供調(diào)用的特定方法(GET、POST或PUT),還要提供所調(diào)用資源的URL。另外還可以傳遞一個Boolean值,指示這個調(diào)用是異步的還是同步的。默認(rèn)值為true,表示請求本質(zhì)上是異步的。如果這個參數(shù)為false,處理就會等待,直到從服務(wù)器返回響應(yīng)為止。由于異步調(diào)用是使用Ajax的主要優(yōu)勢之一,所以倘若將這個參數(shù)設(shè)置為fal
52、se,從某種程度上講與使用XMLHttpRequest對象的初衷不太相符。不過,前面已經(jīng)說過,在某些情況下這個參數(shù)設(shè)置為false也是有用的,比如在持久存儲頁面之前可以先驗(yàn)證用戶的輸入。最后兩個參數(shù)不說自明,允許你指定一個特定的用戶名和密碼。</p><p> void send(content):這個方法具體向服務(wù)器發(fā)出請求。如果請求聲明為異步的,這個方法就會立即返回,否則它會等待直到接收到響應(yīng)為止??蛇x參數(shù)
53、可以是DOM對象的實(shí)例、輸入流,或者串。傳入這個方法的內(nèi)容會作為請求體的一部分發(fā)送。</p><p> void setRequestHeader(string header, string value):這個方法為HTTP請求中一個給定的首部設(shè)置值。它有兩個參數(shù),第一個串表示要設(shè)置的首部,第二個串表示要在首部中放置的值。需要說明,這個方法必須在調(diào)用open()之后才能調(diào)用。</p><p&
54、gt; 在所有這些方法中,最有可能用到的就是open()和send()。XMLHttpRequest對象還有許多屬性,在設(shè)計(jì)Ajax交互時這些屬性非常有用。</p><p> void abort():顧名思義,這個方法就是要停止請求。</p><p> string getAllResponseHeaders():這個方法的核心功能對Web應(yīng)用開發(fā)人員應(yīng)該很熟悉了,它返回一個串,其
55、中包含HTTP請求的所有響應(yīng)首部,首部包括Content-Length、Date和URI。</p><p> string getResponseHeader(string header):這個方法與getAllResponseHeaders()是對應(yīng)的,不過它有一個參數(shù)表示你希望得到的指定首部值,并且把這個值作為串返回。</p><p> 除了這些標(biāo)準(zhǔn)方法,XMLHttpReque
56、st對象還提供了許多屬性,如表2-2所示。處理XMLHttpRequest時可以大量使用這些屬性。</p><p> 表2-2 標(biāo)準(zhǔn)XMLHttpRequest屬性</p><p><b> 交互示例</b></p><p> 看到這里,你可能想知道典型的Ajax交互是什么樣。圖2-1顯示了Ajax應(yīng)用中標(biāo)準(zhǔn)的交互模式。</p>
57、;<p> 不同于標(biāo)準(zhǔn)Web客戶中所用的標(biāo)準(zhǔn)請求/響應(yīng)方法,Ajax應(yīng)用的做法稍有差別。</p><p> 1. 一個客戶端事件觸發(fā)一個Ajax事件。從簡單的onchange事件到某個特定的用戶動作,很多這樣的事件都可以觸發(fā)Ajax事件??梢杂腥缦碌拇a:</p><p> <input type="text"d="email&quo
58、t; name="email" onblur="validateEmail()";></p><p> 圖2-1 標(biāo)準(zhǔn)Ajax交互</p><p> 2. 創(chuàng)建XMLHttpRequest對象的一個實(shí)例。使用open()方法建立調(diào)用,并設(shè)置URL以及所希望的HTTP方法(通常是GET或POST)。請求實(shí)際上通過一個send()方法調(diào)用觸發(fā)。
59、</p><p> 3. 向服務(wù)器做出請求??赡苷{(diào)用servlet、CGI腳本,或者任何服務(wù)器端技術(shù)。</p><p> 4. 服務(wù)器可以做你想做的事情,包括訪問數(shù)據(jù)庫,甚至訪問另一個系統(tǒng)。</p><p> 5.請求返回到瀏覽器。Content-Type設(shè)置為text/xml——XMLHttpRequest對象只能處理text/html類型的結(jié)果。在另外一
60、些更復(fù)雜示例中,響應(yīng)可能涉及更廣,還包括JavaScript、DOM管理以及其他相關(guān)的技術(shù)。需要說明,你還需要設(shè)置另外一些首部,使瀏覽器不會在本地緩存結(jié)果。為此可以使用下面的代碼:</p><p> response.setHeader("Cache-Control", "no-cache");</p><p> response.setHead
61、er("Pragma", "no-cache");</p><p> 通常,Web上提供的各種框架和工具包負(fù)責(zé)基本的連接和瀏覽器抽象,有些還增加了用戶界面組件。有一些純粹基于客戶,還有一些需要在服務(wù)器上工作。這些框架中的很多只是剛開始開發(fā),或者還處于發(fā)布的早期階段,隨著新的庫和新的版本的定期出現(xiàn),情況還在不斷發(fā)生變化。這個領(lǐng)域正在日漸成熟,最具優(yōu)勢的將脫穎而出。一些比較成
62、熟的庫包括libXmlRequest、RSLite、sarissa、JavaScript對象注解(JavaScript Object Notation,JSON)、JSRS、直接Web遠(yuǎn)程通信(Direct Web Remoting,DWR)和Rails on Ruby。這個領(lǐng)域日新月異,所以應(yīng)當(dāng)適當(dāng)?shù)嘏渲媚愕腞SS收集器,及時收集有關(guān)Ajax的所有網(wǎng)站上的信息!</p><p><b> 小結(jié)<
63、;/b></p><p> 盡管Ajax風(fēng)格的技術(shù)已經(jīng)用了很多年,但直到最近XMLHttpRequest對象才得到現(xiàn)代瀏覽器的采納,而這也為開發(fā)豐富的Web應(yīng)用開啟了一個新的時代。在本章中,我們討論了Ajax核心(即XMLHttpRequest對象)的相關(guān)基礎(chǔ)知識。我們了解了XMLHttpRequest對象的方法和屬性,而且展示了使用XMLHttpRequest對象的簡單示例??梢钥吹?,這個對象相當(dāng)簡單,
64、無需你考慮其中很多的復(fù)雜性。適當(dāng)?shù)厥褂肑avaScript,再加上基本的DOM管理,Ajax可以提供高度的交互性,而這在此前的Web上是做不到的。</p><p><b> 參考資料:</b></p><p> [1] SQL Server 2005數(shù)據(jù)庫基礎(chǔ)應(yīng)用/周濤,呂偉臣,夏永和編著.—北京:清華大學(xué)出版社,2007.12 本書介紹了SQL Server
65、 2005的歷史和現(xiàn)狀,系統(tǒng)的宏觀架構(gòu),SQL Server 各種工具的使用,如何配置一個常用的SQL Server運(yùn)行環(huán)境,以及如何完成日常的數(shù)據(jù)庫使用和管理任務(wù)等內(nèi)容。</p><p> [2] 基于SQL Server的數(shù)據(jù)庫技術(shù)及應(yīng)用/劉麗霞,莊奕琪編著.—西安:西北工業(yè)大學(xué)出版社,2007.3 本書分為管理維護(hù)篇、SQL基礎(chǔ)篇和Transact-SQL高級篇,分別適用于數(shù)據(jù)庫維護(hù)人員
66、、設(shè)計(jì)開發(fā)數(shù)據(jù)庫的初學(xué)者和大中專院校的學(xué)生以及有一定基礎(chǔ)的數(shù)據(jù)庫開發(fā)人員使用。</p><p> [3]呂廷杰 客戶關(guān)系管理與主題分析 北京:人民郵電出版社,2001.11 詳細(xì)地闡述了客戶關(guān)系管理(CRM)的基本理論及其具體應(yīng)用,在基本理論方面,除了敘述CRM的基本概念外,還著重介紹了CRM的實(shí)施與技術(shù)應(yīng)用、管理框架、客戶分析和競爭分析等幾方面的內(nèi)容</p>
67、;<p> [4|維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)分析(第二版)[M].清華大學(xué)出版社2006 212-216</p><p> [5] ASP.NET數(shù)據(jù)庫高級教程(C#篇)/李應(yīng)偉, 姚素霞, 景麗編著.—北京:清華大學(xué)出版社,2004.07 本書以技術(shù)專題的方式,循序漸進(jìn)地介紹使用ASP.NET開發(fā)Web應(yīng)用程序的方法和技巧。其內(nèi)容以ASP.NET為基礎(chǔ),選取Web應(yīng)用程序的典型實(shí)
68、例進(jìn)行講解。</p><p> [6]薩師煊等.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2000,15-18.</p><p> 本書系統(tǒng)全面地闡述數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)理論、基本技術(shù)和基本方法。</p><p> [7]何榮勤.CRM原理設(shè)計(jì)實(shí)踐[M].北京:電子工業(yè)出版社, 2006. 本書在準(zhǔn)確定義CRM概念的基礎(chǔ)上,對CRM應(yīng)用系統(tǒng)的設(shè)計(jì)思想、設(shè)計(jì)平
69、臺、CRM實(shí)踐的最佳方法、CRM軟件項(xiàng)目的確立和實(shí)施等進(jìn)行了多方位、詳細(xì)的論述。</p><p> [8]王輝.Visual C#程序設(shè)計(jì) 實(shí)用教程[M].北京:清華大學(xué)出版社.2007 </p><p> 全書系統(tǒng)介紹了C#編程的相關(guān)內(nèi)容,從基本語法講起,由淺入深、循序漸進(jìn)地介紹了C#語言的編程技巧和面向?qū)ο缶幊痰木琛V饕獌?nèi)容包括C#的基本語法、面向?qū)ο缶幊?、Windows應(yīng)用
70、程序設(shè)計(jì)、數(shù)據(jù)庫編程、網(wǎng)絡(luò)編程、Wed應(yīng)用程序及Wed服務(wù)、異常處理機(jī)制以及程序的部署和打包等</p><p> [9]楊德宏,李玲 客戶關(guān)系管理成功案例 北京:機(jī)械工業(yè)出版社,2002.1 書共例舉了5個行業(yè),如金融業(yè)、制造業(yè)、IT業(yè)、郵政及通信業(yè)和零售業(yè)共20多個案例。通過對這些案例的分析,有助于讀者對CRM更深入的了解、認(rèn)識項(xiàng)目及商家、成為企業(yè)選擇解決方案的參考依據(jù)。本書詳細(xì)介紹了成功實(shí)施CRM的企
71、業(yè)經(jīng)驗(yàn)和步驟,0以此為樣例指導(dǎo)企業(yè)實(shí)施。</p><p> [10]魏崢.ADO.NET程序設(shè)計(jì)教程與實(shí)驗(yàn)[M].北京:清華大學(xué)出版社, 2007. 本書強(qiáng)調(diào)實(shí)用性,為此以大量的實(shí)例重點(diǎn)介紹使用Visual Basic.NET開發(fā)數(shù)據(jù)庫應(yīng)用程序時,ADO.NET對象模型中每個對象的使用方法,包括Connection、Command、DataAdapter、DataSet、DataTable等。<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)頁設(shè)計(jì)外文翻譯
- 網(wǎng)頁設(shè)計(jì)外文翻譯
- 面向?qū)ο笤O(shè)計(jì)外文翻譯
- 面向?qū)ο笤O(shè)計(jì)外文翻譯 (2)
- 網(wǎng)頁設(shè)計(jì)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯
- 外文翻譯-對象技術(shù)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)外文翻譯2
- 網(wǎng)頁制作過程外文翻譯
- 面向?qū)ο笾型馕姆g
- 網(wǎng)頁版式的基本類型[外文翻譯]
- asp.net網(wǎng)頁的生成【外文翻譯】
- 創(chuàng)建一個flash網(wǎng)頁【外文翻譯】
- 外文翻譯--基于jsp網(wǎng)頁自動生成工具的設(shè)計(jì)與實(shí)現(xiàn)
- 變頻器設(shè)計(jì)使用參考外文翻譯
- 外文翻譯---對象的創(chuàng)建和存在時間
- 文檔對象模型和動態(tài)html外文翻譯
- java的面向?qū)ο缶幊掏馕馁Y料翻譯
- 網(wǎng)頁對象內(nèi)容自動換行控制方法
- 計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯--jsp內(nèi)置對象
- 教案使用表格布局網(wǎng)頁
評論
0/150
提交評論