當前位置:首頁 » 網頁前端 » ajaxweb
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ajaxweb

發布時間: 2022-09-20 16:29:01

① 如何使用AJAX調用Web服務方法

這個問題怎麼說呢,ajax其實就是javascript發送請求方式的封裝。首先要

引入兩個jar包到你項目的webcontent/WEB-INF/lib文件夾下,這兩個包是ajax

的包分別叫做commons-logging.jar和dwr.jar.然後需要兩個配置文件,配置在

WEB-INF文件夾下。一個是web.xml,另一個是dwr.xml。web.xml文件總需要配置

你的ajax的dwr的servlet,這個類在你引入的包中存在的。這個servlet被實例

化之後,用來處理你所有通過ajax發送的請求。然後來配置dwr.xml。這個配置

文件的作用是將你頁面中<script>標簽下制定的方法中的js對象和你自己寫出來

的java類的實例化的對象一一對應起來。這樣,你就可以通過發送ajax請求來調

用你後台寫好的類中的方法。該方法你可以通過ajax傳入參數,也可以通過ajax

來處理該方法的返回值。大概流程就是這樣。

我也是新手,希望能夠幫忙到你。共同進步!

② 怎麼給現有網站添加一個AJAX Web窗體

其實ajax web窗體較之一般Web窗體除了多了一個ScriptManager控制項,沒有本質區別。 可以選擇先創建一個Web窗體,然後添加如下代碼: <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server" /> </div> </form> </body> 也可以有選擇的添加如下代碼: <head runat="server"> <title></title> <script type="text/javascript"> function pageLoad() { } </script> </head>

③ 如何使用ajax開發web應用程序

一、簡介

AJAX,一個非同步JavaScript和XML的縮略詞,是最近出來的技術詞語。非同步意味著你可以經由超文本傳輸協議(HTTP)向一個伺服器發出請求並且在等待該響應時繼續處理另外的數據。這就意味著,例如,你可以調用一個伺服器端腳本來從一個資料庫中以XML方式檢索數據,把數據發送到存儲在一個資料庫的伺服器腳本,或者簡單地裝載一個XML文件以填充你的Web站點而不需刷新該頁面。然而,在這項新技術提供巨大能力的同時,它也引起了在"Back"按鈕問題上的很多爭論。本文將幫助你確定在真實世界中何時使用AJAX是最佳選擇。

首先,我假定你對縮略詞JavaScript和XML部分有一個基本了解。盡管你能通過AJAX請求任何類型的文本文件,但是我在此主要集中討論XML。我將解釋怎樣在真實世界中使用AJAX以及怎樣在一個工程中評估它的價值。在你讀完本文後,你將會明白什麼是AJAX,在什麼情況下,為什麼以及怎樣使用這項技術。你將要學習,在保持給用戶提供直觀體驗的同時怎樣創建對象,發出請求以及定製響應。

我已創建了一個適合於本文的示例工程(你可以下載源代碼)。這個示例實現了一個簡單的請求-它裝載一個包含頁面內容的XML文件並且分析數據以把它顯示在一個HTML頁面中。
二、常規屬性和方法

表1和2提供了一個屬性和方法的概述- 它們為Windows Internet Explorer 5,Mozilla,Netscape 7,Safari 1.2,和Opera等瀏覽器所支持。

表1屬性

屬性 描述

onreadystatechange 當請求對象變化時該事件處理器激活。

readyState 返回指示對象的當前狀態的值。

responseText 來自伺服器的響應串的版本 。

responseXML 來自伺服器的響應的DOM兼容的文檔對象。

status 來自伺服器的響應的 狀態碼。

statusText 以一個字元串形式返回的狀態消息。

表2方法

方法 描述

Abort() 取消當前HTTP請求。

getAllResponseHeaders() 檢索所有的HTTP頭值。

getResponseHeader("headerLabel") 從響應體中檢索一個HTTP頭部的值。

