【正文】
, true)。 input type=text size=20 id=userid name=id onkeyup=validate()。 。 這些用處并不全、但是它們說(shuō)明了 AJAX交互使得 WEB應(yīng)用可以作到大量以前無(wú)法作到的事情。 民調(diào)不是最有效的手段 來(lái) 確保數(shù)據(jù)在網(wǎng)頁(yè)上是最電流。 AJAX清楚的將表示邏輯和數(shù)據(jù)分離開(kāi)來(lái)、一個(gè) HTML網(wǎng)頁(yè)能夠在需要的時(shí)候獲取以比特為單位的數(shù)據(jù)片段!這不同于以前的有一點(diǎn)變化就必須刷新整個(gè)頁(yè)面的做法。 JavaScript再使用這個(gè) XML文檔更新或改動(dòng)本網(wǎng)頁(yè)的文檔對(duì)象模型( DOM)、名詞 AJAX就是近年來(lái)出現(xiàn)的用與描述這種交互模式的新名詞。一些技術(shù)比如JavaScript和 CSS已經(jīng)非常成熟、你可以使用他們高效的創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)、并可以跑在大多數(shù)主流瀏覽器上。如果你一定要兼容老一代瀏覽器那還是不要用 AJAX了。 負(fù)荷需求: 基于客戶(hù)端的事件,一個(gè) HTML頁(yè)面可以 在后臺(tái) 獲取更多的數(shù)據(jù),讓網(wǎng)頁(yè)瀏覽器加載更快 智能客戶(hù)端接口控制: 諸 如樹(shù) ,菜單,數(shù)據(jù)表,豐富的文本編輯器,日歷和進(jìn)度條允許用戶(hù)更好地互動(dòng)和互動(dòng)的 HTML 網(wǎng)頁(yè),一般 而言 不需要重新加載頁(yè)面。 例如,您可以混合內(nèi)容或數(shù)據(jù)的第三 方應(yīng)用程序,例如谷歌地圖與您自己的應(yīng)用程序。 圖 1描述的細(xì)節(jié), AJAX的相互作用,將提供驗(yàn)證邏輯。 現(xiàn)在讓我們來(lái) 詳細(xì) 看看每一步 AJAX互動(dòng) 1. 客戶(hù)端事件發(fā)生。 var url = validate?id= + encodeURIComponent()。URL服務(wù)器端組件,該對(duì)象將互動(dòng) 。 如這個(gè)例子中,數(shù)據(jù)公布( id )是作為一個(gè) URL參數(shù)。 servlet處理 XMLHttpRequest就和處理其他 HTTP請(qǐng)求一樣: 下面的例子顯示一個(gè)服務(wù)器提取 id參數(shù)的要求,并確認(rèn)是否已采取參數(shù)。amp。在這個(gè)例子中,我們假設(shè),使用者輸入 duke的編號(hào)。 是 XMLHttpRequest對(duì)象將只處理請(qǐng)求并在ContentType的唯一 text/xml ,并設(shè)置 CacheControl ,以 no cache將瀏覽器從本地緩存響應(yīng)情況下,重復(fù)請(qǐng)求相同的 URL (包括 URL參數(shù))可能會(huì)返回不同的反應(yīng)。 } parseMessages()方法處理從服務(wù)端返回的 XML文檔、該方法使用 message元素的值去調(diào)用 setMessage()方法來(lái)改變 HTML DOM。 另外的改變 HTML DOM的方法是動(dòng)態(tài)創(chuàng)建新元素然后將其作為子元素插入目標(biāo)元素下、如下所示: script type=text/javascript function setMessage(message) { var userMessageElement = (userIdMessage)。 (messageElement)。 見(jiàn) 瀏覽器的差別。 見(jiàn) 限制進(jìn)入您的 Ajax服務(wù) 的更多信息,保護(hù)您的服務(wù)。 什么是顯而易見(jiàn)的 事 ,著名的 Web應(yīng)用正日益成為 并 更具互動(dòng)性。s look at each step of the Ajax interaction in more detail. 1. A client event occurs. JavaScript technology functions are called as the result of an event. In this case, the function validate() may be mapped to a onkeyup event on a link or form ponent. input type=text size=20 id=userid name=id onkeyup=validate()。 (null)。 private HashMap users = new HashMap()。 !(())) { (text/xml)。 ().write(invalid)。 or add, remove, or modify child elements. One mon means to change the body content of an element is to set the innerHTML property on the element as in the following example. script type=text/javascript ... function setMessage(message) { var mdiv = (userIdMessage)。 messageText = Valid User Id。s applications can bee more interactive, providing the end user with a better experience. Using Ajax requires that you use the latest browser versions that support the XMLHttpRequest object needed for Ajax interactions. Using Ajax also requires a great deal of clientside JavaScript technology and CSS. As an application architect or developer, you will need to weigh the needs of having a rich application against browser support, architecture plexity, and developer training. As the Ajax programming model evolves, existing technologies and frameworks will make this transition easier. What is evident is that prominent web applications are increasingly being more interactive. Are yours? 。 messageText = Invalid User Id。 modify the element39。 } } } In this example, a simple HashMap is used to contain the users. In the case of this example, let us assume that the user typed duke as the ID. 5. The ValidateServlet returns an XML document containing the results. The user ID duke is present in the list of user IDs in the users HashMap. The ValidateServlet will write an XML document to the response containing a message element with the value of invalid. More plex usecases may require DOM, XSLT, or other APIs to generate the response. (text/xml)。 if ((targetId != null) amp。 (id= + encodeURIComponent())。 } (GET, url, true)。s put all the pieces together and look at an Ajaxenabled Java application. Let39。 作為應(yīng)用架構(gòu)師或開(kāi)發(fā)人員,您將要權(quán)衡 這樣的 需要 具有豐富的應(yīng)用程序?qū)g覽器的支持,結(jié)構(gòu)復(fù)雜,技術(shù)和開(kāi)發(fā)培訓(xùn)。 不善的設(shè)計(jì)基于 Ajax的應(yīng)用程序可以打開(kāi)自己黑客的攻擊或剽竊。 標(biāo)準(zhǔn)化 XMLHttpRequest對(duì)象: XMLHttpRequest對(duì)象是尚未加入的 JavaScript技術(shù)規(guī)范,這意味著行為可能會(huì)有所變化,這取決于客戶(hù)端。 (color, red)。 } /script body div id=userIdMessage/div /body innerHTML屬性被改變以后網(wǎng)頁(yè)可以立即體現(xiàn)出變化、如果 innerHTML屬性?xún)?nèi)部包含象 image、 iframe這樣的元素、那么其所指定的資源內(nèi)容一樣被瀏覽器解析顯示。可以使用 XML文檔的字符串表示、如下所示: message valid /message 上面的例子是一個(gè)簡(jiǎn)單的 XML片段、實(shí)際應(yīng)用可能包含更多: function parseMessage() { var message = (message)[0]。 ().write(invalid)。 ().write(invalid)。 } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String targetId = (id)。 如果用 JavaScript產(chǎn)生表單元素值、必須確保值編碼的正確、 JavaScript有一個(gè) escape()函數(shù)用于保障正確的編碼、并把 特定字符正確的忽略掉。 如果一個(gè) HTTP GET ,此內(nèi)容可能是 null 或空白。 } 該 validate()函數(shù)創(chuàng)建一個(gè) XMLHttpRequest對(duì)象,并要求公開(kāi)功能的對(duì)象。 var req。 6. XMLHttpRequest對(duì)象調(diào)用 callback()函數(shù)和過(guò)程的結(jié)果。 一個(gè) web應(yīng)用包含一個(gè)靜態(tài)的網(wǎng)頁(yè), 或 HTML頁(yè)面中生成的 JSP技術(shù) 包含 HTML表單,需要服務(wù)器端的邏輯來(lái)驗(yàn)證表單數(shù)據(jù)而無(wú)需刷新頁(yè)面。 部分 更新 : 一個(gè) HTML頁(yè)面可以提交表單數(shù)據(jù)的需要,而不需要一整頁(yè)刷新。而我們所談的 WEB應(yīng)用專(zhuān)注于客戶(hù)端把 HTML文檔當(dāng)作模版或容器、客戶(hù)端向這個(gè)容器中插入內(nèi)容、作到這些的原理就是每當(dāng)客戶(hù)端發(fā)生事件、客戶(hù)端都可以向服務(wù)端 發(fā)出請(qǐng)求并使用服務(wù)端返回的 XML數(shù)據(jù)。但是現(xiàn)在由于XMLHttpRequest對(duì)象技術(shù)已經(jīng)在各大平臺(tái)的主流瀏覽器上普及、所以這種模仿的情況越來(lái)越少了。 畢業(yè)設(shè)計(jì) (論文 )外文資料翻譯 學(xué) 院 : 計(jì)算機(jī)工程學(xué)院 專(zhuān)業(yè)班級(jí) : 計(jì)算機(jī)科學(xué)與技術(shù) 056 學(xué)生姓名 : 陳燕 學(xué) 號(hào): 110511606 指導(dǎo)教師 : 朱敏 外文出處 : (外文 ) /technicalArticles 附 件 : ; 指導(dǎo)教師評(píng)語(yǔ): 簽名: 年 月 日 異步 JavaScript技術(shù)和 XML ( AJAX )與 Java平臺(tái) 使用過(guò) Flickr、 GMail,、 Google、 Suggest或 Google地圖的人都知道一 種全新的動(dòng)態(tài) WEB應(yīng)用正在成型、這些應(yīng)用看上去和傳統(tǒng)桌面應(yīng)用非常相似、他們不依賴(lài)于插件或者瀏覽器特效。以前 WEB開(kāi)發(fā)者使用插件、 applets 或者隱藏框架來(lái)仿效這種交互模式。以前的傳統(tǒng)服務(wù)端 WEB應(yīng)用專(zhuān)注于為每一個(gè)客戶(hù)端的每一次請(qǐng)求生成 HTML頁(yè)面、每一次客戶(hù)端接到響應(yīng)都要刷新和重新渲染整個(gè)頁(yè)面。 看到這個(gè)博客條目對(duì) 彗星使用灰熊更多的發(fā)展,推動(dòng)服務(wù)器與 Java技術(shù) 。 讓我們考慮一個(gè)例子。 ValidateServlet返回一個(gè) XML文件 , 其中載有結(jié)果。 創(chuàng)建和配置 一個(gè) XMLHttpRequest對(duì)象 。 (null)。 執(zhí)行到 (null)的時(shí)候發(fā) 出請(qǐng)求。 (id= + escape())。 (duke,account data)。 (CacheControl, no