亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

詳解Ajax標簽導航

2024-09-01 08:26:19
字體:
來源:轉載
供稿:網友

到了ajax關鍵時刻了。

/* ===========================================================
* 函數名稱:ajaxUpdater(tarObj,sMethod,URL,parameters)
* 參數說明:tarObj - 異步獲取信息希望顯示的目標節點ID
* sMethod - 數據提交方法,兩個可選值get,post


* URL - 提交的目標URL地址
* parameters - URL后面接(傳遞)的參數
* 函數功能:將異步傳遞的目標URL地址返回的信息,無刷新的寫到目標
* 節點(tarObj)中
* 返 回 值:new Error() - 運行錯誤時返回一個報錯信息
* 使用方法:var myAjax = ajaxUpdater(msgBox,"get",URL,para);
============================================================ */
function ajaxUpdater(tarObj,sMethod,URL,parameters){
var oXmlHttp = createXMLHTTPRequest();

oXmlHttp.open(sMethod, URL+parameters, true);
oXmlHttp.onreadystatechange = function () {
if (oXmlHttp.readyState == 4) {
if (oXmlHttp.status == 200) {
if((tarObj)){
(tarObj).innerHTML = oXmlHttp.responseText;
}
else{
return false;
}
}
else {
throw new Error("有一個錯誤產生!");
}
}
}

oXmlHttp.send(null);
}

繞了這么多圈,又回到我們文章開始提到的,現在要開始運用XMLHttpRequest對象的相關知識了。

var oXmlHttp = createXMLHTTPRequest();首先是創建XMLHttpRequest對象,我們使用的是createXMLHTTPRequest():

/* ===========================================================
* 函數名稱:createXMLHTTPRequest()
* 參數說明:無參數
* 函數功能:創建XMLHttpRequest對象
* 返 回 值:XMLHTTPRequest對象
* 使用方法:var oXmlHttp = createXMLHTTPRequest();
============================================================ */
function createXMLHTTPRequest(){
// 非IE瀏覽器(Firefox,Opera),XMLHttpRequest對象是瀏覽器內置的一個對象
if (useXmlHttp){
return new XMLHttpRequest();
}
else if (useActiveX) { //在IE(IE< 7.0 = use ActiveX)瀏覽器中,XMLHttpRequest對象是以ActiveX控件的形式存在的
if (!XMLHTTP_VER) {
for (var i=0; i < ARR_XMLHTTP_VERS.length; i++){
try {
new ActiveXObject(ARR_XMLHTTP_VERS[i]);
XMLHTTP_VER = ARR_XMLHTTP_VERS[i]; // 獲取本地IE瀏覽器相應的XMLHttpRequest對象版本
break;
} catch (oError) {}
}
}
if (XMLHTTP_VER) {
return new ActiveXObject(XMLHTTP_VER);
}
else {
throw new Error("無法創建XMLHttpRequest對象!");
}
}
else {
throw new Error("您的瀏覽器不支持XMLHttpRequest對象!");
}
}

不同的瀏覽器XMLHttpRequest對象存在的形式不同,還有版本問題,哎,多寫點代碼來兼容吧。


// 方法:open
// 創建一個新的http請求,并指定此請求的方法、URL以及驗證信息
// 語法:oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
// 參數
// bstrMethod
// http方法,例如:POST、GET、PUT及PROPFIND。大小寫不敏感。

// bstrUrl
// 請求的URL地址,可以為絕對地址也可以為相對地址?

// varAsync[可選]
// 布爾型,指定此請求是否為異步方式,默認為true。如果為真,當狀態改變時會調用onreadystatechange屬性指定的回調函數。

// bstrUser[可選]
// 如果服務器需要驗證,此處指定用戶名,如果未指定,當服務器需要驗證時,會彈出驗證窗口。

// bstrPassword[可選]
// 驗證信息中的密碼部分,如果用戶名為空,則此值將被忽略。

// 備注:調用此方法后,可以調用send方法向服務器發送數據。 xmlhttp.Open("get", "http://localhost/example.htm", false);
// var book = xmlhttp.responseXML.selectSingleNode("//book[@id='bk101']");
// alert(book.xml);

oXmlHttp.open(sMethod, URL+parameters, true);

 

這里就是我們常說的異步提交,一般常用的也就是我這里用的3個參數提交方法(get和post兩個值),URL地址(URL+parameters,例子里的完整地址就是tarObj + "/" + tarObj + objId + ".htm?d=" + Math.random();),第三個(true,false)指定此請求是否為異步方式,默認為true。如果為真,當狀態改變時會調用onreadystatechange屬性指定的回調函數。

 

