`
yanfaguanli
  • 浏览: 663158 次
文章分类
社区版块
存档分类
最新评论

XMLHttpRequest的创建过程

 
阅读更多


JS方法:

varxmlhttp;//一定注意是写在外面的全局变量,我调了一个上午才发现。
function verify(){
//使用dom方式获取文本框中的值
var userName=document.getElementById("userName").value;
//以下5个步骤即完成ajax应用的5个关键步骤
//1. 创建XMLHttpRequest对象(最关键&复杂的一步)
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同代码
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();//针对mozillar,firefox,opera,safari,ie7,ie8
//针对某些特定版本的mozillar浏览器的bug(主要是调用回调函数时会有问题)进行修正(这一步是保证脚本的健壮性)
if(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType("text/xml");
}
}else if(window.ActionXObject){
//(老师语)为什么这个放在第二个if语句里呢?
//(1)针对的对象范围太窄
//(2)自身的缺陷或者说原理已被一些人摸透了,有人利用ActionXObject干了不少坏事(?)所以会被一些有经验的用户直接禁掉
//针对ie6,ie5.5,ie5
//两个可以创建XMLHttpRequest对象的控件名称,保存在一个js数组中,排在前面的较新
varactivexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0; i<activexName.length; i++){
try{
xmlhttp=new ActionXObject(activexName[i]);
break;
}catch(e){
}
}

}
//确认XMLHttpRequest对象创建成功(保证脚本的完整性,指开发的时候)
if(!xmlhttp){
alert("XMLHttpRequest对象创建视频!!");
return;
}else{
alert(xmlhttp);
}
//2. 注册回调函数
//只用函数名,不加括号,是因为该句只是把回调函数名注册给xmlhttp.onreadystatechange
//如果加了括号,则是调用函数,然后把该函数的返回值注册了。
//xmlhttp状态每次改变都会重新调用callback方法
xmlhttp.onreadystatechange=callback;
//3. 利用open方法设置与服务器的连接信息
xmlhttp.open("GET","AjaxServer?name="+userName,true);//Post方法请自行google百度

//还可以用Post方法进行传送,//xmlhttp.open(“POST”,”AjaxServer”,true)

//xmlhttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”)

//4. 发送数据,开始和服务端进行交互
//之所以send(null)是因为第3步中,数据信息都在url里了,如果是Post方法,send(具体数据)

//如xmlhttp.send(“name”+userName);
//第3步中最后一个参数如果false,则运行到该句中止,一直等到数据返回;为true则代码继续运行
xmlhttp.send(null);
}
function callback(){
//5. 接收响应数据(在回调函数中针对不同响应状态进行处理)
//判断对象的状态是交互完成的
if(xmlhttp.readyState==4){

//0=未初始化,对象以创建,未调用open

//1=open方法调用成功,send方法未调用

//2=send方法已调用,未开始接收数据

//3=正在接收数据,HTTP响应头信息已经接收,数据尚未接收完成

//4=完成
//判断http的交互是否成功
if(xmlhttp.status==200){//关于xmlhttp.status请自行google百度
//获取服务器端返回数据
varresponseText=xmlhttp.responseText; //纯文本方式,关于其他方式请自行google百度
//将数据显示在页面上
//(1)通过Dom方式找到div标签对应的元素节点
vardivNode=document.getElementById("result");
//(2)设置元素节点中的html内容
divfNode.innerHTML=responseText;
}else{//出错信息}
}
}


分享到:
评论

相关推荐

    详解XMLHttpRequest(一)同步请求和异步请求

    XMLHttpRequest 让发送一个HTTP...如果该参数的值为false,则该XMLHttpRequest请求以同步模式进行,否则该过程将以异步模式完成。 两种通信模式:同步和异步请求:  同步请求  主线程中的同步请求会阻塞页面,由于对

    js 实现ajax发送步骤过程详解

    var xmlhttp = new XMLHttpRequest() IE浏览器不支持这种方法,需要再写一个函数来创建 步骤2 :连接服务端 得到XMLHTTPRequest对象后,就可以调用对象的open()方法,与服务器连接,参数如下 open(method,url,...

    AJAX初体验之上手篇

    现在的浏览器有很多种,创建 XMLHttpRequest 的方法也不相同,所以为了兼容各种浏览器,在创建 XMLHttpRequest 时也应该考虑到各种浏 览器的情况。目前主流的浏览器在Windows下有IE、Firefox及Opera,所以我们写的...

    Ajax课件学习(免费)

    是创建 Ajax 应用的最佳选择。实际上通常把 Ajax 当成 XMLHttpRequest 对象的代名词. 该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向...

    New of GWT Introduction--GWT开发快速入门

    Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML、CSS、JavaScript、XMLHttpRequest、XML等技术组合而成,是当前Web应用开发领域的热门技术,用于创建更加动态和交互性更好的Web应用程序,...

    掌握Ajax,第2部分:使用JavaScript和Ajax发出异步请求

    火龙果软件工程技术中心 本文内容包括:Web2.0...本文中,BrettMcLaughlin介绍了如何创建能够适应不同浏览器的XMLHttpRequest实例,建立和发送请求,并响应服务器。本系列的上一期文章(请参阅参考资料中的链接),我们

    谈谈Ajax原理实现过程

    AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用: 使用XHTML+CSS来标准化呈现; 使用XML和XSLT进行数据交换及相关操作; 使用...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

    Ajax基础教程(扫描版)

    这一过程将乐趣无穷,我们衷心地希望,有一天能看到你开发的基于ajax的一流应用!... 目录 译者序. 前言 致谢 关于技术审校 第1章 ajax简介 1 1.1 web应用简史 1 1.2 浏览器历史 2 1.3 web应用的发展历程 3 ...

    ASP.NET4高级程序设计(第4版) 3/3

    书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软...

    原生JS发送异步数据请求

    在做项目的时候,有时候需要用到异步数据请求,但是如果这个... 创建XMLHttpRequest对象(new) 连接服务器(open) 发送请求(send) 接收响应数据(onreadystatechange)  不说话直接贴代码 /** * 通过JSON的方式请求 *

    java实现ajax分页

    使用java,jsp,mysql实现Ajax分页。...booklist.jsp是前台显示页面,getbooks.jsp是后台与数据库操作页面,creathttp.js是创建xmlhttprequest的代码。此代码花了一天才写完,而且本人极其缺乏csdn分,希望大家帮忙

    jquery-xhr-upload-queue:一个jQuery排队的文件上传插件

    此插件创建一个文件上传队列,该队列将使用XMLHttpRequest通过Web浏览器异步上传文件。 它将自动挂钩拖放事件以接受文件删除,表单提交事件(如果所选元素是表单),并将事件更改为找到的任何文件选择表单字段。 由...

    使用jQuery Ajax功能时需要注意的一个问题(内存溢出)

    但是后来他告诉我说没有用 jQuery,自己手工写的XMLhttprequest 。他告诉我说,开始是用jquery写的,而且在测试过程中也没有出现问题。但是在后来无意中发现,在页面开的时候久了之后,浏览器资源竟然占用非常高...

    【卷一/共两卷】AJAX实战pdf高清版90M

    12.2.2 启动搜索过程 12.3 服务器端的PHP代码 12.3.1 创建XML文档 12.3.2 创建XSLT文档 12.4 合并XSLT和XML文档 12.4.1 使用微软的IE 12.4.2 使用Mozilla 12.5 完成搜索 12.5.1 应用CSS 12.5.2 改善搜索 12.5.3 决定...

    原生JavaScrpit中异步请求Ajax实现方法

    在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面。...Ajax请求的原理是创建一个XMLHttpRequest对象,使用这个对象来进行异步发送请求,具体实现参考下面代码: function ajax

    原生JavaScript实现Ajax异步请求

    在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面。...Ajax请求的原理是创建一个XMLHttpRequest对象,使用这个对象来进行异步发送请求,具体实现参考下面代码: function ajax

    J2EE应用开发详解

    91 6.2 CSS 92 6.3 XSLT 94 6.4 小结 96 第7章 Ajax简介 97 7.1 Ajax简介 97 7.2 Ajax技术核心 100 7.2.1 XMLHttpRequest对象的常用方法 100 7.2.2 标准的XMLHttpRequest属性 101 7.3 一个简单的Ajax实例 101 7.4 小...

Global site tag (gtag.js) - Google Analytics