//重构XMLHttpRequest
var net = new Object(); //名字空間對象
net.READY_STATE_UNINITIALIZED = 0;
net.READY_STATE_LOADING = 1;
net.READY_STATE_LOADED = 2;
net.READY_STATE_INTERACTIVE = 3;
net.READY_STATE_COMPLETE = 4;
net.ContentLoader = function(url, onload, onerror) { //構造函數
this.url = url;
this.req = null;
this.onload = onload;
this.onerror = (onerror) ? onerror : this.defaultError;
this.loadXMLDoc(url);
} net.ContentLoader.prototype = {
loadXMLDoc: function(url) { //重新命名的initXMLHttpRequest函數
if (window.XMLHttpRequest) { //重構過的loadXML函數
this.req = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
this.req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req) {
try {
var loader = this;
this.req.onreadystatechange = function() {
loader.onReadyState.call(loader);
}
this.req.open('GET', url, true); //重構過的sendRequest函數
this.req.send(null);
} catch (err) {
this.onerror.call(this);
}
}
},
onReadyState: function() { //重構過的回調函數
var req = this.req;
var ready = req.readyState;
if (ready == net.READY_STATE_COMPLETE) {
var httpStatus = req.status;
if (httpStatus == 200 || httpStatus == 0) {
this.onload.call(this);
} else {
this.onerror.call(this);
}
}
},
defaultError: function() {
alert("error fetching data!"
+ "\n\nreadyState:" + this.req.readyState
+ "\nstatus:" + this.req.status
+ "\nheaders:" + this.req.getAllResponseHeaders());
}
} function myCallBack() {
alert{this.url
+" loaded! Here's the content:\n\n"
+this.req.responseText};
}

最新文章

  1. swift 之 纯代码创建 cell
  2. hadoop2.7下载mirror
  3. Semantic-UI-React (称 stardust) 对比 Antd
  4. 微信支付:“当前页面的URL未注册”
  5. android中的权限(转)
  6. Python的图形化界面
  7. MAC下配置gradle用eclipse 打包android程序
  8. win7计划任务执行BAT文件问题
  9. Noldbach problem
  10. 进入MFC讲坛的前言(四)
  11. IIS日志分析的作用
  12. viusal studio 调试错误及解决方法(长期更新记录)
  13. shell 脚本浅入
  14. JMockit使用总结
  15. Selenium+Python自动化测试实战(2)元素定位
  16. Java语言程序设计-Markdown格式作业模板
  17. 「ZJOI2018」历史(LCT)
  18. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
  19. oracle sql 游标的简单用法(tip:sql中两个单引号表示一个单引号)
  20. 蓝牙学习笔记二(Android连接问题)

热门文章

  1. Squid代理之透明代理
  2. 第一个PHP程序
  3. swift系统学习第一章
  4. 【转】互联网全站HTTPS的时代已经到来
  5. PAT (Basic Level) Practise:1006. 换个格式输出整数
  6. Notes of Principles of Parallel Programming - TODO
  7. [转]在Eclipse中Debug 为什么显示source not found
  8. 光流算法:Brox算法(转载)
  9. URIEncoding和useBodyEncodingForURI详解
  10. C陷阱与缺陷 2