open("method","URL"[,asyncFlag[,"userName" [,"password"]) 初始化一個MSXML2.XMLHTTP請求,並從該請求指定方法,URL和認證信息 。

send(content) 發送一個HTTP請求到伺服器並接收響應。

setRequestHeader ("label", "value") 指定一個HTTP頭的名字。
三、從哪裡開始

首先,你需要創建XML文件-後面我們對之進行請求並作為頁面內容進行分析。你正在請求的文件必須與 目標工程駐留在相同的伺服器上。

下一步,創建發出請求的HTML文件。當頁面通過使用頁面主體 中的onload方法進行載入時,該請求發生。接著,該文件需要一個有ID的div標簽,這樣當我們准備好要 顯示內容時就可以對之進行定位。當你做完所有這些,你的頁面的主體上去,如下:
<body onload="makeRequest('xml/content.xml'); ">

<div id=""></div>

</body>
四、創建請求對象

為了創建請求對 象,你必須檢查是否瀏覽器使用XMLHttpRequest或ActiveXObject。這兩個對象之間的主要區別在於使用 它們的瀏覽器。Windows IE 5 及以上版本使用ActiveX對象; 而Mozilla,Netscape 7,Opera和Safari 1.2及以上版本使用XMLHttpRequest對象。另外一個區別是你創建對象的方式:Opera,Mozilla, Netscape和Safari允許你簡單地調用該對象的構造器,但是Windows IE需要把對象的名字傳遞到ActiveX 構造器中。下面是怎樣創建代碼來決定要使用哪個對象和怎樣創建它的示例:

if (window.XMLHttpRequest)
{ request = new XMLHttpRequest(); }
else if (window.ActiveXObject)
{ request = new ActiveXObject("MSXML2.XMLHTTP"); }
五、發出請求

現在既然你已經創建了你的請求對象,那麼你已經為向伺服器發 出請求作了准備。創建一個到事件處理器的參考以聽取onreadystatechange事件。然後,該事件處理器 方法將在狀態發生變化時作出響應。一旦我們完成請求,我們就開始創建這個方法。打開連接以GET或 POST一個定製的URL-在此是一個content. xml,並且設置一個布爾定義-是否你想要進行非同步調用。

現在到了發出請求的時間了。在這個示例中,我使用了null,因為我們使用的是GET; 為了使用 POST,你需要使用下面這個方法發出一個查詢串:
request.onreadystatechange = onResponse;

request.open("GET". url, true);

request.send (null);
六、定製載入和錯誤處理消息

你為onreadystatechange方法創建的事件處理器 正是集中進行載入和處理錯誤的場所。現在到了考慮用戶並針對他們與之交互的內容的狀態提供反饋的 時候了。在這個實例中,我針對所有的裝載狀態代碼提供反饋,並且也對最經常發生的錯誤處理狀態代 碼提供一些基本的反饋。為了顯示請求對象的當前狀態,readyState屬性包括顯示在下表中的一些值。

值 描述

0 未初始化,對象沒有用數據進行初始化。

1 裝載中,對象正在裝載它 的數據。

2 裝載結束,對象完成了它的數據的裝載。

3 可交互,用戶能與對象交互了, 盡管它還沒有裝載結束。

4 完成,對象已經完全被初始化。

W3C中有很長的一串有關HTTP 狀態代碼的定義。我選擇了兩個狀態代碼:

200:請求成功了。

404:伺服器沒有找到與所 請求的文件相匹配的任何東西。

最後,我檢查任何另外的狀況代碼-它們將生成一個錯誤並提供 一個一般錯誤信息。下面是一個代碼示例-你可以用之來處理這些情況。注意,我在定位我們前面在HTML 文件的主體中創建的div ID並且對它應用裝載和/或錯誤信息-通過innerHTML方法-這個方法用於設置在 div對象的開始和結束標簽之間的HTML:

if(obj.readyState == 0)
{ document.getElementById('').innerHTML = "Sending Request..."; }
if(obj.readyState == 1)
{ document.getElementById('').innerHTML = "Loading Response..."; }
if(obj.readyState == 2)
{ document.getElementById('').innerHTML = "Response Loaded..."; }
if(obj.readyState == 3)
{ document.getElementById('').innerHTML = "Response Ready..."; }
if(obj.readyState == 4){
if(obj.status == 200){ return true; }
else if(obj.status == 404)
{
// 添加一個定製消息或把用戶重定 向到另外一個頁面
document.getElementById('').innerHTML = "File not found";
}
else
{document.getElementById('').innerHTML = "There was a problem retrieving the XML."; }
當狀況代碼為200 時,這意味著請求成功。下面開始進行響應了。

七、分析響應

當你准備好分析來自請求 對象的響應時,真正的工作開始了。現在你可以用你請求的數據開始工作。僅為測試目的,在開發期間 ,可以使用responseText和responseXML屬性來顯示來自響應的原始數據。為了存取XML響應中的結點, 首先使用你創建的請求對象,定位到responseXML屬性以檢索(你可能已經猜測出來)來自響應的XML。定 位到documentElement-它檢索一個到XML響應的根結點的參考。
var response = request.responseXML.documentElement;
現在既然你有了到響應的根結點的參考,那麼你可以使 用getElementsByTagName()以結點名字來檢索childNodes。下面一行用一個頭部的nodeName來定位一個 childNode:

response.getElementsByTagName('header') [0].firstChild.data;

使用firstChild.data可以允許你存取該元素中的文本:

response.getElementsByTagName('header')[0].firstChild.data;

下面是怎樣 創建這些代碼的完整的例子:

var response = request.responseXML.documentElement;
var header = response.getElementsByTagName ('header')[0].firstChild.data;
document.getElementById ('').innerHTML = header;

八、需求分析

現在既然你知道怎樣使用 AJAX的基礎知識,那麼下一步就是決定是否在一工程使用它。須記住的最重要的事情是,在你還沒有刷 新頁面時你無法使用"Back"按鈕。為此,可以先專注於你的工程中的一小部分-它能夠從使用 這種類型的交互中受益。例如,你可以創建一個表單-它在用戶每次輸入一個輸入欄位或一個字母時查詢 一個腳本以便進行實時校驗。你可以創建一個拖放頁面-在釋放一項時,它能夠把數據發送到一個腳本中 並把該頁面的狀態保存到一個資料庫中。使用AJAX的理由毫無疑問是存在的; 並且這種使用無論對開發 者還是用戶都會帶來益處; 這全依賴於具體的條件和執行情況。

還有其它方法可用來解決 "Back"按鈕的問題,例如使用Google Gmail-它現在能夠為你的操作提供一種撤消功能而不刷 新該頁面。以後還會出現許多更具創造性的例子-它們將通過提供給開發者創建獨特實時的體驗的手段給 用戶帶來更大的好處。

九、結論

盡管AJAX允許我們構建新的和改進的方式來與一個WEB頁 面進行/交互; 但是作為開發者,我們需要牢記產品是不考慮技術的; 它關心的是用戶以及其如何與用戶 進行交互。沒有了用戶群,我們構建的工程毫無用處。基於這個標准,我們就能評估應該使用什麼技術 以及何時使用它們來創建對相應用戶有用的應用。

④ AJAX 對web伺服器有什麼要求求答案

至少也要到10k一級
AJAX意味著更平凡的伺服器請求。雖然每次的數據量不大,但是對於AJAX站點來說,每個用戶的伺服器請求次數將增加。而降低請求開銷的一個重要辦法是使用 HTTP persistent connection。
不過對於大型站點來說,普通web伺服器其實基本上不能從 HTTP connection persistent 上得到好處,因為向apache之類的伺服器能夠同時處理的連接數目有限。當用戶數目巨大時,伺服器必須斷開舊客戶的連接來處理新客戶的請求。
writely使用普通的ajax方式,別人的修改要過10-30後才會出現。這可以說是用戶能夠忍受的極限了,但同時也是普通web伺服器所能忍受的極限。:) 。對於此類應用,最好的方案是使用伺服器推的方法。但這就要求客戶和伺服器之間有一條persistent connection.
非同步腳本支持:
語言引擎對web server的性能影響很大,目前常用的兩類包括:
.net, java (可以在運行時編譯成本機代碼,直接運行)
php,asp ,javascript(在運行時編譯成位元組碼,由執行器執行)
這兩類的性能差別非常明顯,第二類語言的執行速度一般不會超過第一類語言的50%,而第一類語言的執行速度和編碼的風格關系很大,使用固定類型的代碼一般比使用通用類型的代碼快10到100倍,這一點是可以理解的,因為固定類型的代碼編譯器可以編譯成高效的本機代碼,直接使用cpu指令運算,而通用類型的代碼每次運算時都必須檢測變數類型,然後通過計算函數計算。
但是對於web服務語言來說,由於基本上都是IO相關的事務,例如訪問資料庫,讀寫文件等, 很少進行科學運算的工作,而大運算量的工作一般被包裝的底層支持庫中執行。使用編譯形語言所帶來的性能提升其實並不是非常顯著。
另外目前語言的一個顯著特點是沒有在語言級別提供類似於系統調用的非同步介面。所有的外部函數調用必須同步完成,這導致了每個系統線程同時只能運行一個腳本函數。這種結構非常不利於系統的擴展。
這里所說的系統調用是指當調用一個函數時,停止腳本的執行,退出腳本上下文,當系統執行完需要的操作時繼續進入腳本上下文執行。這非常類似於OS中的系統調用,OS的內核可以掛起進行系統調用的線程,等操作完成後再繼續執行。
etechi server的腳本引擎介面必須提供這方面的支持。介面:
希望能夠提供的介麵包括:ecom
通過vm/ecom 對象模型提供的介面,

⑤ web前端助手 ajax怎麼用

什麼是AJAX
AJAX: A New Approach to Web Applications XML
AJAX是老技術新思想。它所包含的內容我們之前都接觸過。如下:
(1)使用XHTML和CSS的基於標準的表示技術
(2)使用DOM進行動態顯示和交互

(3)使用XML和XSLT進行數據交換和處理
(4)使用XMLHttpRequest進行非同步數據檢索

(5)使用Javascript將以上技術融合在一起
就像將幾種酒混合成雞尾酒一樣,AJAX讓老的技術換發出新的生命力。
AJAX的作用
(1)改善表單驗證方式,不再需要打開新頁面,也不再需要將整個頁面數據提交
(2)不需刷新頁面就可改變頁面內容,減少用戶等待時間
(3)按需獲取數據,每次只從伺服器端獲取需要的數據
(4)讀取外部數據,進行數據處理整合
(5)非同步與伺服器進行交互,在交互過程中用戶無需等待,仍可繼續操作
AJAX用模式的流程與傳統Web應用模式相比
AJAX應用的流程是:在瀏覽器中輸入數據->點擊按鈕提交請求->用戶可以繼續做其他事情;Servlet在處理數據,並發回數據->瀏覽器收到響應->瀏覽器中的當前頁面顯示響應結果,這其中仍然有些過程由於時間短暫使你忽略了它的所在,但實際上這些過程都是存在的。
傳統Web開發思維模式的一個特點是通過form表單提交請求信息,然後轉向一個新的頁面處理請求,並顯示服務
器端返回的信息。
ajax缺點
(1)AJAX沒有Back和History功能,即對瀏覽器機制的破壞
(2)AJAX的安全問題。

(3)對搜索引擎支持較弱。
(4)客戶端過肥,太多客戶端代碼造成開發上的成本。
(5)破壞程序的異常處理機制,違背URL和資源定位的初衷。
AJAX適用場景

小結

由於可以在頁面內與伺服器通信,不必整體刷新頁面,減少了數據傳輸量,提高了Web應用的響應速度,給用戶
帶來全新的感受。可以認為AJAX就是Web標准和Web應用的可用性理論的集大成者。它極大地改善了Web應用的可用性
和用戶的交互體驗,最終得到了用戶和市場的廣泛認可。所以可以說,AJAX就是用戶和市場的選擇。

⑥ 關於web伺服器內部如何實現ajax調用的問題

Ajax 簡介

Ajax 由 HTML、JavaScript™ 技術、DHTML 和 DOM 組成,這一傑出的方法可以將笨拙的 Web 界面轉化成交互性的 Ajax 應用程序。本文的作者是一位 Ajax 專家,他演示了這些技術如何協同工作 —— 從總體概述到細節的討論 —— 使高效的 Web 開發成為現實。他還揭開了 Ajax 核心概念的神秘面紗,包括 XMLHttpRequest 對象。

五年前,如果不知道 XML,您就是一隻無人重視的丑小鴨。十八個月前,Ruby 成了關注的中心,不知道 Ruby 的程序員只能坐冷板凳了。今天,如果想跟上最新的技術時尚,那您的目標就是 Ajax。

但是,Ajax 不僅僅 是一種時尚,它是一種構建網站的強大方法,而且不像學習一種全新的語言那樣困難。

一、業務需求

在開發中,當一個列表頁面載入完成後,我需要根據列表每一項的id去伺服器端獲取對應的數據然後再把獲取的數據賦給當前id對應的標簽。

例如如下表格:

⑦ AJAX應用和傳統Web應用有什麼不同

用戶需要點擊」Submit」按鈕來發送或者接受數據信息,然後等待伺服器響應請求,頁面重新載入。因為伺服器每次都會返回一個新的頁面, 所以傳統的web應用有可能很慢而且用戶交互不友好。使用AJAX技術, 就可以使Javascript通過XMLHttpRequest對象直接與伺服器進行交互。通過HTTP Request, 一個web頁面可以發送一個請求到web伺服器並且接受web伺服器返回的信息(不用重新載入頁面),展示給用戶的還是通一個頁面,用戶感覺頁面刷新,也看不到到Javascript後台進行的發送請求和接受響應。

⑧ VS 2010怎麼創建AJAX WEB窗體呢

您好:今天太晚了,我就大概講一下吧希望對您有所啟發。
AJAX是以一種第三方插件存在的,安裝Vs2010後並不會有這個功能,需要你到微軟官網下載,然後添加引用到工具箱內。

1.要創建Web窗體,首先在你新建項目是必須選擇網站。
2.確定您的項目是Web應用(也就是網站)網站文件擴展名應該是 「*.aspx」才對。
3.打開頁面找到左側工具箱右擊,有個「添加項」之類的具體名字我不清楚了。(我打開vs看了一下是叫「選擇項」)
4.然後添加你下載的 AJAX 的 dll。
5.工具欄就會多很多關於 AJAX 的控制項了。

選擇你需要的控制項拖動到頁面就可以了。

以上問題如有疑問,您可以選擇繼續追問。希望對您有用。

⑨ 如何使用ajax開發web應用程序第1/2頁

在過去,由於為了獲得新數據而不得不重新載入web頁面(或者載入其他頁面)導致web應用程序發展被限制。雖然有其他方法可用(不載入其他頁面),但是這些技術都沒有被很好地支持而且有bug成災的趨向。在過去的幾個月里,一個過去並不被廣泛支持的技術已經被越來越多的web沖浪者(web surfers??是指瀏覽器還是瀏覽者?)所接受,它給了開發者更多的自由開發先進的web應用程序。這些通過javascript來非同步取得xml數據的應用程序,被親切的稱為「Ajax應用程序」(Asynchronous Javascript and XML applications)。在這篇文章中,我將會解釋如何通過Ajax來取回一個遠程的XML文件並更新一個web page,並且隨著這個系列的繼續,我將討論更多的方法,使用ajax技術將你的web應用程序提升到一個新的層次.
這第一步就是創建一個帶一些數據的XML文件。我們將這個文件命名為data.xml。它是一個簡單的XML文件,而在一個真實的程序中,它會復雜許多,但對於我們的例子來說,簡單明了是最合適地。
<?xml version="1.0" encoding="UTF-8"?> <root> <data> 這是一些示例數據,它被保存在一個XML文件中,並被JavaScript取回。 </data> </root>
現在讓我們創建一個簡單的web頁麵包含一些示例數據。這個頁面將是我們的js腳本所在,並且這個頁面將會讓用戶們訪問柄看到Ajax腳本的運行。我們把它命名為ajax.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用ajax開發web應用程序 - 示例</title>
</head>
<body>
<h1>使用ajax開發web應用程序</h1>
<p>這個頁面演示了AJAX技術如何通過動態讀取一個遠程文件來更新一個網頁的內容--不需要任何網頁的重新載入。注意:這個例子對於禁止js的用戶來說沒有效果。</p>
<p id="xmlObj">
這是一些示例數據,它是這個網頁的默認數據 <a href="data.xml"
title="查看這個XML數據." onclick="ajaxRead('data.xml'); this.style.display='none'; return false">查看XML數據.</a>
</p>
</body>
</html>
注意,對於那些沒有javascript的用戶,我們直接鏈接到data.xml文件。對於那些允許運行javascript的用戶,函數「ajaxRead」將被運行,這個鏈接被隱藏,並不會被轉向到那個data.xml文件。函數「ajaxRead」現在還沒定義。所以如果你要檢驗上面的示例代碼,你會得到一個javascript錯誤。讓我們繼續並定義這個函數(還有其他的),讓你能夠看到ajax是如何工作的,下面的腳本要放到你的head標簽里:
<script type="text/javascript"><!--
function ajaxRead(file){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
updateObj('xmlObj', xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
}
}
xmlObj.open ('GET', file, true);
xmlObj.send ('');
}
function updateObj(obj, data){
document.getElementById(obj).firstChild.data = data;
}
//--></script>
這堆代碼有點多,讓我們一點點的進行。第一個函數叫做「ajaxRead」-也就是我們在頁面的「查看XML數據」鏈接中調用的函數,我們定義了一個「xmlObj」變數-這將作為客戶端(用戶正在查看的這個web頁面)以及服務端(web站點本身)之間的中間件。我們在一個if/else塊中定義這個對象:
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
這只是一個對不同對象是否可用的測試-某些瀏覽器實現了不同的XMLHttpRequest對象,所以當我們定義「xmlObj」作為我們的XMLHttpRequest對象時,我們不得不根據瀏覽器所實現的來定義它。如果沒有可用的XMLHttpRequest對象,我們將執行「return」語句結束這個函數以避免腳本錯誤。在大部分情況下,這個檢驗將返回一個XMLHttpRequest對象-這部分代碼應該能夠在絕大部分的瀏覽器上工作,除了少部分比較老的瀏覽器的異常情況(它能夠工作在ie5.01上,但是在netscape4上會使函數終止)。
接下來是這些代碼塊:
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
updateObj('xmlObj', xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
}
}
每次XMLHttpRequest的狀態發生變化,事件「onreadystatechange」就會被觸發。通過使用「xmlObj.onreadystatechange = function(){...}」我們能夠創建一個函數並讓它在這個XMLHttpRequest對象的狀態每次發生改變的時候立刻運行。這里總共有五個狀態,由0走到4。