oXmlHttp.onreadystatechange = function () {
// 屬性:readyState
// 返回XMLHTTP請求的當前狀態
// 語法:lValue = oXMLHttpRequest.readyState;
// 備注:變量,此屬性只讀,狀態用長度為4的整型表示.定義如下:
// 0 (未初始化) 對象已建立,但是尚未初始化(尚未調用open方法)
// 1 (初始化) 對象已建立,尚未調用send方法
// 2 (發送數據) send方法已調用,但是當前的狀態及http頭未知
// 3 (數據傳送中) 已接收部分數據,因為響應及http頭不全,這時通過responseBody和responseText獲取部分數據會出現錯誤,
// 4 (完成) 數據接收完畢,此時可以通過通過responseBody和responseText獲取完整的回應數據
if (oXmlHttp.readyState == 4) {
// 屬性:status
// 返回當前請求的http狀態碼
// 語法:lValue = oXMLHttpRequest.status;
// 返回值:長整形標準http狀態碼,定義如下:
// Number:Description
// 100:Continue
// 101:Switching protocols
// 200:OK
// 201:Created
// 202:Accepted
// 203:Non-Authoritative Information
// 204:No Content
// 205:Reset Content
// 206:Partial Content
// 300:Multiple Choices
// 301:Moved Permanently
// 302:Found
// 303:See Other
// 304:Not Modified
// 305:Use Proxy
// 307:Temporary Redirect
// 400:Bad Request
// 401:Unauthorized
// 402:Payment Required
// 403:Forbidden
// 404:Not Found
// 405:Method Not Allowed
// 406:Not Acceptable
// 407:Proxy Authentication Required
// 408:Request Timeout
// 409:Conflict
// 410:Gone
// 411:Length Required
// 412:Precondition Failed
// 413:Request Entity Too Large
// 414:Request-URI Too Long
// 415:Unsupported Media Type
// 416:Requested Range Not Suitable
// 417:Expectation Failed
// 500:Internal Server Error
// 501:Not Implemented
// 502:Bad Gateway
// 503:Service Unavailable
// 504:Gateway Timeout
// 505:HTTP Version Not Supported
// 備注:長整形,此屬性只讀,返回當前請求的http狀態碼,此屬性僅當數據發送并接收完畢后才可獲取。
if (oXmlHttp.status == 200) {
// 屬性:responseBody
// 返回某一格式的服務器響應數據
// 語法:strValue = oXMLHttpRequest.responseBody;
// 備注:變量,此屬性只讀,以unsigned array格式表示直接從服務器返回的未經解碼的二進制數據。
alert(xmlhttp.responseBody);

// 屬性:responseStream
// 以Ado Stream對象的形式返回響應信息
// 語法:strValue = oXMLHttpRequest.responseStream;
// 備注:變量,此屬性只讀,以Ado Stream對象的形式返回響應信息。
alert(xmlhttp.responseStream);

// 屬性:responseText
// 將響應信息作為字符串返回
// 語法:strValue = oXMLHttpRequest.responseText;
// 備注:變量,此屬性只讀,將響應信息作為字符串返回。XMLHTTP嘗試將響應信息解碼為Unicode字符串,
// XMLHTTP默認將響應數據的編碼定為UTF-8,如果服務器返回的數據帶BOM(byte-order mark),XMLHTTP可
// 以解碼任何UCS-2 (big or little endian)或者UCS-4 數據。注意,如果服務器返回的是xml文檔,此屬
// 性并不處理xml文檔中的編碼聲明。你需要使用responseXML來處理。
alert(xmlhttp.responseText);

// 屬性:responseXML
// 將響應信息格式化為Xml Document對象并返回
// 語法:var objDispatch = oXMLHttpRequest.responseXML;
// 備注:變量,此屬性只讀,將響應信息格式化為Xml Document對象并返回。如果響應數據不是有效的XML文檔,
// 此屬性本身不返回XMLDOMParseError,可以通過處理過的DOMDocument對象獲取錯誤信息。

(tarObj).innerHTML = oXmlHttp.responseText;
}
}
}

 

本來想偷個懶,讓大家看我上邊說的那篇文章,想想也就是Ctrl+C&Ctrl+V,都貼出來吧!呵呵!??!

不過還沒有完,最后要說的就是innerHTML這個特性,這里我們還要感謝微軟啊,innerHTML就是它的專利,我們就是用它來改變指定DOM內的HTML字符串的,而不用刷新頁面。詳細的信息大家還是google一下吧,我也要休息下啊??!喝口茶先?。-^!

以上講了這么多,我們最后來看看,我們這個ajax標簽導航都用到了那些技術吧:

  1. xhtml
  2. CSS
  3. Javascript
  4. DOM
  5. XMLHttpRequest對象
  6. innerHTML

