博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax入门
阅读量:6713 次
发布时间:2019-06-25

本文共 2098 字,大约阅读时间需要 6 分钟。

hot3.png

第一个测试程序:
	完整的使用XMLHttpRequest加载文档的例子											
学会重构:
/* *url-loading object and a request queue built on top of it *//* namespacing object */var Darkness = new Object();Darkness.READY_STATE_UNINITIALIZED=0;Darkness.READY_STATE_LOADING=1;Darkness.READY_STATE_LOADED=2;Darkness.READY_STATE_INTERACTIVE=3;Darkness.READY_STATE_COMPLETE=4;/*--- content loader object for cross-browser requests ---*/Darkness.ContentLoader = function(url,onload,onerror,method,params,contentType){  //this.url = url;  this.req=null;  this.onload = onload;  this.onerror=(onerror) ? onerror : this.defaultError;  this.loadXMLDoc(url,method,params,contentType);}Darkness.ContentLoader.prototype = {	initXMLHTTPRequest:function(){		if (window.XMLHttpRequest) {        return new XMLHttpRequest();    } else if (window.ActiveXObject) {        return new ActiveXObject("Microsoft.XMLHTTP");    }    return null;	},	onReadyState: function(){	  var req = this.req;	  var ready = req.readyState;	  	  if (ready == Darkness.READY_STATE_COMPLETE){	  	var httpStatus = req.status;	    if (httpStatus==200 || httpStatus==0){	      this.onload.call(this);	    }else{	      this.onerror.call(this);	    }	  }	},	loadXMLDoc: function(url,method,params,contentType){	  method = method ||"GET";	  	  if (!contentType && method=="POST"){	    contentType='application/x-www-form-urlencoded';	  }	  this.req = this.initXMLHTTPRequest();	  if (this.req){	    try{	      var loader = this;	      this.req.onreadystatechange = function(){	        loader.onReadyState.call(loader);	      }	      this.req.open(method,url,true);	      if (contentType){	        this.req.setRequestHeader('Content-Type', contentType);	      }	      this.req.send(params);	    }catch (err){	      this.onerror.call(this);	    }	  }	},	defaultError:function(){	  alert("error fetching data!"	    +"\n\nreadyState:"+this.req.readyState	    +"\nstatus: "+this.req.status	    +"\nheaders: "+this.req.getAllResponseHeaders());	}}
接着来看一下重构后页面中的代码,优点自己领悟哦:
	完整的使用XMLHttpRequest加载文档的例子-Refactor											

转载于:https://my.oschina.net/darkness/blog/510243

你可能感兴趣的文章
AVI 视频容器
查看>>
nagios v2.9 监控系统配置过程
查看>>
安卓的生命周期和布局大概
查看>>
[转]xshell的快捷键(非常实用)
查看>>
虚拟机C盘空间不足解决方法
查看>>
对 Web 应用程序进行性能调优
查看>>
Mac OS 配置多个ssh-key
查看>>
桌面支持--excel每页打印表头
查看>>
Openssl CA认证
查看>>
VSCode 配置python开发环境
查看>>
用serveResource解决跨域访问问题
查看>>
使用APC加速你的PHP网站
查看>>
Redis Windows 服务启动异常 错误码1067
查看>>
关于 pip安装的可能错误的排除
查看>>
SQL-GROUP BY第四课
查看>>
Kubernetes 1.12全新发布!新功能亮点解析
查看>>
大型商城购物车原理
查看>>
CentOS下yum安装PHP,配置php-fpm服务
查看>>
搭建基于SSM的分布式电子商城的框架开源方便大家二次开发(已解决跨域问题)...
查看>>
classLoader
查看>>