简述ajax的重构原因,ajax重构XMLHttpRequest

//重构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};

}

Ajax 重构的步骤

Ajax重构大致可以分为以下3三个步骤. 一 创建一个单独的JS文件,名称为AjaxRequest.js,并且在该文件中编写重构Ajax 所需的代码具体代码如下:var net = new Objec ...

AJAX初探,XMLHttpRequest介绍

AJAX初探,XMLHttpRequest介绍 AJAX      AJAX = Asynchronous JavaScript and XML. 异步的JavaScript和XML.      AJ ...

Egret和Http请求 (Ajax、XMLHttpRequest、Post、Get)

一  Http请求 二  AJax和XMLHttpRequest 三  一个Ajax例子 四 Egret中的egret.HttpRequest 五 Post和Get区别 一 Http请求 Http深入 ...

原生Ajax(XMLHttpRequest)

一.什么是Ajax: 全称Asynchronous JavaScript and XML: 异步的 JavaScript 和 XML: 可以在不重新加载整个页面的情况下(偷偷发数据),与服务器交换数据 ...

AJAX(XMLHttpRequest)进行跨域请求方法详解

AJAX(XMLHttpRequest)进行跨域请求方法详解(三) 2010年01月11日 08:48:00 阅读数:24213 注意:以下代码请在Firefox 3.5.Chrome 3.0.Saf ...

原生ajax、XMLHttpRequest和FetchAPI简单描述

什么是ajax ajax的出现,刚好解决了传统方法的缺陷.AJAX 是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...

js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可)

js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可) 一.总 ...

原生实现ajax解析--XMLHttpRequest

ajax基础: Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求. 如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit ...

js系列教程11-json、ajax(XMLHttpRequest)、comet、SSE、WebSocket全解

js系列教程11-json.ajax(XMLHttpRequest).comet.SSE.WebSocket全解:https://blog.csdn.net/luanpeng825485697/art ...

随机推荐

servlet获取参数时,request.getParameter("id")参数获取失败

servlet获取参数时,request.getParameter("id")参数获取失败,这里的参数是“index”里面href中的参数 要注意,取不到值,是不是要取的参数有没有 ...

php工作笔记2-php编码效率

1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率 ...

指针和引用的区别(c/c++)

http://blog.csdn.net/thisispan/article/details/7456169 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用 ...

MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法

从客户端(Content="这是测试这...")中检测到有潜在危险的Request.Form 值. 说明:  ...

Java数组的创建和初始化

我们说到数组,可能有的人就会比较害怕了,其实,数组只是把对象序列(很多个对象)或者基本类型序列(很多个基本类型)放在一起而已.数组是通过方括号下标操作符[]来定义和使用的.如果要定义,创建一个数组,只 ...

fastboot烧写hi3531

Boot Downloading started. Boot 100 % Downloaded. Boot Downloading completed! U-Boot 2010.06 (Jan 04 ...

mysql5.7安装教程

1, 下载mysql5.7的安装包mysql-5.7.17-winx64.zip,直接解压到安装目录 2, 进入mysql目录,在里面新建data目录 3, 修改mysql的my.ini文件,指定ba ...

剑指offer(18)二叉搜索树的后续遍历

题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路: 以最后一个节点为根,从头往后找到第一个大于根 ...

接口(interface)与多态

1. 接口(interface)是抽象方法与常量值的集合: 2. 从本质上来讲,接口是一种特殊的抽象类,这种抽象类中只包含常量与方法的定义,而没有变量和方法的实现: 3. 接口中声明的属性默认为:pu ...

linux内核中链表代码分析---list.h头文件分析(二)【转】

转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值