Ajax 重构的步骤
Ajax重构大致可以分为以下3三个步骤。
一 创建一个单独的JS文件,名称为AjaxRequest.js,并且在该文件中编写重构Ajax 所需的代码
具体代码如下:
var net = new Object(); // 定义一个全局的变量
// 编写构造函数
net.AjaxRequest = function(url,onload,onerror,method,params)
{
this.req = null;
this.onload = onload;
this.onerror=(onerror)?onerror:this.defaultError;
this.loadDate(url,method,params);
}
// 编写用于初始化XMLHttpRequest 对象并指定处理函数,最后发送HTTP 请求的方法
net.AjaxRequest.prototype.loadDate = function(url,method,params)
{
if(!method) // 设置默认的请求方式为GET
{
method =“GET”;
}
if(window.XMLHttpRequest)
{ // 非IE 浏览器
this.req = newXMLHttpRequest(); // 创建XMLHttpRequest 对象
}
elseif(window.ActiveXObject)
{ // IE 浏览器
try
{
this.req= new ActiveXObject(“Microsoft.XMLHTTP”); // 创建XMLHttpRequest 对象
}
catch(e)
{
try
{
this.req = new ActiveXObject(“Msxml2.XMLHTTP”); // 创建XMLHttpRequest 对象
}
catch(e)
{
}
}
}
if(this.req)
{
try
{
varloader = this;
this.req.onreadystatechange= function()
{
net.AjaxRequest.onReadyState.call(loader);
}
this.req.open(method,url,true); // 建立对服务器的调用
if(method==“POST”)
{ // 如果提交方式为POST
this.req.setRequestHeader(“Content-Type”,“application /x-www-form-urlencoded”); // 设置请求的内容类型
this.req.setRequestHeader(“x-requested-with”,“ajax”); // 设置请求的发出者
}
this.req.send(params); // 发送请求
}
catch(err)
{
this.onerror.call(this); // 调用错误处理函数
}
}
}
// 重构回调函数
net.AjaxRequest.onReadyState = function()
{
var req =this.req;
var ready =req.readyState; // 获取请求状态
if(ready == 4)
{ // 请求完成
if(req.status== 200)
{ // 请求成功
this.onload.call(this);
}
else
{
this.onerror.call(this); // 调用错误处理函数
}
}
}
// 重构默认的错误处理函数
net.AjaxRequest.prototype.defaultError = function()
{
alert(“ 错误数据\ n \ n 回调状态:”+ this.req.readyState +“\ n 状态:”+ this.req.status);
}
二 在需要应用Ajax 的页面中应用以下的语句包括步骤一中创建的JS 文件
<script language =“javascript”src =“AjaxRequest.js”> </script>
三 在应用Ajax 的页面中编写错误处理的方法,实例化Ajax 对象的方法和回调函数
具体代码如下:
<script language =“javascript”>
/ ****************** 错误处理的方法************************************** /
function onerror()
{
alert(“ 您的操作有误!”);
}
/ ****************** 实例化Ajax 对象的方法*********************** ****** /
function getInfo()
{
var loader = newnet.AjaxRequest(“getInfo.jsp?nocache =”+ new Date().getTime(),deal_getInfo,onerror,“GET”);
}
/ ************************ 回调函数*********************** *************** /
function deal_getInfo()
{
document.getElementById(“showInfo”).innerHTML= this.req.responseText;
}
</ script>
Ajax 重构的步骤的更多相关文章
- Ajax重构
Ajax重构简介 Ajax的实现主要依赖于XMLHttpRequest对象,但是在调用其进行异步数据传输时,由于XMLHttpRequest对象的实例在处理事件完成后就会被销毁,所以如果不对该对象进行 ...
- 实现AJAX的基本步骤
实现AJAX的基本步骤 要完整实现一个AJAX异步调用和局部刷新,通常需要以下几个步骤: (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象. (2)创建一个新的HTTP请求,并指 ...
- 实现AJAX的基本步骤 。。转
要完整实现一个AJAX异步调用和局部刷新,通常需要以下几个步骤: (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象. (2)创建一个新的HTTP请求,并指定该HTTP请求的方法. ...
- ajax的请求步骤!每个状态值表示什么?
什么是是ajax ! AJAX即"Asynchronous JavaScript and XML"(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页 ...
- 简述 AJAX 及基本步骤
简述 AJAX:AJAX即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术.通过在后台与服务器进行 ...
- ajax重构XMLHttpRequest
//重构XMLHttpRequestvar net = new Object(); //名字空間對象 net.READY_STATE_UNINITIALIZED = 0; net.READY_STAT ...
- $.getJSON 返回值、AJAX异步调用步骤
//首先要判断用户录入的手机号是不是中国移动的,不是直接给出提示,并终止登录 if($("#cmUsername1").val().isMobile())//手机号码 { jQue ...
- javascript中ajax的四大步骤
原生js中ajax写法一: function ajaxys(){ //1. 创建xhr对象 var xhr = new XMLHttpRequest();//XMLHttpRequest() // 2 ...
- ajax的五大步骤
什么是Ajax? AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. var btn = document.getElementsByTagName('button')[ ...
随机推荐
- Apache Shiro(三)-登录认证和权限管理MD5加密
md5 加密 在前面的例子里,用户密码是明文的,这样是有巨大风险的,一旦泄露,就不好了.所以,通常都会采用非对称加密,什么是非对称呢?就是不可逆的,而 md5 就是这样一个算法.如代码所示 123 用 ...
- 关于抓取js加载出来的内容抓取
一.抓取页面 url=https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.ht ...
- c语言实现队列的基本操作
话不多说,直接代码 #include"stdio.h" #include"stdlib.h" typedef struct QNode{ int date; s ...
- libevent 同性恋 讲解
https://aceld.gitbooks.io/libevent/content/25hong_fa_mo_5f0f_md.html github 这url 干活比较好 https://githu ...
- oracle 集群RAC搭建--环境准备
一,环境介绍 目前我本身环境已经有DG,正在尝试重做搭建.如需完成请移步往期文章--搭建DG
- logrtate 切割详解
Logrotate是Linux下一款日志管理工具,可用于日志文件的转储(即删除旧日志文件,创建新日志文件).可以根据日志大小或者按照某时段间隔来转储,内部使用cron程序来执行.Logrotate还可 ...
- GreenPlum 大数据平台--运维(三)
一,操作命令 01,启动gpstart 参数说明 COMMAND NAME: gpstart Starts a Greenplum Database system. ***************** ...
- java io 学习笔记(一)
java的IO操作都在java.io包下面,这个包下面有12个接口和而是多各类,类从读写的角度可以分为两种,一种是用于读,一种是用于写:从字符流字节流的角度,也可以分为两种,一种和字符有关,一种和字节 ...
- springMVC静态资源访问
springMVC默认是访问不到静态资源的,如css,js等,需要在xml里进行配置 保证已经配置好了 web.xml, <!-- Spring MVC servlet --> <s ...
- 从数据库中导出数据到.csv文件
考虑到csv文件比xls文件格式容易控制,所以在这次导出中用的是.csv格式. protected function exportInfo($arr, &$err){ $nameInfo = ...