校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 自己動手封裝的 ajax

自己動手封裝的 ajax

熱門標簽:察縣地圖標注 廣西ai語音電銷機器人哪家好 電銷機器人適用范圍 如何用地圖標注各分公司 接聽電話機器人哪有 莆田防封電銷卡價格 蓄意標記地圖標注 辦理一個400電話多少錢 信貸電銷機器人有用嗎
以前開發用了很多AJAX的技術比如EXT,prototype,jQuery等等,但都是開源封裝好的AJAX框架。從沒真正用過純正的AJAX,故參照prototyp面向對象思想自己封裝了一個AJAX框架。希望能給讀者參考、幫助、評價。
復制代碼 代碼如下:

/*
* 自己封裝的ajax
*
*
* @author 姜松
* @version 1.00 $date:2009-07-02
*
* history:
*
*/
Object.extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
};
Object.extend(String.prototype, {
include: function(pattern) {
return this.indexOf(pattern) > -1;
},
startsWith: function(pattern) {
return this.indexOf(pattern) == 0;
},
endsWith: function(pattern) {
return this.lastIndexOf(pattern) == (this.length - pattern.length);
},
empty: function() {
return /^\s*$/.test(this) || this == undefined || this == null;
}
});
Object.extend(Array.prototype, {
each: function(iterator) {
try {
for (var i = 0, length = this.length; i length; i++) {
iterator(this[i]);
}
} catch (e) {
if (e != 'break') { throw e };
}
},
clear: function() {
this.length = 0;
return this;
},
first: function() {
return this[0];
},
last: function() {
return this[this.length - 1];
},
indexOf: function(object) {
for (var i = 0, length = this.length; i length; i++) {
if (this[i] == object) {return i};
}
return -1;
},
size: function() {
return this.length;
},
include: function(object) {
var found = false;
this.each(function(value) {
if (value == object) {found = true; throw 'break';}
});
return found;
}
});
function $(element) {
if(arguments.length > 1) {
for(var i = 0, elements = [], length = arguments.length; i length; i++) {
elements.push($(arguments[i]));
}
return elements;
}
if(typeof element == 'string') {
element = document.getElementById(element);
}
return element;
};
var ajax = {
transport: new Object(),
options: new Object(),
getTransport: function() {
if(window.ActiveXObject) {
try {
return new ActiveXObject('Msxm12.XMLHTTP');
} catch(e) {
try {
return new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {}
}
} else if(window.XMLHttpRequest) {
try {
return new XMLHttpRequest();
} catch(e) {}
}
},
setOptions: function(options) {
ajax.options = {
method: 'get',
asynchronous: true,
contentType: 'application/x-www-form-urlencoded',
encoding: 'utf-8',
parameters: ''
};
Object.extend(ajax.options, options);
ajax.options.method = ajax.options.method.toUpperCase();
},
request: function(url, options) {
ajax.transport = ajax.getTransport();
ajax.setOptions(options);
this.method = ajax.options.method;
var params = ajax.options.parameters;
if (!['GET', 'POST'].include(this.method)) {
this.method = 'GET';
}
if (this.method == 'GET') {
url = ajax.setParameters(url, params);
}
try {
ajax.transport.open(this.method, url, ajax.options.asynchronous);
ajax.transport.onreadystatechange = ajax.stateChange;
ajax.setRequestHeaders();
this.body = this.method == 'POST' ? params : null;
ajax.transport.send(this.body);
} catch (e) {}
},
stateChange: function() {
try {
var readyState = ajax.transport.readyState;
if(readyState == 4) {
var status = ajax.transport.status, transport = ajax, json = ajax.evalJSON();
if(status == 200) {
ajax.options['onSuccess'](transport, json);
} else {
ajax.options['onFailure'](transport, json);
}
}
} catch (e) {}
},
setParameters: function(url, params) {
if (params typeof params == 'string') {
url += (url.include('?') ? '' : '?') + params;
} else if (params typeof params == 'object') {
for(var param in params) {
url += (url.include('?') ? '' : '?') + param + '=' + params[param];
}
}
return url;
},
setRequestHeaders: function() {
var headers = {
'X-Requested-With': 'XMLHttpRequest',
'Accept': 'application/xml, text/xml, text/html, text/javascript, application/javascript, application/json, text/javascript, text/plain, */*',
'If-Modified-Since': 'Thu, 01 Jan 1970 00:00:00 GMT'
};
this.method = ajax.options.method;
if (this.method == 'POST') {
headers['Content-type'] = ajax.options.contentType +
(ajax.options.encoding ? '; charset=' + ajax.options.encoding : '');
if (ajax.transport.overrideMimeType
(navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] 2005) {
headers['Connection'] = 'close';
}
}
for (var name in headers) {
ajax.transport.setRequestHeader(name, headers[name]);
}
},
evalJSON: function() {
try {
return eval('(' + ajax.transport.responseText + ')');
} catch (e) {}
}
};
var Form = {
serialize: function(element) {
var elements = $(element).all;
var queryComponents = [];
for(var i = 0; i elements.length; i++) {
var parameter = null, method = elements[i].tagName.toLowerCase();
if(['input', 'select', 'textarea'].include(method)) {
parameter = Form.Serializers[method](elements[i]);
}
if(parameter != null parameter.constructor == Array) {
var key = encodeURIComponent(parameter[0]);
var value = encodeURIComponent(parameter[1]);
queryComponents.push(key + '=' + value);
}
}
return queryComponents.join('');
},
request: function(options) {
var params = this.toQueryParams(options.parameters);
options.parameters = this.serialize(this.form);
if(params) {
options.parameters = options.parameters.concat('' + params);
}
if($(this.form).method) {
options.method = $(this.form).method;
}
return new ajax.request($(this.form).action, options);
},
toQueryParams: function(params) {
var queryComponents = [];
if (params typeof params == 'string') {
queryComponents.push(encodeURIComponent(params));
} else if (params typeof params == 'object') {
for(var param in params) {
var key = encodeURIComponent(param);
var value = encodeURIComponent(params[param]);
queryComponents.push(key + '=' + value);
}
}
return queryComponents.join('');
}
};
Form.Serializers = {
input: function(element) {
switch(element.type.toLowerCase()) {
case 'checkbox':
case 'radio':
return this.inputSelector(element);
default:
return this.textarea(element);
}
},
inputSelector: function(element) {
if(element.checked) {
return [element.name, element.value];
}
},
textarea: function(element) {
return [element.name, element.value];
},
select: function(element) {
return this[element.type == 'select-one' ?
'selectOne' : 'selectMany'](element);
},
selectOne: function(element) {
var value = null, option, index = element.selectedIndex;
if(index >= 0) {
option = element.options[index];
value = option.value == (undefined || '') ? option.text : option.value;
}
return [element.name, value];
},
selectMany: function(element) {
var value = [];
for(var i = 0; i element.length; i++) {
var option = element.options[i];
if(option.selected) {
var optvalue = option.value == (undefined || '') ? option.text : option.value;
value.push(optvalue);
}
}
return [element.name, value];
}
};
function $F(element) {
this.form = element;
}
Object.extend($F.prototype, Form);
/**************************************************************
* 測試函數
*/
function onTest() {
//get提交方法
var params = new Object();
params.ss = '張三';
new ajax.request('ajax.do?method=doGet', {
onSuccess: function(transport) {
alert(transport.evalJSON().xx)
},
parameters: params
});
//post form提交方法
var params = new Object();
params.idd = 1000;
params.names = '張三'
new $F('form').request({
onSuccess: function(transport) {
alert(transport.evalJSON().xx);
},
parameters: params
});
}
您可能感興趣的文章:
  • ajax的工作原理以及異步請求的封裝介紹
  • js原生Ajax的封裝和原理詳解
  • 基于jQuery的ajax方法封裝
  • 原生Javascript封裝的一個AJAX函數分享
  • 封裝了jQuery的Ajax請求全局配置
  • 一個封裝的Ajax類
  • 關于Ajax的原理以及代碼封裝詳解

標簽:益陽 延邊 鷹潭 張掖 阿拉善盟 平涼 銅陵 儋州

巨人網絡通訊聲明:本文標題《自己動手封裝的 ajax》,本文關鍵詞  自己,動手,封,裝的,ajax,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《自己動手封裝的 ajax》相關的同類信息!
  • 本頁收集關于自己動手封裝的 ajax的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩毛片在线免费观看| 欧美成人伊人久久综合网| 美女精品自拍一二三四| 洋洋成人永久网站入口| 国产精品二区一区二区aⅴ污介绍| 日韩欧美国产电影| 91精品国产综合久久久久| 欧美日韩激情在线| 欧美一级免费大片| 日韩一区二区三区免费观看| 欧美一区二区三区不卡| 日韩一区二区电影网| 日韩三级伦理片妻子的秘密按摩| 欧美日产在线观看| 91精品国产综合久久久久久漫画 | 日韩黄色免费电影| 首页国产丝袜综合| 麻豆91精品视频| 国产一区美女在线| 97se亚洲国产综合自在线不卡 | 亚洲综合在线免费观看| 亚洲免费在线观看| 天天综合色天天综合| 天天做天天摸天天爽国产一区| 日韩不卡一区二区三区| 国产自产高清不卡| 不卡的看片网站| 在线观看网站黄不卡| 欧美一区二区三区四区视频| 日韩一级片在线播放| 久久久久国色av免费看影院| 国产精品第13页| 青椒成人免费视频| 成人午夜私人影院| 91.xcao| 国产天堂亚洲国产碰碰| 亚洲老司机在线| 青青草97国产精品免费观看 | 精品少妇一区二区三区视频免付费 | 色呦呦国产精品| 日韩欧美国产综合一区| 亚洲色图在线视频| 卡一卡二国产精品 | 久久国产精品99精品国产| 成人免费毛片片v| 欧美三级电影网站| 国产情人综合久久777777| 一区二区高清视频在线观看| 久久av老司机精品网站导航| 91蜜桃视频在线| 久久午夜国产精品| 亚洲va韩国va欧美va精品| 成人av影院在线| 欧美videossexotv100| 亚洲精品久久嫩草网站秘色| 国产在线看一区| 欧美精品v国产精品v日韩精品 | 日本在线观看不卡视频| av激情综合网| 国产香蕉久久精品综合网| 日韩电影在线免费观看| 91色.com| 国产精品国产三级国产普通话蜜臀| 麻豆精品在线视频| 欧美日韩国产小视频| 亚洲摸摸操操av| eeuss鲁片一区二区三区 | 亚洲精品网站在线观看| 国产激情精品久久久第一区二区 | 国产在线一区二区综合免费视频| 欧美三级在线视频| 一区二区三区在线观看欧美| 成人avav影音| 国产精品午夜电影| 国产精品一区二区久久不卡| 欧美岛国在线观看| 青青草一区二区三区| 欧美精品久久99| 亚洲国产你懂的| 欧美日本一区二区在线观看| 亚洲精品成人悠悠色影视| 99在线热播精品免费| 中文字幕成人在线观看| 成人av电影在线| 136国产福利精品导航| 99久久99久久久精品齐齐| 亚洲激情自拍视频| 在线观看日韩电影| 亚洲国产视频一区| 欧美一区二区精美| 国产主播一区二区三区| 国产精品美女久久久久久久久久久| 99综合影院在线| 亚洲高清一区二区三区| 日韩精品中文字幕在线一区| 激情深爱一区二区| 中文字幕+乱码+中文字幕一区| eeuss国产一区二区三区| 亚洲影院久久精品| 日韩一卡二卡三卡| 成人av午夜影院| 一区二区三区欧美亚洲| 欧美色爱综合网| 免费成人小视频| 精品国产sm最大网站免费看| 日本欧美久久久久免费播放网| 日韩你懂的电影在线观看| 精品一区二区三区免费毛片爱| 欧美不卡激情三级在线观看| 国产一区在线观看视频| 日韩一级片在线观看| 成人h动漫精品一区二区| 亚洲欧美日韩国产另类专区| 欧美日韩在线免费视频| 麻豆精品视频在线观看视频| 精品国产乱码久久久久久久| 国v精品久久久网| 中文字幕一区二区视频| 精品视频999| 国产91综合一区在线观看| 亚洲男人的天堂在线aⅴ视频| 日韩一区二区免费在线观看| 日本中文字幕一区二区有限公司| 中文子幕无线码一区tr| 欧美三级日韩在线| 国产一区二区三区蝌蚪| 国产精品伦一区二区三级视频| 色综合天天综合网天天狠天天 | 在线观看一区日韩| 精品亚洲aⅴ乱码一区二区三区| 亚洲国产经典视频| 在线播放日韩导航| 激情图区综合网| 日本视频在线一区| 国产精品久久久久久久久果冻传媒| 91福利视频在线| 国产在线播精品第三| 亚洲丰满少妇videoshd| 精品毛片乱码1区2区3区| 成人一区二区三区| 日韩电影网1区2区| 亚洲同性gay激情无套| 欧美tickling挠脚心丨vk| 国产二区国产一区在线观看| 人人精品人人爱| 国产精品高清亚洲| 26uuuu精品一区二区| 欧美网站一区二区| 成人免费高清视频| 最新欧美精品一区二区三区| 久久精品视频网| 欧美一区二区日韩| 欧美丝袜自拍制服另类| 成人激情文学综合网| 国产一区亚洲一区| 国产91在线看| 国产精品白丝av| 美女网站视频久久| 亚洲福利视频三区| 国产精品久久福利| 国产精品久久久爽爽爽麻豆色哟哟| 欧美刺激午夜性久久久久久久| 欧美另类一区二区三区| 91丨九色丨蝌蚪丨老版| 成人久久视频在线观看| 9i在线看片成人免费| a美女胸又www黄视频久久| 国产成人在线看| 国模大尺度一区二区三区| 日本sm残虐另类| 中文成人综合网| 亚洲精选一二三| 亚洲卡通欧美制服中文| 亚洲欧美激情插| 亚洲三级久久久| 国产精品天干天干在观线| 亚洲欧美一区二区久久| 亚洲柠檬福利资源导航| 亚洲精品视频一区| 一级精品视频在线观看宜春院 | 亚洲一区二区三区四区不卡| 亚洲欧美精品午睡沙发| 亚洲尤物在线视频观看| 亚洲成人av一区| 麻豆一区二区三| 国产精品自拍一区| 在线观看国产91| 在线播放91灌醉迷j高跟美女 | 99久久国产综合色|国产精品| 欧美影院精品一区| 欧美一区二区啪啪| 久久久99精品免费观看不卡| 欧美激情艳妇裸体舞| 国产亚洲欧美日韩日本| 亚洲高清久久久| 狠狠色丁香婷综合久久| 99热这里都是精品| 91精品办公室少妇高潮对白| 欧美日韩激情一区| 精品国产三级电影在线观看|