0 – 尚未初始化(在這個XMLHttpRequest開始前)

1 – 載入(XMLHttpRequest初始化一結束)

2 – 載入結束(XMLHttpRequest一從伺服器上獲得一個回應)

3 – 交互(當XMLHttpRequest對象和伺服器連接中)

4 – 結束(當XMLHttpRequest被告知它已經完成了所有人物並結束運行)
這第五個狀態(數字4)就是我們能夠確定數據已經可用的標志,所以我們檢驗這個xmlObj.readyState是否等於「4」來確定數據是否可用,如果是4,我們運行updateObj函數。這個函數帶兩個參數:一個當前web頁面的元素ID(當前web頁面中要更新的元素)以及用於填充這個元素的數據。這個函數的運行方式在稍後將更詳細地解釋。
我們的web頁面的p元素有一個id「xmlData」,這就是我們准備更新的段落。我們正在取得的數據來自於XML文件,但它有點復雜。這里是它如何工作的原理。
xmlObj.responseXML屬性是一個DOM對象 - 它很象「document」對象,除了它來自遠程的XML文件。換句話說,如果你在data.xml中運行腳本,那xmlObj.responseXML就是一個「document」對象。因為我們知道這些,我們能夠通過「getElementsByTagName」方法取得任何XML節點。數據包含在一個命名為「<data>」的XML節點中,所以我們的任務很簡單:取得第一個(而且只有這一個)數據節點。因而,xmlObject.responseXML.getElementsByTagName("data")[0]返回XML文件中的第一個<data>節點。
注意:它返回的是XML節點,而不是節點中的數據-這個數據必須通過訪問XML節點的屬性取得,這就是下一步要說的。
接下來,取得數據只需要簡單的指定「firstChild.data」(firstChild指向了那個被<data>節點包含的文本節點,而這個「data」屬性則是這個文本節點的實際文本)。
xmlObj.open ('GET', file, true);
xmlObj.send ('');
這是我們的ajaxRead函數的最後一個部分。它說了些什麼?嗯,xmlObj的這個「open」方法打開了一個到伺服器(通過一個指定的協議,這里指定的是「GET」-你可以使用「USE」或者其他別的協議)的連接,去請求一個文件(在我們的例子里,變數「file」被作為一個參數賦給ajaxRead函數-data.xml),而且javascript可以同步(false)或者非同步(true,默認值)的處理請求。由於這是非同步的Javascript和XML(AJAX),我們將使用默認的非同步方式-在這個例子中,使用同步方式將不起作用。
這是我們函數中的最後一行,它簡單的發送一個空字元串回伺服器。如果沒有這行,xmlObj的readyState永遠不會到4,所以你的頁面永遠不會更新。這個send方法能夠用於作其他事情,但今天我只是用來從伺服器上取得數據-並不發送它-所以在這篇文章中我不準備介入任何關於send方法的細節。
function updateObj(obj, data){
document.getElementById(obj).firstChild.data = data;
}
現在再稍微解釋一下updateObj函數:這個函數使用一個新的值來更新當前頁面上任何指定的元素。他的第一個參數,「obj」是當前頁面中元素的ID-那個要被更新的對象;它的第二個參數,「data」是用來將那個將被替換值的對象(「obj」)的內容替換掉。一般來說,檢驗一下並確定當前頁面上確實有一個元素的ID是「obj」是比較明智的,但對我們的腳本的這個隔離級別來說校驗並不必要。這個函數更新的方式和我們之前從XML文件的「data」節點取得數據的方式類似-它定位它要更新的元素(這時候這個元素的ID代替了它的標簽名和在頁面中的索引)並設置這個元素的第一個子節點(文本節點)的data屬性為新的值。如果你需要使用HTML而不是純文本來更新一個元素,你也可以使用
document.getElementById(obj).innerHTML = data
這就是全部了
這個概念很簡單,而且代碼也不是很難。你能夠從某個地方讀取一個文件並且不需要重新載入這個web頁面。你有足夠的靈活性來作各種事情,包括從表單發送數據(不需要重新載入web頁面)並且使用一個服務端語言來動態生成XML文件。如果你需要更近一步,記得這個連接是很有用的-哦,還要記得Google是你朋友。在另外的文章中,我將解釋你如何配合服務端技術使用AJAX來構造強大的web應用程序。

⑩ web窗體和ajax web窗體有什麼區別嗎

有區別,ajax控制項包含了ScriptManger控制項,它是管理服務端腳本的控制項,載入AJAX WEB窗體的時候,它會從伺服器端發送ajax.js腳本到客戶端(具體腳本名稱我不記得)你可以自己查,