Ajax
2008年10月15日9:36:12
創建新的XMLHttpRequest對象:
<script language="javascript" type="text/javascript">
var request = new XMLHttpRequest();
</script>
javaScript 不要求指定變量類型
創建 XMLHttpRequest 的 Java 偽代碼:
XMLHttpRequest request = new XMLHttpRequest();
JavaScript 中用
var
創建一個變量,給它一個名字(如 “request”),然后賦給它一個新的 XMLHttpRequest
實例。此后就可以在函數中使用該對象了。發送請求:
1.設置服務器URL:var url = "/myservlet/ajax/2.jsp";
如果需要增加另一個參數,只需要將其附加到 URL 中并用 “與”(
&
)字符分開 [第一個參數用問號(?
)和腳本名分開]。?"phone=" + escape(phone)
2.打開請求: request.open("GET",url,true);
五個參數:request-type;url;asynch;username;password;
3.發送請求: request.send(null);
一個參數:要發送的內容。前面url本身已經發送過數據了,不需要再用send發送了,如果要是發送安全信息或xml則需要指定
4.指定回調方法: request.onreadystatechange = updatePage;
注意:onreadystatechange允許指定一個回調函數。在代碼中設置的位置要在send之前,這樣服務器在回答完成請求之后才能查看該屬性。
處理響應:
function updatePage(){
alert("Serve is done");
}
就緒狀態:
request.readyState 當等于4的時候調用回調函數。
另外:其他的幾種狀態是:
- 0:請求未初始化(還沒有調用
open()
)。 - 1:請求已經建立,但是還沒有發送(還沒有調用
send()
)。 - 2:請求已發送,正在處理中(通?,F在可以從響應中獲取內容頭)。
- 3:請求在處理中;通常響應中已有部分數據可用了,但是服務器還沒有完成響應的生成。
- 4:響應已完成;您可以獲取并使用服務器的響應了。
<input type="button" onclick="getData()" value="click"/>
<script type="text/javascript">
function getData(){
var request = new XMLHttpRequest();
alert("Ready state is:"+request.readyState);
}
</script>
查看處理請求的就緒狀態:
<input type="button" onclick="getData()" value="click"/>
<script type="text/javascript">
var request;
function getData(){
request = new XMLHttpRequest();
alert("Ready state is:"+request.readyState);
var url = "/myservlet/ajax/2.jsp";
request.open("GET",url,true);
request.onreadystatechange=updatePage;
request.send(null);
}
function updatePage(){
alert("updatePage() called with ready sate of"+request.readyState);
}
</script>
響應數據:
var new = request.responseText;
responseText屬性