麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

淺談使用XMLHttpRequest與DOM對象

2024-09-05 20:54:46
字體:
來源:轉載
供稿:網友
XMLHttpRequest對象

在使用XMLHttpRequest對象發送請求和處理響應之前,必須先用JavaScript創建一個XMLHttpRequest對象。由于XMLHttpRequest不是一個W3C標準,所以可以采用多種方法使用JavaScript來創建XMLHttpRequest的實例。IE把XMLHttpRequest實現一個ActiveX對象,其他瀏覽器(如Firefox、Safari和Opera)把他實現為一個本地JavaScript對象。由于存在這些差別,JavaScript代碼中必須包含有關的邏輯,從而使用ActiveX技術或者使用本地JavaScript對象技術來創建XMLHttpRequest的一個事例。

如果瀏覽器支持ActiveX對象,就可以使用ActiveX來創建XMLHttpRequest對象。否則,就要使用本地JavaScript對象技術來創建。代碼清單2-1展示了編寫跨瀏覽器的JavaScript代碼來創建XMLHttpRequest對象實例。

代碼清單2-1 創建XMLHttpRequest對象的一個實例
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}

可以看到,創建XMLHttpRequest對象相當容易。首先,要創建一個全局作用域變量xmlHttp來保存這個對象的引用。createXMLHttpRequest方法完成創建XMLHttpRequest實例的具體工作。這個方法只有簡單的分支邏輯(選擇邏輯)來確定如果創建對象。對window.ActiveXObject的調用會返回一個對象,也可能返回null,if語句會把調用返回的結果看作是true或false(如果返回對象則為true,返回null則為false),以此指示瀏覽器是否支持ActiveX控件,相應地得知瀏覽器是不是IE。如果確定是,則通過實例化ActiveXObject的一個新實例來創建XMLHttpRequest對象,并傳入一個串指示要創建何種類型的ActiveX對象。在這個例子中,為構造函數提供的字符串是Microsoft.XMLHTTP,這說明我們想創建XMLHttpRequest的一個實例。

如果window.ActiveXObject調用失敗(返回null),JavaScript就會轉到else語句分支,確定瀏覽器是否把XMLHttpRequest實現為一個本地JavaScript對象。如果存在window.XMLHttpRequest,就會創建XMLHttpRequest的一個實例。

XMLHttpRequest對象的屬性:
onreadystatechange 狀態改變的事件觸發器
readyState 對象狀態(integer): 0 = 未初始化 1 = 讀取中 2 = 已讀取 3 = 交互中 4 = 完成
responseText 服務器進程返回數據的文本版本
responseXML 服務器進程返回數據的兼容DOM的XML文檔對象
status 服務器返回的狀態碼, 如:404 = "文件未找到" 、200 ="成功"
statusText 服務器返回的狀態文本信息


XMLHttpRequest對象的方法:
abort() 停止當前請求
getAllResponseHeaders() 作為字符串返回完整的headers
getResponseHeader("headerLabel") 作為字符串返回單個的header標簽
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 設置未決的請求的目標 URL,方法,和其他參數
send(content) 發送請求
setRequestHeader("label", "value") 設置header并和請求一起發送


方法的詳細說明:
void open(string method,string url,boolean asynch,string username,string password):
這個方法會建立對服務器的調用。這是初始化一個請求的純腳本方法,它有兩個必要參數,還有3個可選參數。要提供調用的特定方法(GET、POST 或 PUT),還要提供所調用資源的URL。另外還可以傳遞一個Boolean值,指示這個調用是異步的還是同步的。默認值為true,表示請求本質上是異步的。如果這個參數為false,處理就會等待,直到從服務器返回響應為止。由于異步調用是使用Ajax的主要優勢之一,所以倘若這個參數設置為false,從某種程度上XMLHttpRequest對象的初衷不太相符。不過,前面已經說過,在某些情況下這個參數設置為false也是有用的,比如在持久存儲頁面之前可以先驗證用戶的輸入。最后兩個參數不說自明,允許你指定一個特定的用戶名和密碼。

