91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么創建基本的Ajax應用

發布時間:2021-12-31 09:54:25 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

這篇文章主要講解了“怎么創建基本的Ajax應用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么創建基本的Ajax應用”吧!

創建一個基本的Ajax應用不需要太多的代碼,大概三個步驟,幾十行代碼即可。

1,創建Ajax的核心對象XMLHttpRequest

因為瀏覽器之間的不兼容,IE7之前的版本并沒有原生的XMLHttpRequest對象卻實現為ActiveX對象。
互聯網及各種書籍中有著多種創建方式,有的復雜很多行代碼,有的則簡潔很少代碼。當然復雜的考慮的情形更多一些。如下幾乎將IE中所有的情況都考慮到了。

function cretaeXHR(){   try{ return new XMLHttpRequest();}catch(e){}   try{ return new ActiveXObject('Msxml2.XMLHTTP.6.0');}catch(e){}   try{ return new ActiveXObject('Msxml2.XMLHTTP.4.0');}catch(e){}   try{ return new ActiveXObject('Msxml2.XMLHTTP.3.0');}catch(e){}   try{ return new ActiveXObject('Msxml2.XMLHTTP');}catch(e){}   try{ return new ActiveXObject('MSXML3.XMLHTTP');}catch(e){}   try{ return new ActiveXObject('MSXML.XMLHTTP');}catch(e){}   try{ return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}   try{ return new ActiveXObject('MSXML2.ServerXMLHTTP');}catch(e){}   return null;   }

代碼較少的采用對象特性判斷,

var xhr = window.XMLHttpRequest ? new XMLHttpRequest() :new ActiveXObject('Microsoft.XMLHTTP');

我在這里采用精簡方式,暫不考慮創建異常的情況。

2,發送請求

xhr.open   xhr.send

3,處理響應

xhr.onreadystatechange = function(){   if(xhr.readyState == 4){   if(xhr.status == 200){//當然你可以把200~300之間或304的都理解成響應成功   //callback   }   }   }

嗯,到這里沒什么特別的,所有的書籍上都是這么幾個步驟來著。對于初學者來說,要將這幾個步驟很好的封裝一下形成一個良好的模塊還是很困難的。全局變量滿天飛不知道怎么去組織代碼,初學者開始都是這樣的。現在想想是對一門語言沒有足夠的掌握,尤其是閉包。

這里采用 單例模式 封裝成一個對象,即只有一個全局的變量將其賦值給Ajax,該對象有一個request方法。request有兩個參數,***個為請求的url(必要的),字符串類型,第二個opt為配置參數(可選的),對象類型。結果處理使用內部私有的_onStateChange函數。

完整代碼如下:

/**   * 執行基本ajax請求,返回XMLHttpRequest   * Ajax.request(url,{   * async 是否異步 true(默認)   * method 請求方式 POST or GET(默認)   * data 請求參數 (鍵值對字符串)   * success 請求成功后響應函數,參數為xhr   * failure 請求失敗后響應函數,參數為xhr   * });    */   Ajax =   function(){   function request(url,opt){   function fn(){}   var async = opt.async !== false,   method = opt.method || 'GET',   data = opt.data || null,   success = opt.success || fn,   failure = opt.failure || fn;   method = method.toUpperCase();   if(method == 'GET' && data){   url += (url.indexOf('?') == -1 ? '?' : '&') + data;   data = null;   }   var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');   xhr.onreadystatechange = function(){   _onStateChange(xhr,success,failure);   };   xhr.open(method,url,async);   if(method == 'POST'){   xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');   }   xhr.send(data);   return xhr;   }   function _onStateChange(xhr,success,failure){   if(xhr.readyState == 4){   var s = xhr.status;   if(s>= 200 && s < 300){   success(xhr);   }else{   failure(xhr);   }   }else{}   }   return {request:request};   }();

如下請求后臺的一個servlet,發送參數name=jack,age=20,默認使用異步,GET方式

Ajax.request('servlet/ServletJSON',{             data : 'name=jack&age=20',            success : function(xhr){                 //to do with xhr            },             failure : function(xhr){                 //to do with xhr    }    }    );

感謝各位的閱讀,以上就是“怎么創建基本的Ajax應用”的內容了,經過本文的學習后,相信大家對怎么創建基本的Ajax應用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北京市| 郑州市| 五大连池市| 星座| 南陵县| 大埔县| 南溪县| 云龙县| 松潘县| 巴塘县| 南平市| 方正县| 阿图什市| 宜都市| 深水埗区| 全椒县| 老河口市| 渝中区| 淮安市| 汉源县| 白朗县| 佛学| 荃湾区| 昌吉市| 永德县| 榆中县| 永清县| 石柱| 威宁| 康马县| 孟津县| 友谊县| 永平县| 仪征市| 弥渡县| 临猗县| 香格里拉县| 青州市| 河东区| 洪江市| 丽江市|