還有XML,我們這個例子沒有涉及到。東西雖小,包含的(web前端開發)知識可是都用到了?。?/p>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久av免费| 青草成人免费视频| 欧美日韩国产中文精品字幕自在自线| 亚洲精品美女视频| 久久6免费高清热精品| 国产有码一区二区| 亚洲欧美国产精品| 久久久av电影| 性夜试看影院91社区| 久久韩国免费视频| 日韩综合视频在线观看| 欧美专区在线视频| 久久乐国产精品| 日韩禁在线播放| 国产精品第二页| 成人免费午夜电影| 日韩性生活视频| 国产精品久久久久久久久久久久| 亚洲天堂第二页| 亚洲精品国产精品国自产在线| 亚洲电影免费观看高清完整版| 国产精品美女久久久久av超清| 久久影视免费观看| 国产一区二区三区久久精品| 国产亚洲欧洲黄色| 亚洲国产97在线精品一区| 亚洲成人激情在线| 欧美精品videossex88| 国产在线精品一区免费香蕉| 91高清免费在线观看| 深夜精品寂寞黄网站在线观看| 亚洲精品第一页| 色综合久久悠悠| 亚洲第一网站男人都懂| 日本高清不卡在线| 538国产精品一区二区免费视频| 久久精品国产v日韩v亚洲| 日韩欧美成人区| 91理论片午午论夜理片久久| 日韩免费在线播放| 欧美一区二区大胆人体摄影专业网站| 992tv成人免费影院| 欧美在线免费看| 欧日韩不卡在线视频| 日产精品久久久一区二区福利| 久久综合伊人77777尤物| 91九色单男在线观看| 色先锋资源久久综合5566| 91精品中国老女人| 亚洲欧美日韩精品久久奇米色影视| 国产香蕉97碰碰久久人人| 久久男人资源视频| 91精品久久久久久久久久久久久久| 欧美日韩国产va另类| 亚洲精品小视频在线观看| 精品美女国产在线| 国产热re99久久6国产精品| www高清在线视频日韩欧美| 国产成人精品视| 欧美极品xxxx| 91高清视频在线免费观看| 日韩网站在线观看| 成人免费午夜电影| 亚洲欧美日韩在线高清直播| 欧美一级电影在线| 亚洲电影免费观看高清完整版在线观看| 日韩精品久久久久久久玫瑰园| 77777少妇光屁股久久一区| 亚洲精品国产综合久久| 国产精品一香蕉国产线看观看| 欧美性视频精品| 欲色天天网综合久久| 欧美大肥婆大肥bbbbb| 国产精品旅馆在线| 欧美性猛交xxxx乱大交蜜桃| 精品无人国产偷自产在线| 98精品国产高清在线xxxx天堂| 国内精品久久久久久久| 欧美成人免费一级人片100| 国产精品一二区| 欧美性xxxxxx| 亚洲欧美日韩精品| 国产欧美 在线欧美| 日韩欧美成人网| 在线视频亚洲欧美| 欧美激情奇米色| 日韩欧美中文免费| 色妞色视频一区二区三区四区| 成人网址在线观看| 日韩av免费网站| 国产在线视频不卡| 毛片精品免费在线观看| 亚洲二区在线播放视频| 亚洲国产成人久久| 一本色道久久综合亚洲精品小说| 午夜精品久久久久久久久久久久久| 在线精品视频视频中文字幕| 精品成人乱色一区二区| 高清欧美性猛交xxxx黑人猛交| 色婷婷av一区二区三区久久| 亚洲成色www8888| 国产精品白嫩美女在线观看| 欧美成人黄色小视频| 欧美日韩国产在线看| 亚洲最新中文字幕| 国产成人精品999| 国产精品高潮呻吟久久av无限| 亚洲国产精品字幕| 欧美精品久久久久| 伊人伊人伊人久久| 日韩av一区二区在线观看| 国产欧美一区二区三区四区| 日韩av最新在线观看| 91精品综合视频| 国产精品伦子伦免费视频| 91av视频在线观看| 国产精品久久久久久久久借妻| 精品自在线视频| 久久高清视频免费| 91久久国产综合久久91精品网站| 成人免费直播live| 亚洲激情电影中文字幕| 亚洲视频自拍偷拍| 国产一区二区三区在线观看网站| 成人激情视频在线播放| 国产精品久久久久久久久久久久| 日韩有码在线电影| 久久人人爽国产| 国产精品一区二区久久久| 亚州国产精品久久久| 亚洲天堂av网| 亚洲福利视频二区| 北条麻妃一区二区在线观看| 亚洲春色另类小说| 欧美成人中文字幕| 欧美在线欧美在线| 国产精品极品美女粉嫩高清在线| 久久久久中文字幕2018| 久久国产视频网站| 国产精品网红福利| 国产精品久久久91| 国产亚洲免费的视频看| 国产亚洲aⅴaaaaaa毛片| 亚洲成人999| 亚洲精品97久久| 日韩精品免费在线播放| 亚洲男人天堂2019| 亚洲韩国日本中文字幕| 狠狠色噜噜狠狠狠狠97| 热re91久久精品国99热蜜臀| 久久69精品久久久久久国产越南| 不卡av在线播放| 国产91精品最新在线播放| 国产成+人+综合+亚洲欧美丁香花| 国产九九精品视频| 国产啪精品视频| 亚洲人成在线观| 国产中文字幕亚洲| 亚洲自拍偷拍福利| 国产精品成人免费视频| 国模精品系列视频| 欧美一级电影久久| 亚洲国产成人精品久久久国产成人一区| 成人乱色短篇合集|