void send(content):
這個方法具體向服務器發出請求。如果請求聲明為異步的,這個方法就會立即返回,否則它會等待直到接收到響應為止。可選參數可以是DOM對象的實例、輸入流、或者串。傳入這個方法的內容會作為請求體的一部分發送。

void serRequestHeader(string header,string value):
這個方法為HTTP請求中一個指定的首部設置值。他有兩個參數,第一個串表示要設置的首部,第二個串表示要在首部中放置的值。需要說明,這個方法的內容會作為請求體的一部分發送。

void abort():
顧名思義,這個方法就是要停止請求。

string getAllResponseHeaders():
這個方法的核心功能對Web應用開發人員應該很熟悉了,它返回一個串,其中包含HTTP請求的所有響應首部,首部包括ContentLength、Date和URI。

string getResponseHeader(string header):
這個方法與getAllResponseHeaders()是對應的,不過它有一個參數表示你希望得到的指定首部值,并且把這個值作為串返回。

DOM對象

文檔對象模型是與平臺和語言無關的接口,允許程序和腳本動態地訪問和更新文檔的內容,結構和樣式。文檔可以進一步處理,處理的結果可以放回到所提供的頁面中。如果服務端返回的是XML,使用responseXML即可直接創建DOM來操作這個文件。
childNodes 返回當前元素所有子元素集合
firstChil 返回當前元素的第一個子元素
lastChild 返回當前元素的最后一個子元素
nextSibling 返回緊跟在當前元素后面的元素(平級)
previousSibling 返回緊跟在當前元素之前的元素(平級)
nodeValue 指定表示元素值的讀/寫屬性
parentNode 返回元素的父節點


DOM對象的方法:
getElementById(id) (document) 獲取有指定唯一ID屬性值文檔中的元素
getElementsByTagName(name) 返回當前元素中有指定標記名的子元素的集合
hasChildNodes() 返回一個布爾值,指示元素是否有子元素
getAttribute(name) 返回元素的屬性值,屬性由name指定


動態創建內容所用的W3C DOM屬性和方法
document.createElement(tagName) 文檔對象上的createElement方法可以創建由tagName指定的元素。如果以串div作為方法參數,就會生成一個div元素
document.createTextNode(text) 文檔對象的createTextNode方法會創建一個包含靜態文本的節點
element.appendChild(childNode) appendChild方法將指定的節點childNode增加到當前元素的子節點列表
element.getAttribut(name)
element.setAttribut(name, value)獲取和設置元素中name屬性的值
element.insertBefore(newNode, targetNode) 這個方法將節點newNode作為當前元素的子節點插到targetNode元素前面
element.removeAttribute(name) 這個方法從元素中刪除屬性name
element.removeChild(childNode) 從元素中刪除子元素childNode
element.replaceChild(newNode,oldNode) 將節點oldNode替換為節點newNode
element.hasChildnodes() 返回一個布爾值,指示元素是否有子元素
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天天草夜夜骑 | 久久久久久久91 | 亚洲国产综合在线观看 | 黄视频网站免费在线观看 | 欧日韩在线 | 免费国产一级特黄久久 | 国产亚洲综合一区二区 | 久久99久久98精品免观看软件 | 午夜在线小视频 | av在线免费观看不卡 | 国产91亚洲精品久久久 | 亚洲va国产va | 久久精品一区二区三区不卡牛牛 | 欧美1区2区 | 色中色在线视频 | 久久亚洲成人网 | 5xsq在线视频 | 在线观看免费av网 | 永久免费在线观看av | 有色视频在线观看 | 国产午夜免费福利 | 欧美精品一级 | 美国人成人在线视频 | 国产女厕一区二区三区在线视 | 日日噜噜噜噜久久久精品毛片 | 欧美视频国产 | 黄wwww| 日韩伦理电影免费观看 | 日韩午夜片 | 久久免费观看一级毛片 | 精品久久久久久久久久久下田 | 一级性生活视频 | 国产欧美一区二区三区免费看 | 毛片免费视频观看 | 澳门一级淫片免费视频 | 成人毛片免费播放 | 日韩美女电影 | 成年人免费黄色片 | 久久av免费观看 | 欧洲精品久久久久69精品 | 久久久久久久一区二区三区 |