国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > XML > 正文

解讀XMLHTTP對象封裝技術

2024-09-05 20:54:43
字體:
來源:轉載
供稿:網友
Ajax技術的實現主要依賴于xmlhttprequest,但我們在調用其來進行異步數據的傳輸時,由于xmlhttp是個短線過程(處理事件完成后就銷毀)如果不對該對象進行包裝處理的話,就不得不在需要調用的地方重新構建xmlhttprequest,每次調用都要寫一大段的代碼,實在不是個好辦法。好在現在很多開源的ajax框架都提供了對xmlhttp封裝的方案。這里以ajaxtags自帶的prototype-1.4.0.js為母版,來看看如何將xmlhttp對象封裝成一個可復用的方法。

在prototype.js中,首先定義了一個變量:Ajax
var Ajax = {
getTransport: function() {
return Try.these(
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')},
function() {return new XMLHttpRequest()}
) || false;
},

activeRequestCount: 0
}
變量返回了一個xmlhttprequest,可以看到,如果我們調用了Ajax.getTransport(),每次都會返回一個新的xmlhttprequest對象。
在Ajax變量中定義了一個基礎方法Ajax.Base和該基礎方法的原型(初始時,每個腳本方法默認都有個空的原型,該原型會繼承Object的原型,如果我們在Object中改變了原型,則所有的腳本方法都會被改變。) 該基礎方法被Ajax.Request所繼承,注意的是,如果在Ajax.Request中填充了繼承的原型的同名方法或變量,則會實現重載。
Ajax.Base原型中最主要的是setOptions方法,過會我們就會用到。
setOptions: function(options) {
this.options = {
method: 'post',
asynchronous: true,
parameters: ''
}
prototype中對request是通過定義Ajax.Request原型(Ajax.Request.prototype)來實現的。但我們并不能直接對Ajax.Request進行調用,主要原因是Ajax.Request并沒有提供一個統一處理的過程。而且我們可能需要通過request 再取得response。(試想一下,客戶那邊發出一條信息,都始終沒與收到回復,那是會讓人覺得很惱火的事~),prototype同樣為我們封裝好了resoponse(Ajax.Responders),但兩者都是相互獨立的,如何把他們進行整合呢?

在 prototype中給我們提供了兩個方案,一個是Ajax.Updater,另一個是Ajax.PeriodicalUpdater,兩個共同點都是必須傳入3個參數:
container:
response數據要傳達的位置,該位置通過html標簽的id進行定義,比如你要把返回的數據輸出到html中的某個<div>中,則只要把container改成該id的值就可以了。如果找不到該container,則會發生腳本錯誤。
url:
request請求要傳遞的目的地。該目的地應該是個servlet或jspservlet,因為request對象只能被servlet中的do***方法自動獲取。
options:
結構應該與上面Ajax.Base定義的setOptions()中的option結構相同,如果為空或不寫,則采用 Ajax.Base定義的初始值(沒有傳遞任何參數時使用)。
兩者的區別在與Ajax.Updater返回給container的是完整的responseText,只有在responseText完全取得又沒發生異常時才會把內容寫到container里面,而PeriodicalUpdater在獲取responseText時,不管是否已經完整取得,就把內容填進container,直到發生異常或完全取得responseText。大多數情況應該使用第一種方法,因為第一種方法在發生異常時會把異常信息顯示在container里面,而第二種就不一定了。
既然已經把xmlhttp封裝好了,我們只需要設置好前面所說的3個參數就可以了,要注意的是,設置options參數,一定要按照base中的options結構進行設置,如果我們使用post方法,還可以在opitons中設置postBody屬性,把要傳遞的queryString 放到body中,一個使用post方法進行傳遞的腳本例子如下:

/*表單提交用post方法*/
function doRequest(container,paraments,url){
var options ={
method: 'post',
asynchronous: true,
postBody: paraments
};
new Ajax.Updater(container,url,options);
}

最后不得不說的是中文編碼問題,prototype對傳遞的參數都進行了編碼轉換工作,每個傳遞值通過encodeURIComponent 進行了處理.編碼會被轉換成utf-8,在后臺獲取request時,應該統一使用request.setCharacterEncoding("UTF-8")對request設置編碼,而不必管頁面的編碼格式是什么.如果使用post方法進行傳遞數據,則會自動執行:
request.setHeader('Content-type','application/x-www-form-urlencoded').確保傳遞數據編碼格式的正確.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
狠狠操视频网| 国产盗摄精品一区二区酒店| 国产成人亚洲欧美电影| 中文字幕不卡| 国产传媒在线播放| 男人天堂亚洲| 国产精品免费麻豆入口| 精品欧美日韩一区二区| www.色五月| 国产小视频在线高清播放| 91麻豆精品国产91久久| 欧美精品日韩少妇| 国产黄色片在线观看| 日本不卡影院| 91麻豆免费在线视频| 国产成人精品18| 黄网站在线观看高清免费| 国产激情视频一区二区| 欧美a免费在线| ·天天天天操| 最近中文字幕mv免费高清视频8| 尤物视频在线免费观看| 亚洲图区欧美| 国产视频资源| 免费在线高清av| 精品国产高清a毛片无毒不卡| 麻豆视频在线观看免费网站| 国产二区在线播放| 国产精品一区二区资源| www在线播放| 国产aa视频| 国产精品综合久久久久| 日韩欧美中文字幕不卡| av丝袜在线| 97视频免费| 国产黄色在线观看| 国产探花在线观看| 天天av综合网| 国产天堂在线观看| 国产视频第一区| 国产一二区视频| 国产美女自拍视频| 国产免费一级| 国产在线看片| 日本中文字幕在线2020| 美女被人操视频在线观看| 日本一本久久| 超碰免费在线播放| 丁香综合在线| 国产香蕉免费精品视频| 国产午夜视频| 夜夜操天天干| 麻豆精品永久免费视频| 国产中文在线观看| 国产一卡2卡3卡4卡网站免费| 国产一区久久精品| 国产黄色大片在线观看| 在线天堂中文www视软件| 亚洲欧美日韩成人网| 欧美午夜电影一区二区三区| 在线黄色av| 黄色一级片视频| 国产区高清在线| 日本成人网址| 国产精品伦一区二区三区视频 | 中文字幕人成高视频| 国产香蕉视频在线观看| 中文乱码字幕高清在线观看| 欧美色第一页| 国产福利图片| 久草国产视频| 亚洲欧美精品日韩欧美| 国产中文字幕在线视频| 国产高清视频免费最新在线| 九九视频精品在线| av中文天堂在线| 国产视频第一区| 激情小说 在线视频| 国产91在线视频蝌蚪| 国内a∨免费播放| 香蕉视频网站在线观看| 国产色在线播放| 国产免费黄网站| 老司机在线视频二区| 在线视频二区| 中文字幕在线视频不卡| 久热中文字幕精品视频在线| 国产深夜福利| 大香伊人中文字幕精品| 日本动漫理论片在线观看网站| 国产精品理人伦一区二区三区| 久色视频在线观看| 天天干天天操天天爽| 精精国产xxxx视频在线中文版| 中文字幕免费在线视频| 天天av天天爱| 91福利在线免费| 黄色网页网址在线免费| 九九视频九九热| 国产专区在线播放| 天堂中文字幕在线| 国产网站观看9久| 国产小视频免费在线观看| 九色成人在线| 国产精选一区二区三区不卡催乳| 波多野结衣久久高清免费| www.91在线播放| 黄色网页网址在线免费| 国产九色视频| √天堂资源中文www| 91社区在线观看| 在线免费日韩| 日本亚洲欧美| 国产免费视频| 国产xxxxx| www.夜夜操.com| 国产精品一区牛牛影视| 国产欧美日韩精品综合| 国产精品18久久久久网站| 在线视频二区| 成人免费一区二区三区视频网站| 国产小视频免费在线网址| 国产福利片在线| 欧美韩日国产| 国产网站免费看| wwww亚洲| 中文字幕av在线播放| 国产又色又爽又黄刺激在线视频| 国产精品久久久久白浆| 日本一二区视频| 国产精品伦理一区二区三区| 午夜在线不卡| 国产高清视频在线| 日本在线观看| 999精品网| 午夜视频在线| 六月天色婷婷| av三级在线观看| 国产日韩欧美精品一区二区三区| h网址在线观看| 99久热re在线精彩视频| 最新中文字幕在线视频| a视频免费看| 一级二级三级在线观看| 国产网红在线| 午夜国产在线| 国产在线精品一区二区不卡| 亚洲天堂久久久| 国产情侣高潮对白| 国产美女一区视频| 九九99九九精彩| 久久91精品视频| 久热国产在线| 超碰国产在线观看| 开心快乐六月丁香婷婷| www.五月色.com| 日本福利在线| 超碰国产在线观看| 日本成人a视频| 日本福利在线观看| 青青久草在线| 激情丁香久久| 中文字幕免费中文| 国产男女无套在线播放| 天堂在线视频| 国产精品入口麻豆免费观看| 国产精品18久久久久久久久久| 国产一级性片| 2021天堂中文幕一二区在线观| 国产精品666| 亚洲欧美日韩综合精品网| 日本h视频在线观看| 国产在线视频精品视频免费看| 日本最新在线视频| 精品一区二区三区高清免费不卡| 中文视频在线| 免费a级在线播放| 中文字幕国产在线| 国产精品视频流白浆免费视频| 国产黄a三级三级三级av在线看| 国产精品日日爱| 亚洲国产成人综合| 国产免费网址| 99久久99热久久精品免费看| www.狠狠操.com| 中文字幕日本在线观看| 中文日本在线观看| 国产在线观看18| 91涩漫在线观看c| 久色视频在线观看| 国产成人综合亚洲欧美在| 欧美日韩亚洲国内综合网| 国产亚洲精品久久久网站好莱| 国产欧美在线观看视频| 日本视频一二三区中文字幕| **三级三级97片毛片| 日本卡一卡2卡3卡4精品卡网站| 国产人成高清视频观看| 黄色国产网站在线观看| 在线观看视频污|