ajax个人学习笔记
来源:互联网 发布:华为 知乎 编辑:程序博客网 时间:2024/05/21 09:03
1. function createXHR(){
if(typeof XMLHttpRequest != 'undefined'){
return new XMLHttpRequest();
}else if(typeof ActiveXObject != 'undefined'){
var version = ['MSXML2.XMLHttp.6.0',
'MSXML2.XMLHttp.3.0',
'MSXML2.XMLHttp'
];
for(var i=0;i<version.length;i++){
try{
return ActiveXObject(version[i]);
}catch(e){
}
}
}else{
throw new Error('你的系统或浏览器不支持XHR');
}
}
2.IE浏览器第一次向服务器端请求,获取最新数据,其后默认获取的是缓存数据,而不是最新的数据,可以使用js中的随机字符串处理。
3.ajax异步(true)过程中需要readyState=4值的判定
4.xhr.getAllResponseHeaders();xhr.getResponseHeader();xhr.setRequestHeader();xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');模拟表单提交.
5.ajax自定义封装:
function ajax(obj){
var xhr = createXHR();
obj.url = obj.url + '?rand=' + Math.random();
obj.data = params(obj.data);
if(obj.method === 'get')
obj.url += obj.url.indexOf("?") == -1? '?'+obj.data:'&'+obj.data;
if(obj.async === true){
xhr.onreadystatechange = function(){
if(xhr.readyState ==4 ){
callback();
}
};
}else{
callback();
}
xhr.open(obj.method,obj.url,obj.async);
if(obj.method === 'post'){
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');
xhr.send(obj.data);
}else{
xhr.send(null);
}
function params(data){
var arr = [];
for(var i in data){
arr.push(encodeURLComponent(i) + '=' + encodeURIComponent(data[i]));
}
return arr.join('&');
}
function callback(){
if(xhr.status == 200){
obj.success(xhr.responseText);
}else{
alert('获取数据错误!错误代码:'+ xhr.status + ',错误信息:'+ xhr.statusText);
}
}
}
if(typeof XMLHttpRequest != 'undefined'){
return new XMLHttpRequest();
}else if(typeof ActiveXObject != 'undefined'){
var version = ['MSXML2.XMLHttp.6.0',
'MSXML2.XMLHttp.3.0',
'MSXML2.XMLHttp'
];
for(var i=0;i<version.length;i++){
try{
return ActiveXObject(version[i]);
}catch(e){
}
}
}else{
throw new Error('你的系统或浏览器不支持XHR');
}
}
2.IE浏览器第一次向服务器端请求,获取最新数据,其后默认获取的是缓存数据,而不是最新的数据,可以使用js中的随机字符串处理。
3.ajax异步(true)过程中需要readyState=4值的判定
4.xhr.getAllResponseHeaders();xhr.getResponseHeader();xhr.setRequestHeader();xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');模拟表单提交.
5.ajax自定义封装:
function ajax(obj){
var xhr = createXHR();
obj.url = obj.url + '?rand=' + Math.random();
obj.data = params(obj.data);
if(obj.method === 'get')
obj.url += obj.url.indexOf("?") == -1? '?'+obj.data:'&'+obj.data;
if(obj.async === true){
xhr.onreadystatechange = function(){
if(xhr.readyState ==4 ){
callback();
}
};
}else{
callback();
}
xhr.open(obj.method,obj.url,obj.async);
if(obj.method === 'post'){
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');
xhr.send(obj.data);
}else{
xhr.send(null);
}
function params(data){
var arr = [];
for(var i in data){
arr.push(encodeURLComponent(i) + '=' + encodeURIComponent(data[i]));
}
return arr.join('&');
}
function callback(){
if(xhr.status == 200){
obj.success(xhr.responseText);
}else{
alert('获取数据错误!错误代码:'+ xhr.status + ',错误信息:'+ xhr.statusText);
}
}
}
0 0
- ajax个人学习笔记
- 揭开AJAX神秘的面纱(AJAX个人学习笔记)
- ajax 个人学习小记
- 个人笔记(AJAX篇)
- [个人笔记]ajax使用步骤
- 个人学习笔记.序
- 个人学习笔记
- 个人学习笔记(一)
- SQL 个人学习笔记
- 个人学习j2se笔记
- oracle 个人学习笔记
- linux 个人学习笔记
- DB2个人学习笔记
- 个人android学习笔记
- 个人学习笔记开篇
- 学习DOS,个人笔记
- 个人学习线程笔记
- 个人学习笔记---JSP
- 关于从后台获取数据List<User>转化为JSON格式在前台用easyui以表格显示
- Zend Framework 2 入门-自定义视图助手(View-Helper)
- 鸟瞰数据库系统原理
- 【POJ-1988】Cube Stacking(并查集)
- 【交互设计】七步打造手机网站
- ajax个人学习笔记
- android:shape的使用 (android用xml文件生成图像控件)
- 将ImageView变成灰色竟是如此简单
- 经典的标量子查询
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
- 锚文本的真正代价在于升职用户体验而非网站排名
- BOOST库的thread
- 黑马程序员——包、多线程
- 总结 android编程规范